[Momonga-devel.ja:00100] uml で Asumi errata のメンテナンス計画
- From: Kazuhiko <kazuhiko@xxxxxxxxxx>
- Date: Sun, 14 Jul 2002 22:56:24 +0900
かずひこです。
現在 HEAD のカーネルでは、uml (user mode linux) なるカーネルパッケージも
生成するようになっており、これを使うと起動中に別の linux を走らせること
ができます。早い話が「linux 専用 vmware」みたいなもので、cpu emulation
をするわけではないので、それなりに高速です。どんなものかはひとまず
$ linux
とすれば、とりあえず雰囲気「だけ」味わえます。
さて、これを用いることで、マシン一台で HEAD も Asumi errata (STABLE_2_1)
も開発することができるかな、ということで HEAD の中で Asumi を動かしてみ
ました。かなり端折って書いていますので、末尾の参考 URI をよくご覧になる
ことを強く強く薦めます。
●絶対必要なもの
たくさんのディスクスペース (Asumi 用だけで 20GB くらい欲しい)
ちゃんと動く HEAD 環境 (これをどうやって作る? というのは別の機会に)
空いている IP アドレス二つ (private address でよい。以下、192.168.1.10
と 192.168.1.11 とする)
○ないと切ないもの
たくさんのメモリ
高速な CPU
高速なネットワーク
◎手順 1 Asumi のインストール
Asumi で Custom を選んで、パッケージ選択で Everything にしてインストー
ルする。この際、パーティションは / ただ一つにする (5GB 程度必要)。ファ
イルシステムは何でもよいし、どうでもよい。もちろん既存の HEAD を壊さな
いように。grubの boot floppy をあらかじめ作っておき、それでの HEAD の
ブートを練習しておくとよい。なお、X の設定は skip してよい。ネットワー
クの設定は、HEAD で使っている IP アドレスではなく、空いているアドレス
192.168.1.11にする)
(以下、/dev/hda1 が Asumi の / で ext2 とする)
◎手順 2 Asumi の仮想ファイルシステムのファイルを作る
HEAD でブートする
まず Asumi 環境をマウントする
mkdir /tmp/asumi
sudo mount -t ext2 /dev/hda1 /tmp/asumi
仮想ファイルシステムのファイルを作る (15GB)
dd if=/dev/zero of=asumi.fs seek=15360 count=1 bs=1M
mke2fs asumi.fs
mkdir /tmp/loop
sudo mount -t ext2 -o loop asumi.fs /tmp/loop
Asumi 環境をコピーする
sudo rsync -a /tmp/asumi/ /tmp/loop/
root 権限で /tmp/loop/etc/fstab の
「/dev/hda1 / ext2 defaults 1 1」を
「/dev/ubd0 / ext2 defaults 1 1」にする。
uml 用のモジュールを展開する
sudo tar xzf /usr/lib/uml/modules.tar.gz -C /tmp/loop/
アンマウントする
sudo umount /tmp/asumi
sudo umount /tmp/loop
◎手順 3 いざ起動!
linux ubd0=asumi.fs eth0=tuntap,,,192.168.1.10 mem=128M
(差分ファイルシステムを使いたい時は
linux ubd0=diff,asumi.fs eth0=tuntap,,,192.168.1.10 mem=128M
のようにする)
なお、初回起動時の kudzu が、かなりいろいろ言ってくると思いますが、その
あたりは uml ならではということで、実際は host os のものを仮想的に使うよ
うになっているので心配いりません。いずれにしても、一般ユーザ権限で動かし
ますので、本体がむちゃくちゃなことにはならないでしょう。きっと。
[参考になる URI]
http://user-mode-linux.sourceforge.net/
http://www.atmarkit.co.jp/flinux/special/uml/uml01.html
http://www.digitalinfra.co.jp/uml/