少し前にSunからリリースされたVirtualBox 2は、デスクトップユーザに最適な仮想化アプリケーションの1つと評していいだろう。これは非常に低コストで取得可能な2つのバージョンで提供されており、このうちクローズソース版にはいくつかの機能追加が施されている。そして同ソフトウェアは完成度の高いグラフィカルユーザインタフェース(GUI:Graphical User Interface)で操作するのが基本であるため気づいているユーザーは少ないだろうが、実際にはコマンドラインからの完全な制御にも対応しているのだ。
VirtualBoxの強力なコマンドラインインタフェース(CLI:Command-Line Interface)を必要とするユーザー像としては、モニタやキーボードを接続しないヘッドレス形態でサーバを運用する人間を考えればいいだろう。また通常のデスクトップユーザーであってもVirtualBoxのGUIでは不可能な、仮想ディスクの縮小やクローニング、BIOSロゴのカスタマイズ化、仮想マシン(VM:Virtual Machine)の各種動作情報の収集といった操作が、CLIを介して実行できるのである。
VM作成についてはCLI操作からでも行えるが、ヘッドレスサーバ上でVirtualBoxを実行しているのでもない限りGUIを使う方が手間はかからないだろう。実際、一般的なVM作成オプションの大半はGUIでも利用可能であり、無理をしてCLI経由でVMを作成すると作業完了までにかえって長時間を要するはずだ。むしろCLI操作がその真価を発揮するのは、作成後のVMに対する各種の微調整なのである。
CLIからのVirtualBox制御にはVBoxManageコマンドを利用する。その際にはVMに施す変更や操作の種類に応じて、VBoxManageに用意されている各種のサブコマンドとオプション類を使い分けなくてはならない。またCLIからの操作時には、対象とするVMや仮想ディスクなどのコンポーネントも特定する必要がある。その指定は、VMの名前あるいは固有の識別子(UUID)で行えるようになっており、前者はVM作成時にユーザーが指定する名称で、後者はVirtualBoxが自動で割り当てる識別番号だ。
UUIDの確認はlistコマンドで行えるが、その際には対象となるデバイスのタイプを指定しなくてはならない。例えば下記の出力例のように、VMを対象とした「VBoxManage list vms」というコマンドを実行すると、VM本体のUUIDだけでなく、割り当てられたメモリ量、VMの現在の状態(実行中か電源オフか)、接続された仮想ディスク群のUUIDなど、各種の情報が表示される。
$ VBoxManage list vms VirtualBox Command Line Management Interface Version 2.0.2 (C) 2005-2008 Sun Microsystems, Inc. All rights reserved. Name: Fedora Guest OS: Fedora UUID: 50da82bf-9c03-48d2-99ad-66f9885f30c1 Config file: /home/bodhi/.VirtualBox/Machines/Fedora/Fedora.xml Memory size: 128MB VRAM size: 8MB Boot menu mode: message and menu ACPI: on IOAPIC: off PAE: off Time offset: 0 ms Hardw. virt.ext: off Nested Paging: off State: powered off (since 2008-10-15T20:29:41.000000000) Monitor count: 1 Floppy: empty SATA: disabled Primary master: /home/bodhi/.VirtualBox/VDI/eightgig (UUID: c00ef0b0-173a-4f10-aa9b-94f38a5306af) NIC 1: MAC: 0800273EBD00, Attachment: NAT, Cable connected: on, Trace: off, Type: Am79C973, Reported speed: 0 Mbps
こうして確認したUUIDは、VMに対する設定変更コマンド中で使用する。例えばVMの割り当てメモリ量を512MBに増やすには「VBoxManage modifyvm 50da82bf-9c03-48d2-99ad-66f9885f30c1 -memory "512MB"」と指定すればいい。同様に「VBoxManage modifyvm 50da82bf-9c03-48d2-99ad-66f9885f30c1 -vram "16MB"」は、ビデオRAMを16MBに増やすための指定だ。
このようにCLI操作時にUUID指定を用いるのは、開発プロジェクトからも推奨されている方式だが、本稿の解説では可読性を高めるために、VMの名前を用いた指定法を使うことにする。
