with Your Dreams

Xen 上で,FreeBSD を,Domain-U(準仮想環境)で動かします. まずは,ハードウェア上で直接動く FreeBSD 環境を用意します.適当な作業ディレクトリを作ってください. Domain-U に対応した FreeBSD では,専用の kernel を使うので,ソースコード一式を subversion で取得し,ビルドする必要があります.


% mkdir /tmp/freebsd-xen
% svn co svn://svn.freebsd.org/base/release/8.0.0/ -r 'HEAD' /tmp/freebsd-xen/freebsd-release8/
% cd /tmp/freebsd-xen/freebsd-release8/
% make -j8 buildworld
% cd ./sys/i386/conf
% cp XEN harukiXEN2010020501
% vi harukiXEN2010020501
% config harukiXEN2010020501
% cd ../compile/harukiXEN2010020501
% make cleandepend; make depend
% make
make buildworld は結構な時間がかかるので,のんびり待ちます. 次に,イメージファイルを用意します.必要なサイズで作ればいいですが,Domain-0 が動くマシンに転送するので,物理的に遠い場合など,ネットワークが心配な際は,小さいサイズで作って動作を確認し,動作確認後に大きなサイズで作り直せばいいと思います.

# dd if=/dev/zero of=/tmp/freebsd-xen/disk.img bs=1k count=1M
この指定で,1GB のサイズのイメージファイルが作られます.

# cd /tmp/freebsd-xen/
# mdconfig -a -t vnode -f disk.img -u 2
# bsdlabel -w /dev/md2 auto
# bsdlabel -e /dev/md2
エディタが立ち上がるので,内容は,

# /dev/md2:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097136       16    4.2BSD        0     0
  c:  2097152        0    unused        0     0        # "raw" part, don't edit
こんな感じでいいと思います.a の fstype を書き換えただけです.

# newfs md2a
# mount /dev/md2a /mnt
これで,ディスクイメージが /mnt にマウントされたので,ここに先程ビルドした環境をインストールしていきます.

# cd /tmp/freebsd-xen/freebsd-release8/
# make installworld DESTDIR=/mnt
# cd ./sys/i386/compile/harukiXEN2010020501/
# make install DESTDIR=/mnt
# cd ../../../
# cp -rp ./etc/* /mnt/etc/
/etc 以下の,ttys と fstab が無いので,ビルドに使用した環境からコピーして書き換えます.

# cp /etc/fstab /etc/ttys /mnt/etc/
# vi /mnt/etc/fstab
fstab の内容は,

# Device   Mountpoint     FStype     Options     Dump    Pass#
/dev/da0a  /              ufs        rw          1       1
proc       /proc          procfs     rw          0       0

# vi /mnt/etc/ttys
ttys は,ttyv0~ttyv8 をコメントアウトし,xc0 の行を作ります

xc0     "/usr/libexec/getty Pc"         vt100   on  secure
/etc/passwd,/etc/master.passwd もコピーしておきます.master.passwd の 2カラム目を空にしておくと,パスワード無しでログインできるので,root だけでも編集しておくと良いでしょう

# cp /etc/passwd /etc/master.passwd /mnt/etc/
# chroot /mnt
chroot% vipw
chroot% exit
# cat /mnt/etc/master.passwd | grep root
root::0:0::0:0:Charlie &:/root:/bin/csh
kernel だけ別途必要なので,コピーしておきます.

# cp /mnt/boot/kernel/kernel /tmp/freebsd-xen/freebsd8.kern
これで作業は終わりです.マウントを解除して,XEN 環境に転送します.

# cd /tmp/freebsd-xen/
# umount /mnt
# mdconfig -d -u 2
追記: DomU として立ち上げるための Dom0 環境の構築については, http://haruki.tumblr.com/post/421190852/debian-domain-0-dom0-xen を御覧下さい

  1. trampoline3x reblogged this from haruki
  2. dunia-digital reblogged this from haruki
  3. ftnk reblogged this from otsune
  4. tnmt reblogged this from otsune
  5. shinsen reblogged this from kuriz
  6. k32ru reblogged this from false
  7. gungle reblogged this from otsune
  8. false reblogged this from otsune
  9. ryka reblogged this from otsune
  10. kuriz reblogged this from otsune
  11. shinkr reblogged this from otsune
  12. simsjp reblogged this from otsune
  13. samazama reblogged this from otsune
  14. s0n19u3 reblogged this from otsune
  15. otsune reblogged this from haruki
  16. haruki posted this

Dr.Net Survey