Ubuntu 13.04上のvirt-installでFreeBSD-CURRENTなVMを作る
前回の記事の続き。
FreeBSD-CURRENTのISOはシリアルコンソール用になっていないため、余計な作業が増えて面倒くさい。
よく読まずに作業を飛ばすとログイン手段をすべて失う事になるので注意されたい。
また、このOSは--location引数でのセットアップには対応していないので、ISOによるセットアップになる。
wget http://ftp.jaist.ac.jp/pub/FreeBSD/snapshots/amd64/amd64/ISO-IMAGES/10.0/FreeBSD-10.0-CURRENT-amd64-20130505-r250260-release.iso mkdir fbsd10-iso sudo mount -o loop,ro ./FreeBSD-10.0-CURRENT-amd64-20130505-r250260-release.iso /mnt/ cp -av /mnt/* fbsd10-iso/ sudo umount /mnt
まずはISOをダウンロードし、中身を作業用ディレクトリへ展開する必要がある。
cd fbsd10-iso/ echo 'console="comconsole"' > boot/loader.conf
ブートローダのコンソールモードをCOMへ設定する。
sudo apt-get install genisoimage mkisofs -v -b boot/cdboot -no-emul-boot -r -J -V "FREEBSD_INSTALL" -o ~/Headless-FreeBSD.iso ./ cd ~ rm -rf fbsd10-iso rm FreeBSD-10.0-CURRENT-amd64-20130505-r250260-release.iso
設定変更を反映した新しいISOを作成する。古いISOや作業用ディレクトリはISO作成後に捨ててしまって構わない。
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/freebsd.img 15G sudo virt-install --connect=qemu:///system -n freebsd --vcpus=4 -r 8192 --serial pty -v \ --disk=/var/lib/libvirt/images/freebsd.img,format=qcow2,bus=virtio --nographics \ -c Headless-FreeBSD.iso --network network=default,model=virtio
ディスクイメージを作成し、virt-installを実行する。
最近のFreeBSDはvirtio-blk,virtio-netに対応しているので、ここではLinuxゲストの時と同じくvirtioで設定を行う。
インストーラが起動するので通常どおりインストールを実行する。
ifconfig
exit
但し、最後にシェルを起動するか聞かれるので「Yes」とし、exitで終了する前に必ずifconfigを実行、DHCPから取得されたIPアドレスをメモしておくこと。
或いは、固定IPでセットアップを行うこと。
初回起動時にこのVMのコンソールへログインする方法が、SSH以外無いため、IPアドレスが分からないとログイン手段がなくなってしまう。
IPをメモしたらexitでシェルを終了し、VMの再起動を行う。
この時、virshのコンソール(シリアル)には何も表示されないので、1分程度起動を待ってから別のシェルからsshコマンドでVMへログインする必要がある。
echo 'console="comconsole"' > /boot/loader.conf vi /etc/ttys reboot
ログインできたら、/boot/loader.confへconsole=comconsoleを書き込み、/ety/ttysのttyu0の行を'ttyu0 "/usr/libexec/getty std.9600" vt100 on secure'に変更する。
できたら再起動すれば今度はvirshのコンソールに表示が行われるようになる。
…インストーラでデフォルト対応してくれないのかなぁ、シリアルコンソール。