virutualboxでubuntuServerをつくりバックグラウンドで起動させるには
virutualboxでubuntuServerをつくりバックグラウンドで起動させるには
VirtualboxにubuntuServerを入れる。
ゲストOS名は"Ubuntu Server since 20100831"にするw
ubuntu serverを選択したのはXとか不要だし、常駐量は小さくしたいしね。
virturalboxを選択したのはポータビリティを考えて。
http://www.ubuntu.com/server ここからダウンロードしインストールする。
ポートフォワードの設定を行う
ホストOSの7022でアクセスするとsshにつながるようにする
$ VBoxManage setextradata "Ubuntu Server since 20100831" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP $ VBoxManage setextradata "Ubuntu Server since 20100831" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22 $ VBoxManage setextradata "Ubuntu Server since 20100831" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 7022
時計あわせ
virturalbox-oseではシステムクロックをUTCで提供するというチェックボックスがないためコマンドで行うしかない。(これは1時間ぐらいはまった。)
$ VBoxManage setextradata "Ubuntu Server since 20100831" "VBoxInternal/Devices/mc146818/0/Config/UseUTC" 1
ポートフォワードと時計あわせの確認
$ VBoxManage getextradata "Ubuntu Server since 20100831" enumerate Key: VBoxInternal/Devices/mc146818/0/Config/UseUTC, Value: 1 Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort, Value: 22 Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort, Value: 7022 Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol, Value: TCP
ここで一旦 $ sudo haltで電源を落としvirutualboxを再起動する。
再起動後、ホストのターミナルから $ ssh -p 7022 localhost でログインできればOK
あれ?ログインがおそいな? "/etc/motd"を疑ったが怪しいものはないな。まあメッセージながすだけど…
virtualマシンをエクスポート
いったんvirtualboxを終了し、その後「ファイル」→「仮想アプライアンスのエクスポート」で仮想マシンを別出しにする。
結構時間がかかる。
画面なしで起動
VBoxHeadlessを用いる。
$ VBoxHeadless -startvm "Ubuntu Server since 20100831" &
ターミナルを落としても常駐させたいときには nohupで起動させること
ちなみに電源断は ssh で $ sudo halt するか
$ VBoxManage controlvm "Ubuntu Server since 20100831" poweroff
あとはrc.localかなにかにかけばいいんだろうけど、あれ?どうやって一般ユーザで動かすんだろう?rootで設定すれば良かった。