前回の続きです.今回はBitVisorをとりあえず動かしてみましょう.
BitVisorの動作条件
BitVisorの動作には,ハードウェアによる仮想化支援機構が有効なIntelまたはAMDのCPUが必要です.仮想化支援機構はIntelの場合はIntel VT-x, AMDの場合はAMD-V (AMV SVM)と呼ばれます.おそらく最近のデスクトップ向けCPUであれば対応しているでしょう.
Linuxの場合,使用しているCPUが仮想化支援機構に対応しているかどうかは以下のコマンド確認できます.
grep -E 'svm|vmx' /proc/cpuinfo
場合によっては仮想化支援機構がBIOSで無効化されていることがあります.もし仮想化支援機構に対応しているはずのCPUで上記のコマンドなどで仮想化支援機構が確認できない場合は,BIOSの設定を見直してみてください.
BitVisorは原則任意のOSに対応できます.特にWindows, Linux, Mac, FreeDOSでは動作確認が取れています.ただし,BitVisorの開発はツールの関係上Linuxを使用するのが便利です.
仮想マシン内でのBitVisorの利用
一部の仮想マシンはネステッド仮想化と呼ばれる,仮想マシン内で仮想化支援機構を利用する機能をサポートしています.これにより仮想マシン内でBitVisorを実行することができます.なお,QEMUを除きこの機能を利用するには物理CPUが仮想化支援機構に対応している必要があります.
現在BitVisorをまともに動作させることのできるのは,VMWareのみです.QEMU, KVM/QEMUでは限定的に動作,Hyper-V, VirtualBoxでは動作確認が取れていません.詳細は以下の記事を参考にしてください.
- VMware製品上でBitVisorは動作するか?
- VMWare GDB stubを利用したBitVisorのデバッグ
- QEMU上でBitVisorは動作するか?
- QEMU上でBitVisorは動作するか? リベンジ編
- QEMU上でBitVisorの準パススルードライバーを動かす
- HyperV 上で BitVisor は動くのか?
- BitVisor on HyperV 再挑戦
- BitVisor on VirtualBox チャレンジ (Intel編)
- BitVisor on VirtualBox チャレンジ (AMD編)
筆者的にはVMWare (Workstation)を使うと楽に実験できるのでおすすめです.
BitVisorのコンパイル
BitVisorのソースは https://bitbucket.org/bitvisor/bitvisor にあります.基本はこれをmakeしてできるbitvisor.elfがBitVisor本体です.
以下にコンパイル方法についての説明があります.
makeの前にmake config
により,BitVisorのオプションを設定します.また,ソースのルートディレクトリに配置したdefconfig(deffconfig.tmplをコピーして利用する.もしmake時になければ自動で作成されます)もBitVisorの一部の設定に影響します.とりあえずBitVisorを試すだけならデフォルト設定で十分なので,ここでは細かい設定については割愛します.
BitVisorのインストール・起動方法
BitVisorのインストール・起動方法として主に以下の方法があります.
- ローカルのディスクにインストールして起動
- USBメモリにBitVisorをインストールして起動
- (i)pxeを利用したネットワークブート
また,BIOSから起動するか,UEFIから起動するかで起動方法が異なります.自身の環境に合わせてインストールしてください.とりあえず試すだけならUSBブートが楽です.
以下に各種インストール・起動情報の情報があります.
- ローカルディスク
-
BitVisor のインストール(ローカルディスク)
- BIOSの場合.なお作成した
/etc/grub.d/99_bitvisor
にはupdate-grub
実行前に実行権限を付与しておく必要があります.
- BIOSの場合.なお作成した
-
BitVisorをUbuntu 18.04.1でビルドしてUEFIブートする(GRUB2)
- UEFIの場合
-
BitVisor のインストール(ローカルディスク)
- USBメモリからの起動
- ネットワークブート
dbgshによる動作確認
BitVisorのインストールに成功して,BitVisorが起動すれば,起動時に画面にBitVisorが出力するメッセージが表示されるはずです.ただし,このメッセージは起動時のごく短い時間しか表示されないため,見逃してしまうかもしれません.
dbgshを利用することで,BitVisorの動作が確認できます.dbgshはBitVisorのソースのtools/dbgsh
に含まれています.tools/dbgsh
に移動してmakeすればdbgsh
という実行ファイルができるので,これを実行するだけです.dbgshの起動に成功すると,プロンプトが表示されます.このdbgshはBitVisorとメッセージをやりとりするための仕組みです.log
というコマンドを実行すると,BitVisorのログメッセージが確認できます.BitVisorが起動していない場合は,vmmcall "dbgsh" failed
というメッセージが表示されます.dbgshはexit
で終了できます.
まとめ
BitVisorのインストール・起動方法を紹介しました.次回はBitVisorの構成・動作について詳しくみていきましょう.