coLinuxのインストール

coLinuxが最近ずいぶん安定してきたらしいので入れてみることにした。

現在、めでたくWinXPDebian sargeがデュアルブート可能になっている。ここでcoLinux 0.6.2をインストールして、デュアルブート且つWinXPからcoLinuxとしてもDebianを利用可能という状態を目指す。

主に次の資料を参考にした。

インストール

  1. 公式サイトより、インストーラー(colinux-0.6.2.exe)を取得。

  2. TAPにてネットワークを提供する予定なので、WinPcapは不要。またファイルシステムイメージも不要。coLinux本体とTap-Win32のみをインストールする。

    インストールオプション画面
  3. インストール先は"C:\coLinux"とした。

  4. c:\coLinux\vmlinux-modules.tar.gzをDebian側に移す。方法は何でも良いが、私はFAT32パーティションを経由した。

起動設定

  1. runlevel 4をcoLinux専用のレベルとして使うことにする。/etc/rc4.d/はあらかじめ、それを想定して適当に設定しておく。とりあえず重要なのはgdmを起動しない設定にしたぐらい。

  2. 先ほどのvmlinux-modules.tar.gz内の2.6.10-co-0.6.2以下を/lib/modulesに配置。その後、update-modulesする。

  3. 再び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>
    
  4. コマンドラインから次のように起動。

    colinux-daemon.exe -c colinux-debian-sarge.xml -t nt

    以上で、一応起動に成功した。メモリの割り当てが128MBだとちょっと動作が重い。物理メモリは1GBあるので、もうちょっと割り当ててやってもWinの動作は問題ない気もする。

ネットワークの設定

coLinuxからネットワークにつなぐには、何とかしてcoLinuxからのパケットをネットワークに中継してやらなければならない。WinXP自身がルーターになるとか、いろいろ方法はあるらしいが、WinXPの場合ネットワークブリッジを作ってしまうのが簡単でパフォーマンスもよいらしい。

  1. coLinuxは起動しておく。
  2. WinXPの「ネットワーク接続」を開いて、作成されているTAP-Win32のネットワークアダプタの名前をTAPに変更。

  3. 「TAP」と「ローカルエリア接続」を選択して、右クリックメニューから「ブリッジの作成」を選択。ブリッジが作成される。

  4. うちの環境の場合、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だけインストールしておいた。