Xen Domain-U用のファイルシステムイメージを作る

概要

目標は,XenのDomain-Uとして動作するFreeBSDファイルシステムイメージを得ることです.
しかし,まだ上手くいっていません.以下の手順は参考までに.

作業手順

(1) FreeBSDを通常通りインストールする
弊サイトでは作業環境の都合により,VMWare上に環境を構築しました.この段階でインストールするFreeBSDには,特別な事は何もありません.

後でmake buildworldできるように,すべてのソースコードをインストールしておく.

(2) FreeBSDをブートし,UserlandとKernelを作り直す

# cd /usr/src
# make buildworld && make buildkernel

(3) Domain-Uのイメージファイルを作成

# cd /root
# dd if=/dev/zero of=freebsd-xenU.img bs=1k seek=8m count=1

これで8GB分の穴あきファイルができあがる.続いて,このイメージをマウントできるようにする.

# mdconfig -a -t vnode -f freebsd-xenU.img
md0
# mdconfig -l
md0

めでたく/dev/md0ができた.パーテーション(FreeBSD的には「スライス」)を切ってdisklabelを書く.(参考: 15.3. ディスクの追加])

# fdisk -BI md0
# disklabel -B -w -r /dev/md0s1 auto
# disklabel -e md0s1

disklabelはこんな感じ.swapに1GB分確保した.

# /dev/md0s1:
8 partitions:
#      size   offset    fstype    [fsize bsize bps/cpg]
a: 15723221  1048576    4.2BSD         0    0
b:  1048576        0      swap
c: 16771797        0    4.2BSD         0    0

ファイルシステムを作り,マウントする.

# newfs /dev/md0s1a
# mount /dev/md0s1a /mnt

(4) UserlandとKernelをインストール

# cd /usr/src
# make installworld DESTDIR=/mnt
# cp /usr/src/sys/i386/conf/GENERIC.hints /mnt/boot/device.hints
# make installkernel DESTDIR=/mnt
# mergemaster -i -D /mnt
# mergemaster -D /mnt

(5) Domain-Uの環境設定

# cp /etc/fstab /mnt/etc/fstab
# chroot /mnt /bin/csh

適当に,ユーザの追加とかをやってexit

(6) アンマウント

# umount /mnt
# mdconfig -d -u md0

(7) Domain-UイメージをDomain-0環境に持って行く