LANDISK HACKING DIARY
Since2005/8/17
TOPへ戻る

   INDEX
 
1. coLinux のインストール
2. インストール後の環境設定
3. バッチファイルの作成
4. 各種初期設定(apt,timezone,keyboard など)
5. トラブルシューティング
6. サービスとしてcoLinux を稼動させる




 
   coLinux のインストール(for Win2K-WinPcap)

 

 


さてさて、これだけ毎日といってもいいぐらい日記を更新し、調べ物をしていると嫌でも目に入ってくる coLinux の文字。新しいものを勉強し始めるのにはなにかときっかけが必要なので見て見ないフリをしてきましたが、LANDISK の改造(というほどのことはしていないが)もそこそこ波に乗ってきて安定してきたので、ここで coLinux でもインストールしてみようかなということになった。以前…といってももう3年ぐらい前になるだろうか、Cygwinなるものをインストールしたことはあるのだが、よくわからずに挫折した記憶がある。だが、あの頃はLinuxなんてまるで知らなかったので当然といえば当然かもしれない。coLinux はゲストOSとして、debian と Gentto が使えるようで、debian が使えるのならやってみようかなという気になった。それでは、くだらない前置きはこのぐらいにしてインストールを始めてみる。

前提条件として、Windows 2000 にインストールする。 インストール方法を画像を使ってペタペタやろうとしたが、既にそういうサイト様(Cooperative Linux(coLinux)のメモ)があるのでそちらを参照してもらった方がいいと思います。それじゃ、ここではなにを説明するんだってことになりますが、あくまで筆者の備忘録として綴っていきます。

 1.「Next」→「I Agree」
 2.「coLinux」「coLinux Bridged Ethernet(WinPcap)
   「Root Filesystem image Download」の3つにチェックして、「Next」
   ※WinXPなら「coLinux Virtual Ethernet Driver(TAP-WIN32)」によるブリッジ接続がお勧め。
 3.インストール場所に、「G:\coLinux」(デフォルトでも1GB あるので容量の多いドライブを選択)。
 4.インストールOSに「Debian」を選択。インストール場所に「Asia」を選択。
 5.「FINISH」
 6. WinPcap のサイトへいって、WinPcap をダウンロード後、インストールする

 
     インストール後の環境設定
   
起動する前に基本的な準備をしておく。まず、ダウンロードしたDebian-3.0r2.ext3-mit-backports.1gb.bz2 を解凍しておく必要がある。ここでは、Cygwin などはインストールしていないのでLANDISK上で解凍することにする。解凍してできた、Debian-3.0r2.ext3-mit-backports.1gb を coLinux 内に入れておく。

landisk~# bzip2 -d Debian-3.0r2.ext3-mit-backports.1gb.bz2

次に、g:\coLinux 内にある「default.colinux.xml」を編集する。秀丸やTeraPad などのエディタが必要になる。ファイルを開くといろいろ長々と書かれているが、ほとんどがコメント部分です。今後読む予定のない方は消してしまっても構わないでしょう(笑)。WinPcap を使用するので、最下行の<network 〜/>を以下のように編集しておきます。また、1行目〜2行目の coLinux のPATHも環境に合わせて変更しておく。mac アドレスに関しては、搭載されているホストアダプタと同じにならないように微妙に変更しておきます。

◎WinPCAP 用
<block_device index="0" path="\DosDevices\g:\coLinux\Debian-3.0r2.ext3-mit-backports.1gb" enabled="true" />
<block_device index="1" path="\DosDevices\g:\coLinux\swap_device" enabled="true" />
<bootparams>root=/dev/cobd0</bootparams>
<initrd path="initrd.gz" />
<image path="vmlinux" />
<memory size="256" />
<!--<network index="0" type="tap" />-->
<network index="0" name="PLANEX GN-1200TC Gigabit LAN Adapter" mac="00:90:CC:74:84:6D" type="bridged" />
※後述しますが、 coLinux 0.6.2 の場合、最下行の name="〜" の値は上記で記した方法では無理です

上記の2行目で指定しているswap デバイスはまだ作成されていないので、LANDISKで以下のコマンドを実行して作成しておく。上記で memory size を256MBに設定したのでその倍ぐらいの512MBぐらいがちょうどいいでしょう。

landisk~# dd if=/dev/zero of=swap_device bs=1M count=512


■coLinux の起動

編集し終えたら、coLinux を起動する。コマンドプロンプトから以下のコマンドラインを打ち込む。もし、起動に失敗したら、WinPcap がインストールされているかどうかも確認すること。

