VirtualBox演習:コマンドラインでVMにUbuntuをインストールする(ための準備)
まずVMを作らないといけない:
$ VBoxManage createvm --name test01 Virtual machine 'test01' is created. UUID: 46753dff-0314-4ac2-aeac-e963286e80a6 Settings file: '/home/flatline/VirtualBox VMs/test01/test01.vbox' $ VBoxManage showvminfo test01 VBoxManage: error: Could not find a registered machine named 'test01' VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBox, interface IVirtualBox, callee nsISupports Context: "FindMachine(Bstr(VMNameOrUuid).raw(), machine.asOutParam())" at line 2158 of file VBoxManageInfo.cpp
あがが,登録しないといけないんだった:
$ VBoxManage registervm $HOME/VirtualBox\ VMs/test01/test01.vbox $ VBoxManage showvminfo test01 Name: test01 Guest OS: Other/Unknown UUID: 46753dff-0314-4ac2-aeac-e963286e80a6 Config file: /home/flatline/VirtualBox VMs/test01/test01.vbox (略 $ VBoxManage list vms "AndrX86-Ubu01" {dd9a5fb5-06ce-494a-ae9a-a66313ab6914} "test01" {46753dff-0314-4ac2-aeac-e963286e80a6}
できてる.最初に createvm --register
とするのが楽だったね.
さて,あれこれパラメタを設定しないといけない.上の方から行くか...
$ VBoxManage list ostypes ID: Other Description: Other/Unknown (略 ID: Ubuntu Description: Ubuntu ID: Ubuntu_64 Description: Ubuntu (64 bit) (略 $ VBoxManage modifyvm test01 --ostype Ubuntu_64
今回はちょっと迎合気味に,Ubuntuを入れることになってるので...
ホストに合わせてゲストのメモリ量を調整する:
$ VBoxManage list hostinfo Host Information: Host time: 2011-04-19T03:56:38.267000000Z Processor online count: 4 Processor count: 4 Processor#0 speed: 3193 MHz Processor#0 description: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz Processor#1 speed: 3193 MHz Processor#1 description: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz Processor#2 speed: 3193 MHz Processor#2 description: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz Processor#3 speed: 3193 MHz Processor#3 description: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz Memory size: 11960 MByte Memory available: 10008 MByte Operating system: Linux Operating system version: 2.6.38-2-amd64 $ VBoxManage modifyvm test01 --memory $((4*1024))
12 GB積んでるホストなんで,テスト用のゲストに4 GBくらい割り振っても全然オッケー.
上記のごとくホストCPUは4コア Core i5 (Sandy Bridge) なんで,ゲストもSMPさせてあげたい:
$ VBoxManage modifyvm test01 --ioapic on $ VBoxManage modifyvm test01 --cpus 2
IO APIC は複数CPUに割り込みを分配する機構なので,OnじゃないとSMPにならない.
サブネットに余裕もあるし,NICはブリッジを選ぶことにする:
$ VBoxManage modifyvm test01 --nic1 bridged $ VBoxManage modifyvm test01 --bridgeadapter1 eth0
こういう意味的にグループをなす設定は,1回に複数個まとめて実行してもいいね: VBoxManage modifyvm test01 --nic1 bridged --bridgeadapter1 eth0
難関は仮想HDDの作成と登録である.
$ VBoxManage createhd --filename /dev/shm/test01.vdi --size $((32 * 1024)) 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Disk image created. UUID: fb4380fe-e4dd-47b6-be62-2bd6b113e8cd $ VBoxManage storagectl test01 --name 'SATA コントローラ' --add sata $ VBoxManage storageattach test01 --storagectl 'SATA コントローラ' --port 0 --device 0 --type hdd --medium /dev/shm/test01.vdi
サイズは可変で32 GBにしてみました.
続いてインストーラISOを読ませる仮想DVDドライブに取りかかる:
$ VBoxManage storagectl test01 --name 'IDE コントローラ' --add ide $ VBoxManage storageattach test01 --storagectl 'IDE コントローラ' --port 1 --device 0 --type dvddrive --medium ~/maverick-server-amd64/ubuntu-10.10-server-amd64.iso
これで showvminfo
すれば,ちゃんとなってるのが分かるはず.この段階で VBoxManage startvm test01
をやれば,UbuntuインストーラでVMがブートするはず.
問題は VBoxManage startvm test01 --type headless
やったときに,シリアル出力を見る方法について...
追記: [後で書く] そもそも新規OSインストールまでをコマンドライン上でやるのが目的だった.しかし大抵のOSのインストーラはシリアル経由で操作できないのでVirtualBoxとは別のノウハウが必要になる.