coLinuxが最近ずいぶん安定してきたらしいので入れてみることにした。
現在、めでたくWinXPとDebian sargeがデュアルブート可能になっている。ここでcoLinux 0.6.2をインストールして、デュアルブート且つWinXPからcoLinuxとしてもDebianを利用可能という状態を目指す。
主に次の資料を参考にした。
インストール
TAPにてネットワークを提供する予定なので、WinPcapは不要。またファイルシステムイメージも不要。coLinux本体とTap-Win32のみをインストールする。
インストール先は"C:\coLinux"とした。
c:\coLinux\vmlinux-modules.tar.gzをDebian側に移す。方法は何でも良いが、私はFAT32のパーティションを経由した。
起動設定
runlevel 4をcoLinux専用のレベルとして使うことにする。/etc/rc4.d/はあらかじめ、それを想定して適当に設定しておく。とりあえず重要なのはgdmを起動しない設定にしたぐらい。
先ほどのvmlinux-modules.tar.gz内の2.6.10-co-0.6.2以下を/lib/modulesに配置。その後、update-modulesする。
再びWinに戻ってC:\coLinuxで作業する。設定ファイルdefault.colinux.xmlをコピーして、それをベースにcolinux-debian-sarge.xmlを作成。パーティションは昨日の記事に書いた通りに切ってあるので、それに合わせるとcolinux-debian-sarge.xmlの内容はこんな感じ。Debianの単独起動時と/etc/fstabを共用できるように、ブロックデバイスに適宜aliasを作成してある。
<?xml version="1.0" encoding="UTF-8"?> <colinux> <!-- /etc/fstabが参照しているブロックデバイスを定義 --> <!-- (root) --> <block_device index="0" alias="sda7" path="\Device\Harddisk0\Partition6" enabled="true" /> <!-- (swap) --> <block_device index="1" alias="sda6" path="\Device\Harddisk0\Partition5" enabled="true" /> <!-- /home --> <block_device index="2" alias="sda8" path="\Device\Harddisk0\Partition7" enabled="true" /> <!-- original /boot --> <!-- このデバイスは不要だが、マウント失敗のメッセージが鬱陶しいので一応定義しておく。 --> <block_device index="3" alias="sda5" path="\Device\Harddisk0\Partition4" enabled="true" /> <!-- /interos --> <block_device index="4" alias="sda9" path="\Device\Harddisk0\Partition8" enabled="true" /> <!-- /media/cdrom --> <block_device index="5" alias="hda" path="\Device\Cdrom0" enabled="true" /> <!-- /media/floppy0 --> <block_device index="6" alias="fd0" path="\Device\Floppy0" enabled="true" /> <!-- bootparams allows you to pass kernel boot parameters --> <!-- ランレベルは4を使用 --> <bootparams>ro 4 root=/dev/sda7</bootparams> <!-- Initial RamDISK (initrd) support --> <initrd path="initrd.gz" /> <!-- image allows you to specify the kernel to boot --> <image path="vmlinux" /> <!-- this line allows you to specify the amount of memory available to coLinux --> <memory size="128" /> <!-- This allows you to modify networking parameters, see the README or website or wiki for more information --> <network index="0" type="tap" /> </colinux>
コマンドラインから次のように起動。
colinux-daemon.exe -c colinux-debian-sarge.xml -t nt
以上で、一応起動に成功した。メモリの割り当てが128MBだとちょっと動作が重い。物理メモリは1GBあるので、もうちょっと割り当ててやってもWinの動作は問題ない気もする。
ネットワークの設定
coLinuxからネットワークにつなぐには、何とかしてcoLinuxからのパケットをネットワークに中継してやらなければならない。WinXP自身がルーターになるとか、いろいろ方法はあるらしいが、WinXPの場合ネットワークブリッジを作ってしまうのが簡単でパフォーマンスもよいらしい。
- coLinuxは起動しておく。
WinXPの「ネットワーク接続」を開いて、作成されているTAP-Win32のネットワークアダプタの名前をTAPに変更。
「TAP」と「ローカルエリア接続」を選択して、右クリックメニューから「ブリッジの作成」を選択。ブリッジが作成される。
うちの環境の場合、DHCPを使うようになっているのでこれで設定終了。あとは今行った変更を読み込ませればおしまい。
WinXP側は、なんか初めはpingも通らなかったけれど、暫くしたらネットワークブリッジが勝手にIP等取得してつながるようになった。coLinux側は/etc/init.d/networking restartでネットワークを再初期化。
とりあえず、こんな感じ。今はcoLinuxとして起動した場合、デフォルトの2.6.10-co-0.6.2カーネルを使ってることになるのだけれど、そのままだと多少不便もあるのでそのうちカーネル再構築してみる予定。とりあえず、debianのunstableからkernel-source-2.6.10だけインストールしておいた。