G:\coLinux>colinux-daemon.exe -c default.colinux.xml



正常に起動し、colinux login と現れたら、ユーザ「root」パスワード「root」でログインする。そして、同時に気づいたが、この「Cooperataive Linux Console」、コピペができないぞ…?まさか手打ちさせる気か?あとでじっくり調べてみよう…。

■ネットワークの設定

なにはともあれ、ここから始めないことにはなにもできない。まずは、IPアドレスを割り当てるところから。と、思って編集しようと思ったが、vi がインストールされていない…。 vi しか使ったことのない筆者には「は?どうするんだよ?」という感じだったが、冷静に考えてみたら過去に、nano というのに少しだけ触れてみたことがあるのを思い出した。そして、nano を起動してみるとどうやらデフォルトでインストールされているようだ。普通なら、こういうエディタのほうが使いやすいのだろうが、vi になれてしまうと使いづらいことこの上ない。

おや・・・?どうやらキーボード配置も英語キーボードになっているみたいですね。コンソールのコピペもできないし、これじゃ説明するのも面倒くさい。で、ちょっと調べてみました。どうやら、「Cooperataive Linux Console」を閉じて、「colinux-console-nt.exe」を起動するだけです。「え?このまま閉じていいの?」という声が聴こえてきそうですが大丈夫です。但し、間違えてDOS窓の方を終了しないように。とりあえず、先にIPアドレスを…。

# nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 172.16.50.20
netmask 255.255.255.224
gateway 172.16.50.1
broadcast 172.16.50.31

# /etc/init.d/networking restart
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:FF:6B:C3:25:60
inet addr:172.16.50.20 Bcast:172.16.255.255 Mask:255.255.255.224
以下略…

resolv.conf の編集。

# nano /etc/resolv.conf
search kororo.jp
nameserver 172.16.50.2
nameserver 172.16.50.30
nameserver 172.16.50.4

/etc/hosts の編集。岡本真夜が好きなので、mayo という名前に。

# nano /etc/hosts
172.16.50.20 mayo

hostname の変更。

# echo "mayo" > /etc/hostname

modules.conf に IPv6 を使わないように指定する。

# nano /etc/modules.conf
alias ipv6 off

■ping が飛ばない!?

ここまでやれば、問題なかったはず…はずなのだ。しかし、外部どころか、内側にさえ ping が飛ばない。なぜ?1時間ぐらい悩んだあげく…0.6.2 から default.colinux.xml の記述方法が変わったとか…。先ほど、<network index="0" name="PLANEX GN-1200TC Gigabit LAN Adapter" type="bridged" /> のようにしていたが、これは、「マイネットワーク」を右クリして「プロパティ」、「GigaEther(普通の人はローカルエリア接続となっているところ)」をダブルクリックしたところの「構成」の上に表示されている名前をコピペしたものだ。しかし、0.6.2 からは、通常は「ローカルエリア接続」となっているところの名前を name の値に指定してあげる必要がある。よって、以下のように名前を変更したら問題なく ping がとおるじゃーん。こういう大事な事は、他のサイトもすぐに修正しておいてもらいたいですね(笑)。まぁ、書いたらほうったらかしにする自分も人の事はとやかくいえませんが。

<network index="0" name="GigaEhter" type="bridged" />

なお、ここの name がおかしいのではないかということに気づいたのは、DOS窓に表示されていたエラーメッセージである。3行目を見ていただければわかると思うが、なぜか、「GigaEther」(普通の人は「ローカルエリア接続」となっているところ)をチェックしているのだ。name で指定しているはずなのに、ここをチェックしていること自体おかしいとおもったのだ。

Looking for interface "PLANEX GN-1200TC Gigabit LAN Adapter"
Adapter Generic dialup adapter doesn't have a connection
Checking connection: GigaEther
No matching adapter
Error initializing winPCap

終了する際は、

# shutdown -h now



 
     バッチファイルの作成
   
次に、coLinux を自動起動させるためのバッチファイルを作成する。コマンドプロンプトを起動して、起動コマンドを打ち込んで、さらに 「Cooperataive Linux Console」から「colinux-console-nt.exe」に切り替える作業なんていちいちやってたら coLinux が嫌いになってしまいそうなので。以下のようなバッチファイルを作成し、ダブルクリックするだけで一連の作業を実行させます。

◎colinux-W2K.bat

@ECHO OFF
g:
cd \colinux
colinux-daemon.exe -c default.colinux.xml -t nt
CLS
EXIT



 
     各種初期設定
   
ここまでこれれば、もう後は普通の debian です(たぶん)。apt-get ができるように、sources.list を編集していきます。

