virutualboxでubuntuServerをつくりバックグラウンドで起動させるには

virutualboxでubuntuServerをつくりバックグラウンドで起動させるには

VirtualboxにubuntuServerを入れる。

ゲストOS名は"Ubuntu Server since 20100831"にするw

ubuntu serverを選択したのはXとか不要だし、常駐量は小さくしたいしね。
virturalboxを選択したのはポータビリティを考えて。

http://www.ubuntu.com/server ここからダウンロードしインストールする。

SSHを入れる

virtualboxの端末はメンドイのでsshでいじることにする。

virutualboxを起動後、ログインし、

$ sudo aptitude install ssh

ポートフォワードの設定を行う

ホスト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で設定すれば良かった。

この技術を使えば winをvboxheadlessで起動してvncという手があるな。oseでできるかどうかだけど…