coLinuxを使っているというのをmiyagawaさんのブログで見て喚起されたのでインストールしてみることにした。たしか1年ぐらい前に試そうと思って、挑んだときにはなんかめんどくさそうだったのでほっておいたんだけど…。

ということで自分なりにインストールで躓いたところなどを説明しつつインストールログを書いてみます。

ちなみにインストール環境はWindows XP SP2です。
  1. coLinuxのダウンロード
  2. http://colinux.sourceforge.net/で最新版(2005年5月時点で0.6.2)をダウンロードしてくる。ダウンロードするファイルはcoLinux-0.6.2.exeです。colinux-0.6.2.tar.gzの方はソースなのでいりませんが、自分でコンパイルしたいという方(あんまりいないと思いますが…)はこちらをどうぞ。

  3. とりあえず、インストール
  4. installer1.jpg
    まず起動するとこの画面です。普通にNextを押しましょう。

    installer2.jpg
    次はライセンスの承認画面です。GPLになっています。承認する場合にはI Agreeを押しましょう。

    installer3.jpg
    次はインストールするコンポーネントを選択する画面です。とりあえず一番上のcoLinuxは入れるとして、それ以外の3つについてですが、coLinux Virtual Ethernet Driver(TAP-Win32)はネットワークをするために必要なので選択しておきましょう。WinPcapの方は今回自分はインストールしませんでした。また、Root Filesystem image Downloadは、coLinuxから付かうLinuxディストリビューションのイメージファイルをダウンロードするかどうかです。よくわからない場合はとりあえずチェックしておきましょう。自分でイメージファイルを用意できるのであればチェックする必要はないようです。

    installer4.jpg
    次はインストールするディレクトリですが、これは特に必要がなければデフォルトでよいでしょう。

    installer5.jpg
    次は、WinPcapをインストールするのはここねーと教えてくれてますが、今回は必要ないので次にいきます。

    installer6.jpg
    最後に先程Linuxディストリビューションのイメージをダウンロードすると選択したので、Choose a distributionでどのLinuxディストリビューションをダウンロードするかを選択しましょう。自分はDebianにしました。ちなみにこれでダウンロードしたDebianはwoodyでした。Location preferenceで、どの場所からダウンロードするかを選択します。別にどれでもいいですがAsiaが近いのでAsiaにしましょう。

    あとはインストールボタンを押すだけでcoLinuxがインストールできます。

  5. 起動前の設定
  6. dir.jpg
    さて、インストールが完了すると、C:\Program Files\coLinuxのディレクトリを見てみましょう。いろいろインストールされていますが、まずはディストリビューションのイメージDebian-3.0r2.ext3-mit-backports.1gb.bz2を適当な解凍ソフトで解凍しておきましょう。

    次にdefault.colinux.xml を編集します。編集はメモ帳ではなく秀丸やサクラエディタ等LFの改行が理解できるエディタで編集しなければなりません。
    <?xml version="1.0" encoding="UTF-8"?>
    <colinux>
        <block_device index="0" path="\DosDevices\c:\Program Files\coLinux\Debi
    an-3.0r2.ext3-mit-backports.1gb"
        enabled="true" />
    
        <bootparams>root=/dev/cobd0</bootparams>
    
        <initrd path="initrd.gz" />
    
        <image path="vmlinux" />
    
        <memory size="128" />
    
        <network index="0" name="TAP" type="tap" />
    </colinux>
    
    (※コメントをなくした形で掲載しています。)
    block_deviceは、ディストリビューションのイメージのパスなどを指定します。このパスに先程解凍したディストリビューションのイメージのパスを指定してください。書き方は\DosDevices\の後にWindows上のパスを指定します。それ以外で変更する必要のあるものというと、memoryぐらいですかね。memoryは、coLinuxに割当てるメモリの量です。メモリに余裕があれば多く割当てましょう。

    編集が終ったら保存しておきましょう。

  7. とりあえず起動
  8. とりあえず起動だけしてみましょう。
    startup.jpg
    起動方法は、上図のようにDOS窓でcoLinuxをインストールしたディレクトリ(デフォルトではC:\Program Files\coLinux)に移動してから、
    C:\Program Files\coLinux>colinux-daemon.exe -c default.colinux.xml
    と打って、colinux-daemon.exeコマンドに-cオプションで先程編集をした設定ファイルを指定して起動します。実行すると下図のようにもう1つウィンドウが開きます。
    runcolinux.jpg
    これで、colinuxの起動ができました。

  9. ちょっといじってみる
  10. 先程開いたコンソールにログインプロンプトが表示されたらrootでログインをしてみましょう。パスワードはなしです。ログインができたら、いろいろいじってみましょう。でもまだネットワークに繋がりません。ネットワークに繋がらないとなにもする気がおきない…。

  11. ネットワーク設定
  12. ということでネットワークの設定をしましょう。とりあえず一番簡単だと思われる設定だと思ったTAPを使った設定について説明します。

    「コントロールパネル」→「ネットワーク接続」を開きます。インストールされたTAP(仮想的なネットワーク接続なのかな?)の名前が「TAP」以外であれば「TAP」としておきます。その後、「TAP」のプロパティを開いて、「全般」→「この接続は次の項目を使用します」→「インターネットプロトコル(TCP/IP)」を開き、下図のように固定IPを設定しましょう。今回は、IPアドレスは仮に192.168.0.1のプライベートアドレスにします。サブネットマスクは、255.255.255.0に、デフォルトゲートウェイは空で。
    tapproperties.jpg
    次に現在使用しているネットワーク接続のプロパティを開き、「詳細タブ」→「インターネット接続の共有」で下図のようにチェックを入れてホームネットワーク接続に、「TAP」を選択してOKを押します。
    networkproperties.jpg
    次にcoLinux側の設定です。先程ログインしたウィンドウにて、/etc/network/intefacesを下記のように編集します。
    追記:最初はviが普通のパスのところに入ってないのでどう編集したらいいのか考えたのですが、探したら/etc/alternatives/viここにありましたので、これを使って編集しましょう。
    auto lo eth0
    iface lo inet loopback
    iface eth0 inet static
       address 192.168.0.100
       gateway 192.168.0.1
       netmask 255.255.255.0
    addressは先程の「TAP」に設定したプライベートIPの最後のところを適当に、gatewayは先程の「TAP」に設定したIPを、netmaskは255.255.255.0に設定します。

    次に /etc/resolv.conf を下記のように編集します。
    nameserver 192.168.0.1
    編集が終ったら、下記コマンドでネットワークを再起動します。
    % /etc/init.d/networking restart
    (※「%」はプロンプトです。)

    これで、ネットワークに接続できるようになると思います。

    もし、すでに家などで192.168.0.*のネットワークを使用している場合はちょっとやっかいで、それとぶつからないように「TAP」のIPアドレスを192.168.1.1に設定して、インターネット接続の共有を有効にしたとたん、どうもWindowsがわるさをして、「TAP」のIPアドレスを自動で192.168.0.1に戻すので、その場合には共有をしてからもう一度192.168.1.1に直すという手順を踏まなければなりません。めんどくさ…。

    この他にもいくつかネットワークの設定方法があるのですが、それはすでに他の方が書かれたすばらしい説明ページをがありますので、そちらをご参照ください。

  13. 追加で便利だった設定
    • coLinuxの起動をサービスに登録
    • これは、毎回マシンを起動する毎にcoLinuxを起動するのが面倒な人にはもってこい。やりかたは簡単で、前述のcoLinuxの起動方法にオプションを付けてやるだけでWindowsのサービスに登録されます。

      登録
      C:\Program Files\coLinux>colinux-daemon.exe -c default.colinux.xml --install-service
      削除
      C:\Program Files\coLinux>colinux-daemon.exe -c default.colinux.xml --remove-service
    • ネットワーク設定をもうちょっとやる
    • 自分のマシンは、会社では有線、家では無線を使っているノートなので場所が移動する毎に「ワイヤレスネットワーク接続」か「ローカルエリア接続」で「インターネット接続の共有」を設定するのがめんどくさいかったのです。こういう人他にもいると思うのですが、いろいろ調べたところNAT接続でcoLinuxをネットに繋ぐ方法というのがあり、それを設定しておけば毎回「インターネット接続の共有」を設定しなくてもよいという素晴しい設定です。自分は下記の方法でやりました。(Windows XP SP2前提)

      netshというコマンドを使って設定をします。下記のバッチファイルを実行して「ワイヤレスネットワーク接続」と「ローカルエリア接続」の両方どちらで接続しても、WindowsマシンがNATすることによってcoLinuxがネットに繋げるようになります。
      @echo off
      
      echo NAT設定をインストール中
      netsh routing ip nat uninstall
      netsh routing ip nat install
      
      echo ルーティングを設定中
      netsh routing ip nat add interface "ワイヤレス ネットワーク接続" full
      netsh routing ip nat add interface "ローカル エリア接続" full
      netsh routing ip nat add interface "TAP" private
      
      echo dnsproxyをインストール中
      netsh routing ip dnsproxy install
      多分マシンによっては、「ワイヤレスネットワーク接続」と「ローカルエリア接続」の部分が違うかもしれませんし、数がもっと多いかもしれませんが、Windowsマシンが外へ繋げる接続のものをここに列挙しておけばよいようです。あとは、「コントロールパネル」→「管理ツール」→「サービス」で「Windows Firewall/Internet Connection Sharing (ICS)」を無効にしておきましょう。

      そして、上記のバッチをDOSで実行するだけで次回からは有線とワイヤレスどちらで接続してもすぐにネットワークに接続することができるようです。

      この方法は、colinuxのwikiページに載っていたものです。
      http://wiki.colinux.org/cgi-bin/StepByStepInXP?highlight=%28StepByStepInXP%29


  14. 所感
  15. とりあえず、apacheとかmysqlとかいろいろ普通にインストールして使えるし、Windowsからターミナルで接続したら普通にlinuxとして使えるしで、ほぼ1台のマシンで2つのOSを使えるすんばらしいものだと思います。ただネットワークの設定にはかなりてこずりますので、覚悟が必要かも…。ちょっとlinuxを知ってる人だったら、ちょっとした移動のときとかでも開発はできるし便利なんじゃないかと思います。