User Mode Linuxの設定方法など。
#contents
*概要 [#pa8bdc5f]
-ホストOSにまったく手をつけずにゲストOSを動かせることが可能
--Linux 2.6.13以降でSKAS0モード使用時
--Linux 2.6.13未満の場合はTTモードだがパフォーマンスなどは劣る
-よりパフォーマンスを求めるなら、ホストOSにパッチを当てるSKAS3モードも使用可能~
-自動起動などの仕組みは特に用意されていないようだ
*パッケージのインストール [#o6e77e7c]
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
*ゲストカーネルの構築 [#t565be3b]
.configは、次のようにした(→config.tgz)。
#ref(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
*uml用ユーザ作成 [#w449bf0a]
# useradd uml -g 100 -G uml-net
*起動 [#j0f8e885]
ゲストカーネルの構築で作成した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)。~
結構無茶な方法なのでうまくいかないことがある…。
#ref(umlctrl.tgz)
*参考 [#oc4d80dd]
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~