User Mode Linuxの設定方法など。
amd64アーキテクチャの場合は、User Mode Linuxのバイナリが用意されていないようなので、自分で作る。
# apt-get install uml-utilities # apt-get install debootstrap # apt-get install linux-source-2.6.18 # apt-get install libncurses5-dev
.configは、次のようにした(→config.tgz)。
% mkdir ~uml % cd ~uml % tar xjf /usr/src/linux-source-2.6.18.tar.bz2 % make defconfig ARCH=um % make menuconfig ARCH=um % make ARCH=um % strip linux
そして、ゲストOS用のファイルシステムを構築。パーティションにしたかったが、User Mode Linuxの引数にはファイルしか渡せないようなので、パーティション全てを使ってファイルを作成した。debootstrapは、それなりに時間がかかる。
# mkfs.jfs /dev/sdb1 # mount /dev/sdb1 umlmnt # dd if=/dev/zero of=umlmnt/root_fs # mkfs.jfs umlmnt/root_fs # mount -o loop umlmnt/root_fs /mnt # debootstrap etch /mnt # vi /mnt/etc/hosts # vi /mnt/etc/resolv.conf # vi /mnt/etc/fstab # vi /mnt/etc/hostname # vi /mnt/etc/network/interfaces # umount /mnt
# useradd uml -g 100 -G uml-net
ゲストカーネルの構築で作成したlinuxコマンドを実行する。仮想コンソールを使用し、バックグラウンドで起動する。
% /usr/bin/nohup linux con0=fd:0,fd:1 con=pts ubd0=umlmnt/root_fs eth0=tuntap,,,192.168.0.100 > /tmp/umlout &
標準では、自動起動などの仕組みが用意されていないので、サービス起動停止用スクリプトを作ってみた(→umlctrl.tgz)。
結構無茶な方法なのでうまくいかないことがある…。
http://user-mode-linux.sourceforge.net/
http://www.atmarkit.co.jp/flinux/special/uml/uml01.html
http://opentechpress.jp/developer/07/01/15/0111214.shtml
http://www.ne.jp/asahi/open/gallery/linux/uml/umlvl31/umlvl31.htm
http://www.nabe.bne.jp/linux/uml-vm.html
http://memo.blogdns.net/uml2.html
http://www.digitalinfra.co.jp/uml/jdike/UserModeLinux-HOWTO-5.html