Google Code Prettify

2008年7月23日

FreeBSD 7.0 と Linux KVM

KVM 上に FreeBSD 7.0 をインストールした。

その前に、FreeBSD は CD 数枚組で配布されており、DVD は無い。 Creating Your Own FreeBSD 7.0 DVDを参考に作成してみた。

FreeBSD 7.0 DVD イメージの用意

近場のミラーサイトから

  • 7.0-RELEASE-i386-disc1.iso
  • 7.0-RELEASE-i386-disc2.iso
  • 7.0-RELEASE-i386-disc3.iso
  • 7.0-RELEASE-i386-docs.iso
を入手する。

DVDイメージの作成

下記コマンドは、Linux上で作業。

# mkdir /path/to/dvd-freebsd7
#
# for suffix in "disc1 disc2 disc3 docs"; do
#   iso="7.0-RELEASE-i386-$suffix.iso"
#   mount -oloop /path/to/$iso /mnt
#   tar -C /mnt -c . | tar -C /path/to/dvd-freebsd7 x
#   umount /mnt
# done
#
# rm -Rf /path/to/dvd-freebsd7/rr_moved
#
# sed -ie 's/|[123]$//' /path/to/dvd-freebsd7/all/packages/INDEX
#
# cat >> /path/to/dvd-freebsd7/cdrom.inf <<EOF
CD_VOLUME = 0
CD_VOLUME = 1
CD_VOLUME = 2
CD_VOLUME = 3
EOF
#
# mkisofs -v -V FreeBSD -J -R -no-emul-boot -b boot/cdboot -o /path/to/7.0-RELEASE-i386-dvd.iso /path/to/dvd-freebsd7

インストール

KVM上では、2点問題がでたが、それを除けば難なくインストールできた。

ACPI/APICが機能しない

ACPI/APICが上手く機能しいので、それを除けてインストールし、最後にブートローダ側での設定を行った。

/boot/loader.conf
/boot/device.hints

hint.acpi.0.disabled=1
hint.apic.0.disabled=1

libvirtではshutdown制御がACPI経由で行われるようなので、いちいちログインして終了する必要があり、自動でVMが終了しない。ちょっと嫌ですな。。。そのうちFreeBSD on Linux KVM でACPI対応するんだろうなぁ

追記(2008/07/24)

ACPIを無効にして、APMを使うようにすれば、自動でVMを終了することができる。但し、libvirtではshutdown制御は効かない。。。

  • /boot/device.hintsに、hint.apm.0.disabled=0
  • /boot/loader.confに、apm_load="YES"
  • /etc/rc.confに apm_enable="YES"

参考「FreeBSDでACPIを無効にしAPMを有効にする方法

NICが安定しない

また、KVMのデフォルトで選択される rtl8139では、FreeBSD側のドライバが安定してない。何か timeout とかのメッセージが出る。

libvirt 0.4.2 から NIC のmodel指定ができるようになったので、手動で最新ソース libvirt_0.4.4-0ubuntu1 からパッケージを構築し、NICのモデルに e1000 を指定したら安定して動くようになった。

...
   <interface type='bridge'>
     <mac address='xxxxxx'/>
     <source bridge='br0'/>
     <model type='e1000'/>
   </interface>
...

NetBSD on Linux KVM も似た感じで、ACPI無効で適当なNICモデルを選択すれば良い。

0 件のコメント:

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...