colinuxでgentooミニマムなシステムを作る
colinux環境を再構築する用事があったので、作業過程をメモしておきます。
ミニマムな環境(Xなし、とか)を作るために、かえってめんどくさいことをしています。とはいっても、あまり特殊なことはしていませんが。
環境
- Windows XP Pro SP2
- Pentium M 1.7 GHz / 1GB RAM(うちcoLinuxは256MB)
- coLinux-0.7.1(20051013のスナップショット)
- Gentoo Linux 2005.1
準備
- 何はともあれ、coLinuxのダウンロード、ネットワーク設定(私はTAPを使いました)、すぐに起動するイメージを使って起動してみます。今回はubuntu-ja-5.04-colinux-i386を使いました。
- gentooをインストールするディスクイメージを用意します。こちらのwikiで知ったfsutilというコマンドを使って、空の巨大ファイルを用意。速い。便利。
- gentooのインストールファイルをダウンロードします。さしあたり、最新の一番手っ取り早いインストール方法(stage3)を使うつもりでこちらからダウンロードしておきます。
- 作ったファイル、ダウンロードしたファイルなどをわかりやすいところにおいて、Windows上での準備がほぼ完了。以下の設定ファイルで起動します。(for 0.7.1)*1
kernel=vmlinux # The default kernel cobd0=d:\coLinux\ubuntu-ja-5.04-colinux-i386\ubuntu-ja-5.04-colinux-i386.img cobd1=d:\coLinux\swap512M.img cobd2=d:\coLinux\gentoo\root_fs cobd3=d:\coLinux\gentoo\usr_fs cobd4=d:\coLinux\gentoo\var_fs cobd5=d:\coLinux\gentoo\home_fs initrd=initrd.gz mem=256 eth0=tuntap,"colinux_TAP" root=/dev/cobd/0
インストール先ファイルシステムの作成・マウント
- 通常通りcoLinuxが起動しまして、コンソールログインして、sudo - でroot権限を取得します。そのあたりの詳細な手順は、ubuntuのWikiを参照。
- 起動時点では、gentooインストール予定のファイルシステムのデバイスノードが存在しませんので、それを作成し、初期化します。
# cd /dev # mknod b cobdN 117 N # <- ノード作成。Nは上記設定ファイル中で示した2〜5の番号です。 # mke2fs -j /dev/cobdN # ext3でフォーマット。Nの意味は同上。
# mkdir /mnt/gentoo # mount -t ext3 /dev/cobd2 /mnt/gentoo/ # mkdir /mnt/gentoo/usr # mount -t ext3 /dev/cobd3 /mnt/gentoo/usr # mkdir /mnt/gentoo/var # mount -t ext3 /dev/cobd4 /mnt/gentoo/var # mkdir /mnt/gentoo/home # mount -t ext3 /dev/cobd5 /mnt/gentoo/home
- 以上が完了すると、df -h の出力がこんな感じになっているはずです。
$ LANG=C df -h Filesystem Size Used Avail Use% Mounted on /dev/cobd0 2.0G 1.2G 749M 61% / tmpfs 126M 0 126M 0% /dev/shm /dev/cobd2 1008M 33M 925M 4% /mnt/gentoo /dev/cobd3 5.0G 33M 4.7G 1% /mnt/gentoo/usr /dev/cobd4 1008M 33M 925M 4% /mnt/gentoo/var /dev/cobd5 2.0G 33M 1.9G 2% /mnt/gentoo/home
stage3からのインストール
- 再度、起動中のubuntuシステムにログインします。起動直後からsshが使えるようなので、sshでログイン & scpでstageファイル(stage3-i686-2005.1.tar.bz2)とportageのスナップショット(portage-20051029.tar.bz2)を転送します。
例:
# DOSプロンプト上にて > pscp c:\\stage3-i686-2005.1.tar.bz2 ubuntu@192.168.0.10: > pscp c:\\portage-20051029.tar.bz2 ubuntu@192.168.0.10:
- あとはハンドブックとほぼ同じ手順になります。
$ cd /mnt/gentoo $ sudo tar xjvf ~/stage3-i686-2005.1.tar.bz2 (延々と続く)
ということでハンドブックを参照するとよいと思います。要は、coLinuxに入れるときには、以下の流れで普通にインストールできますよ、ということでした。
- 空ファイル作成
- 設定ファイルをいじってcoLinuxハードウェア(ブロックデバイス)として認識可能にする
- デバイスノードを作ってOSからアクセス可能とする
- フォーマットしてマウントする。これでユーザから操作可能。
あとはカーネル設定も飛ばしても大丈夫。coLinux自身がカーネルを持ってますからね。
自分でカーネルビルドをしたい場合は、vanillaをベースにパッチを当てるのがいいと思います。時間があるときにでもcoLinux用パッチを当てるカーネルソースをportage化しようと思ってます。