ユーザモード・リナックス
(UML ja から転送)
短いURLが欲しい人は、UML jaを使って下さい。
(UML : User Mode Linux - 利用者モード・リナックス)
英語
- 技術的なお話しです。ユーザモード・リナックスは、リナックスの上で子供のリナックスを複数動かすための仕組です。ボクはレッドハット・リナックスを使っているんだけど、デビアンを実は愛していて一緒になりたくて、ユーザモード・リナックスに関わりました。VMWAREでも出来るんだけど、ユーザモード・リナックスの方が軽くて早いんだよね。技術に興味のない方は御免ね。でも、将来色々な機械の上でリナックスが動いて、更にユーザモード・リナックスが複数一つの機械の上で動くようなことがもうすぐ始まりますの。
ユーザモード・リナックスって、片仮名で書いた方が馴染みやすそうだよね。偉い人はその辺のとこ分っていない。更に、漢字にすると、「利用者状態リナックス」。分ったぁ?
まあ、分らない人はあっち行っててね。まだ、時期が早いの。これは、マニア向けの話。 もうちょっとしたら、誰でも持ってるコンピュータの上ではリナックスが動いてて、 その上では沢山の「ユーザモード・リナックス」が動くようになるからね。
ユーザモード・リナックスは、システムのモードではなく、ごく一般のアプリケーションとして動く、リナックス上のリナックス。 ここの解説が、マニアには分りやすい。仮想OS「User Mode Linux」活用法 ほい。
これも解説書: UML Quick Start Guide 日本語のくせにタイトルが英語っていうのが、初心者を怖がらせていい感じでしょ?
これは、UMLって呼ばれてるんだけど、UMLを最初に動かしたのは去年の事だったんだけど、VMWAREを使っていたので、深入りしないで終っていたの。最近になって、デビアン リナックスを使いたくなったので、利用者モード・リナックスの上で動かそうかな? と、思っていたの。
基本的なインストール
ここでは、レッドハット9の場合のインストールについて書いてあります。このやり方は他のサイトでは見つからなくって自分で試行錯誤しました。古いリナックスの場合は、パッケージを乗せたら済むと思いますが、レッドハット9の場合は、すでにUMLの多くの部分があらかじめ乗っているので、乗せる必要があるのはたった二つのファイルをコピーするだけ。詳しくは、別記事にまとめました。
インストール済のリナックスをもらって来る
- もらって来る=ダウンロードしてくる
普通は、誰かがインストールしたリナックスをコピーしてもらってくるなんて出来ないよね。ユーザモード・リナックスの場合は誰かがインストールしたリナックスを一つのファイルとしてもらって来て使うことができる。
ボクは、デビアンを動かしてみたかったので、デビアン (Debian GNU/Linux 3.0r0)をもらって来て乗せました。これは25MBのファイル。デビアンの良いところは最小のインストールを簡単に好みの状態に汲み上げられること。これが、プロに好まれる理由の一つ。詳しくは:
を、見て下さい。3.0r0を乗せたけど、apt-get ですぐに 3.0.r1 に更新することができた。最小のインストールだったので、ほんの5MBくらいを落して来ただけだった。
解説
ユーザモード・リナックス/解説 に、解説を書いておきます。解説を読まなくても使えますが、読んでおくと理解が進むので、使いかたも変ってくると思います。- 仮想的なディスクの説明
- 仮想的なネットワークの説明
- ユーザモードリナックスはどのくらいの容量を必要とするのか?
親のファイルに触れる
- 触れる=アクセス
- 乗せる=マウント
- mkdir /mnt/host
- mount none /mnt/host -t hostfs
- mount none /mnt/host -t hostfs -o /home/setu
最小の状態で動いているユーザモード・リナックスを実用的にする
ユーザモード・リナックス/実用的な状態にする に記事をまとめてあります。 上で動かしたユーザモード・リナックスは最小の状態です。ディスクも小さく、メモリも32MB、仮想記憶も使ってません。これを実用的な設定にしてみます。- 仮想的なディスク区画を大きくする
- メモリを増やす
- 待避領域(スワップエリア)を設定
最小インストールのデビアンを実用的にする
デビアン/最小インストールのデビアンを実用的にする にまとめました。 上で乗せたデビアンは、ネットワークが使える最小の状態でサーバアプリも乗っていません。 これを、ウェブサーバに仕立てあげてみます。- 更新パッケージの適用のしかた。(apt-getの使いかた)
- 新しいソフトウエアの乗せ方。
- ssh, apache, mysql, etc
デビアンの使い方
詳細は デビアン/使いかた を見てね。
作業場所:/tmp を仮想記憶ファイルシステムにする
概要はここ 仮想記憶ファイルシステムとバインドマウントの詳細はここ
# mkdir /dev/shm/tmp # chmod 1777 /dev/shm/tmp # mount --bind /dev/shm/tmp /tmpをしてからLINUXを動かすだけ。この時点で /tmp を使っていたプログラムはそのファイルを使い続けるので問題が起きないのが、 --bind の秘密です。詳しくは上の解説を。
ボクの起動スクリプト
#!/bin/sh
# /tmp for Ram Disk (Virtual Memory Filesystem)
sudo mkdir /dev/shm/tmp
sudo chmod o+rwx /dev/shm/tmp
sudo mount --bind /dev/shm/tmp /tmp
#ROOT=Debian-3.0r0.4gb.2003-1025.ext2
#COW=Debian-3.0r0.4gb.2003-1025.ext2.diff
ROOT=Debian-3.0r0.4gb.2003-1029.ext2
COW=Debian-3.0r0.4gb.2003-1029.ext2.diff
if [ ! -f $COW ]; then
DISK=$COW,$ROOT
else
DISK=$COW
fi
# starting UML with IP 192.168.1.129 (written in disk image)
# with switch (uml_switch) -- need to start by boot-...
#linux mem=128M ubd0=$DISK ubd1=128mb.swap eth0=daemon
# with tuntap (uml_net)
linux mem=128M ubd0=$DISK ubd1=128mb.swap eth0=tuntap,,,192.168.1.100
![[メインページ]](http://now.ohah.net/upload/wiki.png)