coLinux(0.8.x)のインストール [その4]

このページでは、coLinuxの動作を制御するための設定ファイルの準備と、 動作確認を行います。

設定ファイルのフォーマットはcoLinux 0.6.x系とcoLinux 0.7.x/0.8.x系では、 大きく異なっていますので注意してください。

設定ファイルの作成

ここでは、coLinuxの設定ファイルを作成することによって、 coLinuxに割り当てるメモリサイズと ディスクイメージファイルの指定します。

これらは c:\coLinuxにあるファイル example.confを ベースに作成します。 まずはexample.confをコピーしてcolinux.conf というファイルを作成しましょう。 以降ではこのファイルを編集します。

設定ファイルの詳細説明は 「coLinux 0.7.xからの変更点」 も参照してください。

メモリの割り当て

これはcolinux.confのmemの部分を編集します。 デフォルトではコメントアウトされており、 この場合はメインメモリの1/4(最低は16MB)になります。 私はメモリサイズを制限したかったので128MBにしてみました。

mem=128

ディスクの割り当て

これはcolinux.confのcobd0とcobd1の部分を編集します。 coLinuxからは、 cobdXで指定したディスクイメージをデバイスファイル (/dev/cobd0とか/dev/cobd1とか)でアクセスすることができます。

/dev/cobd0にルートディクスイメージ(root.img)を、 /dev/cobd1にスワップディスクイメージ(swap.img)を割り当てるには 以下のようにします。

cobd0=c:\coLinux\root.img
cobd1=c:\coLinux\swap.img

ブートパラメータの指定

これはcolinux.confのroの行を確認します。 この行の記述がLinuxカーネルの起動時に、パラメータとして渡されます。

これはデフォルトのままで大丈夫です。

ro

ルートデバイスの指定

これはcolinux.confのrootの行を確認します。 coLinuxはこのデバイスをルートデバイスとしてブートします。 指定するデバイス名はcoLinux上での名前ですので注意してください。

上記の様にroot.imgを/dev/cobd0に割り当てた場合は以下のようにします (これはデフォルトのままです)。

root=/dev/cobd0

初期ラムディスクの指定

これはcolinux.confのinitrdの行を確認します。

これはデフォルトのままで大丈夫です。

initrd=initrd.gz

ネットワークの設定

これはcolinux.confのeth0の部分を編集します。 デフォルトではslirpという方法が使われますが、 とりあえずtuntapを選択しておきます。 この設定では、ネットワークの接続にTAP-Win32を用います。 WinPCapを使いたい場合は修正が必要ですが、 それは次ページ以降で取り上げます。

eth0=tuntap

作成したファイル

以下が作成したcolinux.confです(コメント部分は削除しました)。

kernel=vmlinux
cobd0=c:\coLinux\root.img
cobd1=c:\coLinux\swap.img
ro
initrd=initrd.gz
root=/dev/cobd0
mem=128
eth0=tuntap

動作確認

ここまできたら設定したcoLinuxが動くかどうかの確認をしましょう。 コマンドプロンプトで以下のコマンドを入力します。

c:\>cd c:\coLinux
c:\coLinux>colinux-daemon @colinux.conf

するとウィンドウ(colinux-console)が表示され、 Linuxがブートするはずです。 ブートの様子は普通のLinuxとほとんど同じです。

Booting

ログインプロンプトが出たらユーザ名root、 パスワードrootでログインしましょう。

SMP(含HyperThreading)の人は coLinuxがうまく動かないという話もありますが、 普通の環境の人ならここまで問題なくいけると思います。

キーボードの設定が英語キーボードになっている点や、 せっかく追加したSwapディスクが設定されていないなど、 いろいろ変更しなければいけない点はありますが、 それはネットワークの設定をしたのちにcoLinuxに telnet(ssh)で接続して行いましょう。

とりあえず、 coLinuxをシャットダウンしてネットワークの設定をしましょう。

不具合対策

(この不具合はdevel-coLinux-20080113.exe, devel-coLinux-20080226.exeで遭遇しました)

さて、ブート時のメッセージを見るとeth0でなにやら問題が出ていることが 判ります。 設定ファイルでeth0を割り当てたはずですが、 eth0としてちゃんと認識されていないようです。

Linuxのカーネルの認識状況を確認してみましょう ("|"はシフトキーと「]」です)。

c:\>cat /proc/net/dev | grep eth
  eth1:     0     0     0 ...

どうも、eth1として認識されているようです。 そこで/etc/udev/rules.d/z25_persistent-net.rulesを修正します。 修正は、NAME="eth0"の行をコメントアウト(行頭に#を挿入)し、 NAME="eth1"をNAME="eth0"に変更します。 つまり、このファイルにはコメントの行(先頭が#の行)を除くと、 以下の行があるだけになります。

# PCI device 0x1a55:0x0005 (conet)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="(省略)", NAME="eth0"

こうしておけば次の起動時からeth0として認識されるようになります

終了

シャットダウンは普通のLinuxと同じで、下記コマンドを入力します。

# shutdown -h now

colinux-consoleに"System halted."が表示されたら、 colinux-consoleを閉じましょう。

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送