BitVisor のインストール(ローカルディスク)


はじめに

BitVisor をローカルディスクにインストールする方法をいくつか紹介します(予定)。

Linux

ここでは CentOS 7 や Ubuntu 14.04 LTS などの grub2 を使ったシステムを対象とします。

bitvisor.elf のインストール

BitVisor Advent Calendar 20158日目に従って bitvisor.elf がコンパイルしてあるものとします。

以下のようにして bitvisor.elf を /boot にインストールします。

$ cd ~/bitvisor
$ sudo cp bitvisor.elf /boot/

grub の設定

以下のファイルを 99_bitvisor という名前で /etc/grub.d/ 以下に作成します。

99_bitvisor
#!/bin/sh
set -e

datarootdir="/usr/share"

. "${datarootdir}/grub/grub-mkconfig_lib"

if [ \! -f /boot/bitvisor.elf ]; then
    exit 0
fi
echo "Found BitVisor image" >&2

cat <<EOF
if [ "\${bitvisor_next_entry}" ]; then
    set default="\${bitvisor_next_entry}"
    set bitvisor_next_entry=
    save_env bitvisor_next_entry
else
    set bitvisor_next_entry="\${default}"
    save_env bitvisor_next_entry
    set default="BitVisor"
fi

menuentry "BitVisor" {
$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)
    echo 'Loading BitVisor ...'
    multiboot /boot/bitvisor.elf
}
EOF

読めば内容は分かると思いますが、初回起動時には bitvisor_next_entry という環境変数に本来起動するべきエントリを保存しておいてから BitVisor を起動します。BitVisor が起動して GRUB に戻ってきたら、bitvisor_next_entry に保存しておいたエントリを default に設定します。

もともと Linux が自動的に起動する環境では、BitVisor が自動的に起動した後に Linux が自動的に起動します。grub-reboot コマンドで次回起動するエントリを指定した場合や、grub-set-default コマンドでデフォルトを指定した場合などでも、まず BitVisor を起動してから、指定したエントリを起動するようになります。

設定ファイルの更新

CentOS 7

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Ubuntu 14.04 LTS

$ sudo update-grub2

Windows

TBA

Mac

TBA