メインページ | 最近の更新 | ページを編集 | 履歴 |

印刷用の表示

54.224.164.166 (Talk)
ログイン | ヘルプ

ユーザモード・リナックス

Oh!Ah!Now! Wombat - 自由なバザール

短い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くらいを落して来ただけだった。

解説

ユーザモード・リナックス/解説 に、解説を書いておきます。解説を読まなくても使えますが、読んでおくと理解が進むので、使いかたも変ってくると思います。

親のファイルに触れる

親のファイルに触れるための、簡単な方法が用意されている。 /mnt/host のフォルダーがあるとする。このフォルダーは空。
mkdir /mnt/host
mount none /mnt/host -t hostfs
これで、/mnt/host 以下に親のファイル/フォルダーが全部見える。ただし、linuxコマンドを走らせているユーザの権限で触れることが出来る範囲。これは、ネットワークが動いていなくてもできるので、便利だね。
mount none /mnt/host -t hostfs -o /home/setu
とかすると、/home/setu 以下だけが乗せられる。

最小の状態で動いているユーザモード・リナックスを実用的にする

ユーザモード・リナックス/実用的な状態にする に記事をまとめてあります。 上で動かしたユーザモード・リナックスは最小の状態です。ディスクも小さく、メモリも32MB、仮想記憶も使ってません。これを実用的な設定にしてみます。

最小インストールのデビアンを実用的にする

デビアン/最小インストールのデビアンを実用的にする にまとめました。 上で乗せたデビアンは、ネットワークが使える最小の状態でサーバアプリも乗っていません。 これを、ウェブサーバに仕立てあげてみます。

デビアンの使い方

詳細は デビアン/使いかた を見てね。

作業場所:/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

[メインページ]
メインページ
最近の更新
おまかせ表示
最近の出来事
ページを編集
記事の会話
履歴
リンク元
リンク元の更新
特別ページ
バグの報告