2013年3月12日火曜日

user mode linux(ubuntu 12.04)

以前はkvmを使ってたんですが、kvmに対応していないintel CPUに仮想環境を作らないといけなくなったので、user mode linuxを試してみた。

試してみると、これが案外すばらしい。何がいいかってメモリ使用量が30MBも割り当てれば動くというこの小ささ。

kvmにはVM間で同じメモリデータを共有する仕組みがあってそれもなかなか優秀だけど、もともとの消費サイズが小さいのも素晴らしいよね。

この辺を参考にするが、hardyベースだと古いから新しいのでと思ってpreciseで試してみるとうまく動かなくて、debianのsqueezeを使った。


sudo apt-get install user-mode-linux uml-utilities bridge-utils debootstrap

#1GB
dd if=/dev/zero of=rootfs bs=32k count=32k

mkfs.ext4 rootfs

sudo mount -o loop rootfs.img /mnt

sudo -i

#squeezeベースのルートファイルシステムを作る
debootstrap squeeze /mnt http://ftp.jp.debian.org/debian

#VMのfstab設定
echo "/dev/ubd0  /       ext4    defaults     0 1" > /mnt/etc/fstab
echo "proc       /proc   proc    defaults     0 0" >> /mnt/etc/fstab

#VMのディスクデバイス
mknod --mode=660 /mnt/dev/ubd0 b 98 0
chown root:disk /mnt/dev/ubd0

echo "127.0.0.1 localhost" > /mnt/etc/hosts

#ネットワーク設定
echo "auto lo" > /mnt/etc/network/interfaces
echo "iface lo inet loopback" >> /mnt/etc/network/interfaces
echo "auto eth0" >> /mnt/etc/network/interfaces
echo "iface eth0 inet dhcp" >> /mnt/etc/network/interfaces 

#rootのパスワードを設定しておく
chroot /mnt
passwd
exit

#VM起動時にコンソールがいっぱい表示されるので、ttyのところの2~6を無効にして
#コンソールは1つだけにする
vi /mnt/etc/inittab

#sudoから抜ける
exit

設定は以上。

VMの起動はこんな感じ。
linux ubd0=rootfs eth0=daemon umid=uml1 mem=32m

ネットワーク設定についてはまた今度

0 件のコメント:

コメントを投稿