VirtualBox バージョン 5.2 のコマンドライン操作
Oracle VM VirtualBox は,仮想マシンを実現するソフトウエアである.
このページでは,Windows における VirtualBox バージョン 5.2 の主要機能のコマンドライン操作方法について解説する.GUIを使用せずにリモート操作や自動化を実現したい場合に有用である.
【関連する外部ページ】
Virtual Box の公式サイト: https://www.virtualbox.org/
前提条件
VBoxManageコマンドを使用するには,VirtualBoxのインストールディレクトリにパスが通っている必要がある.Windowsの場合,通常は「C:\Program Files\Oracle\VirtualBox」である.パスが通っていない場合は,環境変数PATHに追加するか,フルパスでコマンドを実行する.
情報の取得
以下に Windows での操作例を示す.
- VirtualBox バージョンの取得
インストールされているVirtualBoxのバージョンを確認する.トラブルシューティングやドキュメント参照時に必要となる.
VBoxManage -v
- 仮想マシンの一覧取得
仮想マシンの名称とUUID(仮想マシンを一意に識別する識別子)を表示する.
◆ 実行例
この例では仮想マシンが存在しない(まだ作成していないため).
VBoxManage list vms
- 仮想ストレージ一覧の取得
UUID,ParentUUID(スナップショットの親ディスクを示す識別子),フォーマット,場所,ステータス,タイプ,使用状況などの情報を表示する.
◆ 実行例
この例では仮想ストレージが存在しない(まだ作成していないため).
VBoxManage list hdds
- 仮想DVDドライブ一覧の取得
UUID,フォーマット,場所,ステータス,タイプ,使用状況などの情報を表示する.
◆ 実行例
この例では仮想DVDドライブが存在しない(まだ作成していないため).
VBoxManage list dvds
- OSタイプ一覧の取得
仮想マシン作成時に指定可能なOSタイプの一覧を表示する.modifyvmコマンドの--ostypeオプションで使用する値を確認できる.
◆ 実行例
* ホストのハードウェアと設定により,表示される値は異なる.
VBoxManage list ostypes
- ブリッジインターフェース一覧の取得
ブリッジ接続で使用可能なホストのネットワークアダプタ一覧を表示する.名称,GUID,DHCP設定,IPアドレス,ネットワークマスク,IPv6アドレス,IPv6ネットワークマスクプレフィックス長,MACアドレス,メディアタイプ,ステータス,VBoxネットワーク名が含まれる.
◆ 実行例
VBoxManage list bridgedifs
- ホストオンリーインターフェース一覧の取得
ホストオンリーネットワーク(ホストと仮想マシン間のみで通信可能なネットワーク)のインターフェース一覧を表示する.名称,GUID,DHCP設定,IPアドレス,ネットワークマスク,IPv6アドレス,IPv6ネットワークマスクプレフィックス長,MACアドレス,メディアタイプ,ステータス,VBoxネットワーク名が含まれる.
◆ 実行例
* ホストのハードウェアと設定により,表示される値は異なる.
VBoxManage list hostonlyifs
- DHCPサーバ一覧の取得
VirtualBoxが管理するDHCPサーバの設定を表示する.ネットワーク名,IPアドレス,ネットワークマスク,割当開始IPアドレス,割当終了IPアドレス,有効/無効状態が含まれる.
◆ 実行例
* ホストのハードウェアと設定により,表示される値は異なる.
VBoxManage list dhcpservers
- ホスト情報の取得
ホストマシンのハードウェア情報を表示する.ホスト時刻,オンラインプロセッサ数,総プロセッサ数,プロセッサ詳細,メモリサイズ,利用可能メモリ,オペレーティングシステム,OSバージョンが含まれる.
◆ 実行例
* ホストのハードウェアと設定により,表示される値は異なる.
VBoxManage list hostinfo
- ホストCPUIDの取得
ホストCPUのCPUID情報(CPU機能フラグ)を表示する.仮想マシンのCPU設定をカスタマイズする際の参考情報となる.
◆ 実行例
* ホストのハードウェアと設定により,表示される値は異なる.
VBoxManage list hostcpuids
- システム属性の取得
VirtualBoxのシステム全体の設定値と制限値を表示する.デフォルトの仮想マシンフォルダ,最大ゲストRAMサイズなどが含まれる.
◆ 実行例
* ホストのハードウェアと設定により,表示される値は異なる.
VBoxManage list systemproperties
仮想マシンの操作
【関連する外部ページ】 http://www.virtualbox.org/manual/ch08.html#vboxmanage-list
ここで実行するコマンド例
VBoxManage createvm --name ubuntu1804
VBoxManage registervm /home/kaneko/VirtualBox\ VMs/ubuntu1804/ubuntu1804.vbox
VBoxManage modifyvm ubuntu1804 --ostype Ubuntu_64 --memory 8000 --acpi on --hwvirtex on --nestedpaging on --largepages on --vtxvpid on --accelerate3d on --accelerate2dvideo on --nic1 bridged --bridgeadapter1 enp0s31f6 --usb on --usbehci off
rm -f /home/ubuntu1804.vdi
VBoxManage createhd --filename /home/ubuntu1804.vdi --size 80000
VBoxManage storagectl ubuntu1804 --name ubuntu1804sata1 --add sata --bootable on
VBoxManage storageattach ubuntu1804 --storagectl ubuntu1804sata1 --port 1 --type hdd --medium /home/ubuntu1804.vdi
VBoxManage storageattach ubuntu1804 --storagectl ubuntu1804sata1 --port 2 --type dvddrive --medium /home/www/computer/linux/ubuntu-18.04.1-desktop-amd64.iso
VBoxManage startvm ubuntu1804
仮想マシンの作成と登録
- XML仮想マシン定義ファイルの生成
仮想マシンの設定を保持するXMLファイルを生成する.この時点ではVirtualBoxに登録されていないため,別途registervm コマンドで登録する必要がある.
◆ 設定例
- マシン名: ubuntu1804
◆ 実行例
VBoxManage createvm --name ubuntu1804
- XML仮想マシン定義ファイルの登録
生成した定義ファイルをVirtualBoxに登録する.登録後,list vmsコマンドで一覧に表示されるようになる.
◆ 実行例
VBoxManage registervm /home/kaneko/VirtualBox\ VMs/ubuntu1804/ubuntu1804.vbox VBoxManage list vms
仮想マシンの設定
- 登録済み仮想マシンのプロパティ設定
仮想マシンのハードウェア構成を設定する.以下の主要オプションを設定できる.
--acpi: 電源管理機能(ACPI)の有効化.ゲストOSの正常なシャットダウンに必要.
--hwvirtex: Intel VT-xまたはAMD-Vによるハードウェア仮想化支援の有効化.パフォーマンス向上に寄与する.
--nestedpaging: ネステッドページング(メモリ仮想化の高速化機能)の有効化.
--vtxvpid: VT-x VPIDの有効化.仮想マシン切り替え時のオーバーヘッドを削減する.
- マシン名: ubuntu1804
- OSタイプ: Ubuntu_64
- 仮想マシン割当メインメモリサイズ: 8000(メガバイト)
- ネットワークインターフェース: ブリッジ接続(bridged),enp0s31f6
enp0s31f6という名前は「VBoxManage list bridgedifs」で確認できる.
◆ NAT接続設定例(未確認)
NAT接続では,仮想マシンはホストのIPアドレスを共有してインターネットにアクセスする.外部から仮想マシンへの直接接続はできない.
VBoxManage modifyvm ubuntu1804 --ostype Ubuntu_64 --memory 8000 --acpi on --hwvirtex on --nestedpaging on --largepages on --vtxvpid on --accelerate3d on --accelerate2dvideo on --nic1 nat --usb on --usbehci off◆ ブリッジ接続設定例
ブリッジ接続では,仮想マシンがホストと同じネットワークに直接参加する.仮想マシンに独自のIPアドレスが割り当てられ,外部からの接続も可能となる.
VBoxManage modifyvm ubuntu1804 --ostype Ubuntu_64 --memory 8000 --acpi on --hwvirtex on --nestedpaging on --largepages on --vtxvpid on --accelerate3d on --accelerate2dvideo on --nic1 bridged --bridgeadapter1 enp0s31f6 --usb on --usbehci off
ストレージの設定
- 仮想ハードディスクイメージファイルの作成
仮想マシンのハードディスクとして使用するVDIファイルを作成する.
- イメージファイル名: /home/ubuntu1804.vdi
- イメージファイルサイズ: 80000(メガバイト)
◆ 実行例
VBoxManage createhd --filename /home/ubuntu1804.vdi --size 80000
- SATAストレージコントローラの作成
仮想マシンにストレージコントローラを追加する.ハードディスクやDVDドライブを接続するために必要である.
- 仮想マシン名: ubuntu1804
- ストレージコントローラ名: ubuntu1804sata1
- システムバス種類: sata
◆ 実行例
VBoxManage storagectl ubuntu1804 --name ubuntu1804sata1 --add sata --bootable on
- 仮想ハードディスクと仮想DVDドライブの割り当て
作成したストレージコントローラに,仮想ハードディスクと仮想DVDドライブを接続する.ポート番号は重複しないように設定する.
仮想ハードディスクの割り当て設定を以下に示す.
- 仮想マシン名: ubuntu1804
- ストレージコントローラ名: ubuntu1804sata1
- ポート番号: 1
- タイプ: hdd
- イメージファイル名: /home/ubuntu1804.vdi
◆ 実行例
VBoxManage storageattach ubuntu1804 --storagectl ubuntu1804sata1 --port 1 --type hdd --medium /home/ubuntu1804.vdi
仮想DVDドライブの割り当て設定を以下に示す.
- 仮想マシン名: ubuntu1804
- ストレージコントローラ名: ubuntu1804sata1
- ポート番号: 2
- タイプ: dvddrive
- ISOイメージファイル名: /home/www/computer/linux/ubuntu-18.04.1-desktop-amd64.iso
◆ 実行例
VBoxManage storageattach ubuntu1804 --storagectl ubuntu1804sata1 --port 2 --type dvddrive --medium /home/www/computer/linux/ubuntu-18.04.1-desktop-amd64.iso
仮想マシンの起動と確認
- VirtualBox GUIを使用した起動確認
コマンドラインでの起動前に,GUIで設定内容を確認することを推奨する.エラー発生時のメッセージ確認が容易であり,設定変更も簡単に行えるためである.
virtualbox
- 仮想マシンの起動
電源断(Powered off)または保存状態(Saved state)の仮想マシンを起動する.
VBoxManage startvm ubuntu1804◆ 実行例
- 起動状態の確認
VirtualBoxで「実行中」と表示が変更されることを確認する.
Ubuntuが起動し,デスクトップ画面が表示されることを確認する.
スナップショットと複製
- スナップショットの作成
スナップショットは,仮想マシンの特定時点の状態を保存する機能である.設定変更やソフトウェアインストール前に作成しておくことで,問題発生時に以前の状態に戻すことができる.
スナップショットを作成する際は,データの整合性を保つために仮想マシンを一時停止してから実行し,完了後に再開する.
VBoxManage controlvm ubuntu1804 pause VBoxManage snapshot ubuntu1804 take ubuntu1804-snap1 VBoxManage controlvm ubuntu1804 resume - 仮想マシンの複製
既存の仮想マシンを複製して,同じ構成の仮想マシンを作成する.テンプレートとして使用する場合や,テスト環境の複製に有用である.
仮想マシンの電源を切った状態で,次のコマンドを実行する.
注意: 複製された仮想マシンは新しいUUIDとMACアドレスが割り当てられる.同一ネットワーク上で元の仮想マシンと複製を同時に起動しても,MACアドレスの競合は発生しない.
VBoxManage clonevm ubuntu1804 --mode machine --name ubuntu1804-new1 --register