はちゅにっき

こっちのブログはまったり更新

coLinux をインストールする

GloMoSim をあえて coLinux 上で動かす必要もない (Windows 版を使えばいいじゃない)
って感じですが、Windows 上でローカルな Linux を使えるのは
それはそれでありがたいので、インストールすることにしました。
使用した Linuxディストリビューションはやっぱり Debian
coLinux のサイトからだと Woody のイメージしか DL できない(?)ので
etch をインストールできるようにがんばりました。
参考にしたサイトは
ERROR STORM
coLinuxでDebian etchを使う : アシアルブログ
です。多謝。
これらサイトのコピーな感じだけど、とりあえずメモ程度に書き残しとこ。

ダウンロードする

最新の Stable な coLinux は 0.6.4 だったので、それをダウンロード。
etch の netinst イメージもDLしておく。

インストールする

DL したファイルを実行し、インストールする。
今回は TAP を使うので WinPcap のチェックは外しておく。

etch の initrd.gz をいただく

DL した Debian ネットワークインストール用のイメージ「netinst.iso」を DaemonTools でマウントし
「install.386\initrd.gz」←これを coLinux をインストールしたディレクトリにお引越し

rootfs を作る

コマンドプロンプトから fsutil を用いて
root と swap のディスクイメージを作る

C:\> cd "Program Files\coLinux" # インストールしたディレクトリに移動
C:\Program Files\coLinux> fsutil file createnew root_fs.img 5368709120
C:\Program Files\coLinux> fsutil file createnew swap.img 1073741824

fsutil で指定する数値は作成するディスクイメージの容量(byte)です。
ちなみに google:5GBをbyteで と検索すると byte 換算された容量がわかるので
好きな大きさのディスクイメージを簡単に作成することができました。Google 便利。

default.colinux.xml を編集する

etch をインストールするために、設定ファイルを編集。
内容は、以下のようにしました。
ちなみに、メモリサイズを 64MB で起動したら
メモリが足りなすぎるとの警告が出たので、128MB にしました。

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <!-- 使用するデバイス群  root_fs  swap  インストール用 iso -->
    <block_device index="0" path="\DosDevices\C:\Program Files\coLinux\root_fs.img" enabled="true" />
    <block_device index="1" path="\DosDevices\C:\Program Files\coLinux\swap.img" enabled="true" />
    <block_device index="2" path="\DosDevices\C:\Program Files\coLinux\debian-etch.iso" enabled="true" />

    <!-- モジュールをロードするために、Windows の領域を共有する -->
    <cofs_device index="0" type="flat" path="\DosDevices\C:\Program Files\coLinux\" enabled="true" />

    <!-- boot device -->
    <bootparams>root=/dev/cobd0</bootparams>

    <!-- initrd (CDから引っこ抜いた initrd.gz を利用する) -->
    <initrd path="initrd.debian.gz" />

    <!-- boot image -->
    <image path="vmlinux" />

    <!-- 64 だと少ないっていわれた -->
    <memory size="128" />

    <!-- network には tap を利用 -->
    <network index="0" type="tap" />
</colinux>

編集した設定ファイルを保存します。

etch のインストール

以下のコマンドで colinux を起動すると
etch のインストール画面が表示されました。

colinux-daemon.exe -c default.colinux.xml -t nt

インストールの手順は
こちらにとても詳しく載っていたので
そちらを参考にインストールを進めました。
サイトだとIPの設定が終わると、apt の設定になるようですが
自分の環境だと、パーティショニングの設定画面になりました。
でも、ここは構わず無視し、Alt+F2を押してコンソールを切り替え、続きの作業を行いました。

設定を変更し etch を起動する

再度設定ファイルを書き換えて、etch が起動するようにして終わり。

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <!-- 使用するデバイス群  root_fs  swap -->
    <block_device index="0" path="\DosDevices\C:\Program Files\coLinux\root_fs.img" enabled="true" />
    <block_device index="1" path="\DosDevices\C:\Program Files\coLinux\swap.img" enabled="true" />

    <!-- 使うことがあるかもしれないので、Windows との共有は残しておく -->
    <cofs_device index="0" type="flat" path="\DosDevices\C:\Program Files\coLinux\" enabled="true" />
 
    <!-- boot device -->
    <bootparams>root=/dev/cobd0</bootparams>

    <!-- もとの initrd に戻しておく -->
    <initrd path="initrd.gz" />

    <!-- boot image -->
    <image path="vmlinux" />

    <!-- メモリのサイズは後で変更しよう -->
    <memory size="128" />

    <!-- network には tap を利用 -->
    <network index="0" type="tap" />
</colinux>

起動したら root でログインし、残りの設定を完了させれば
ふつーに Linux として使うことができました。

ちなみに、設定ファイルの xml には、日本語を記述できないみたいなので(UTF-8でもダメだった)
実際に起動するときは、日本語のコメントは消去して使ってます。