# nano /etc/apt/sources.list

deb http://www.t.ring.gr.jp/pub/linux/debian/debian stable main contrib non-free
deb http://www.t.ring.gr.jp/pub/linux/debian/debian-jp stable-jp main contrib non-free
deb http://www.t.ring.gr.jp/pub/linux/debian/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free

# apt-get update
# apt-get upgrade

vim をインストール。あーすっきりした。nano 使いづらかった…。

# apt-get install vim

Timezone を変更しておく。Asia/Tokyo を選択する。

mayo:~# tzconfig
Your current time zone is set to US/Eastern
Do you want to change that? [n]:y

日本語キーボードが使えるようにする。あ〜すっきりした。これでパイプ「| 」が打てるよ〜(嬉)←英語キーボードだとどこにあるのか探すのがめんどかった。

mayo:~# apt-get install console-data console-tools

あるいは、

mayo:~# apt-get install console-data console-common

mayo:~# dpkg-reconfigure console-data
1. 「OK」で[ ENTER ]
2. 「 Select keymap from arch list」で [ ENTER ]
3. 「qwerty」(キーボードの並び)を選択。
4. 「Japanese」を選択。
5. 「 Standard」を選択。
jp106
Loading /etc/console/boottime.kmap.gz

さてさて、もう少しの辛抱。ロケールをUTF-8 にする。

mayo:~# apt-get install locales

runlevel がデフォルトで2 になっているので 3 に変更。

mayo:~# vi /etc/inittab
id:3:initdefault:

最後に、SSHのインストール。あえてインストール法は説明しませんが、ここまで終えてしまえば、あとは「Cooperataive Linux Console」とかいうわけのわからないコンソールから逃れられます。普段使っているTeraTerm なり、PuTTY なり使用してください。

mayo:~# apt-get install ssh
mayo:~$ su kororo
mayo:~# ssh-keygen -t rsa



 
     トラブルシューティング
   
WinCAP を使った方法で最初はうまくいっていたのですが、ある日突然、ネットに接続することができなくなりました。それが、coLinux だけではなく、Windows2000 までもが同時に接続できなくなる現象に悩まされました。一度、再起動しないとネットには接続できなくなり、不快指数が最高潮に達しました。試しに、Ping をローカルマシンに対して打ってみると「Hardware Error」と表示されいていたので、IRQ関係でなにか競合しているのかと思っていた。筆者の場合は、NICが3枚もささっているので(そんなに挿すなよ…)それが原因なのかな〜と思って2枚を取り除いたところ、無事に動作しました。しかし、それでも根本的な解決には至らず、1枚挿しなおしたらまた接続できなくなるといった状況が続きました。で、ようやく解決方法を見つけました。といっても完全に解決したわけではありませんが。またいつ接続できなくなるかもわからない恐怖はありますが、今のところこれで安定動作するようになりました。

 グ貪戞NICのドライバを「デバイスマネージャ」から削除する
◆ズ禿戞NICのドライバをインストールする(一旦、削除すると「ローカルエリア接続」に名前が戻ってしまうのでcoLinux 用の名前に変更しておく)

この作業をやると、coLinux も無事にインターネットに接続できるようになりました。しかし、NICを再び挿せば、インターネットに接続できなくなりました(^_^;)。けれども、同様の操作を行うことで再びインターネットに接続できるようになりました。PCI に何か追加するときまではとりあえずこれで安心かな…。おそらく、このような症状に悩まされているのは筆者ぐらいかと思いますが、同じ症状の方がいれば試してみるといいかもしれません。なお、もう1台のWin2K はこのような作業をやらなくとも正常に稼動しています。マシン固有の問題というのもあるかもしれません。


 
     サービスとしてcoLinux を稼動させる
   
Windows の起動時、終了時に自動的に起動・停止するようにしておきます。こうすれば、coLinux を終了させずにWindows を終了してしまうというミスがなくなります(筆者も何度もやりました(^_^;) サービスに追加するには、コマンドプロンプトをたちあげ、以下のコマンドを入力します。

G:\coLinux>colinux-daemon.exe -c g:\coLinux\default.colinux.xml --install-service

これで、Windows 上のサービスに登録されましたが、自動的に起動するようにはなっていないので、「マイコンピュータ」を右クリして「管理」→「サービスとアプリケーション」→「サービス」→「Cooperative Linux」をダブルクリック。「スタートアップの種類」を「自動」に設定しておきます。



     参考文献
   
⇒Cooperative Linux(coLinux)のメモ





TOPへ戻る
 
Copyright © KORO All Rights Reserved.