はじめに
BitVisor をローカルディスクにインストールする方法をいくつか紹介します(予定)。
Linux
ここでは CentOS 7 や Ubuntu 14.04 LTS などの grub2 を使ったシステムを対象とします。
bitvisor.elf のインストール
BitVisor Advent Calendar 2015 の 8日目に従って bitvisor.elf がコンパイルしてあるものとします。
以下のようにして bitvisor.elf を /boot にインストールします。
$ cd ~/bitvisor
$ sudo cp bitvisor.elf /boot/
grub の設定
以下のファイルを 99_bitvisor という名前で /etc/grub.d/ 以下に作成します。
#!/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