coLinux のインストールと初期設定

colinux-01

coLinux 0.6.4 (2006/07/02 リリース) のインストールおよび初期設定についての説明です。coLinux をインストールし、ネットワークに接続できるようになるまでの設定を WWW 上の情報を元にまとめてみました。

前提

本稿では、ソフトウェアのバージョンや動作環境について、以下を前提としています。

  • Windows XP SP2
  • coLinux 0.6.4
    • ネットワークは TAP-Win32 を使用
    • ディストリビューションは Debian を使用

僕のスキルは、Unix 系 OS は 「ほどほど」 に使ったことがある、システム管理の経験は若干ある、という程度です。

ダウンロードとインストール

sourceforge から coLinux-0.6.4.exe をダウンロードし、起動してインストールを開始します。

途中、コンポーネントの選択画面では、全選択。多分、WinPcap は使わないと思いますが、とりあえず。

WinPcap もインストールしたので、「WinPcap をダウンロードしてインストールしてね」 という表示。気にしない。

ディストリビューションは Debian を選択。

TAP-Win32 Adapter(仮想 NIC)のインストール許可ダイアログ。もちろん 【続行】 を選択。

以上で完了。インストールは特に問題無し。

初回起動前の作業

インストール後、起動前に必要な作業をまとめてみました。

ファイル・システムの用意

ファイル・システムを置くディレクトリ D:\colinux\ を作成し、そこにファイルをコピーします。

  1. coLinux のインストール・ディレクトリ ((デフォルトでインストールした場合は “C:\Program Files\coLinux\” です。)) にある *.bz2 ((0.6.4 では “Debian-3.0r2.ext3-mit-backports.1gb.bz2” です。)) を解凍して D:\colinux\ にコピーして、root_fs にリネーム。
  2. coLinux のインストール・ディレクトリにある vmlinux を D:\colinux\ にコピー。

swap 領域の確保

swap 領域を確保するために、コマンド・プロンプトから以下のコマンドを実行します。ここでは 256MB を確保します。

C:\>D:
C:\>cd D:\colinux
C:\>fsutil file createnew swap_device 268435456

D:\colinux\ に swap_device という 256MB のファイルが作成されます。

面倒な場合は以下のファイルをダウンロードして解凍。

設定ファイルの編集

インストール・ディレクトリにある coLinux の設定ファイルを編集します。

default.colinux.xml の block_device 要素を以下のように編集します。

<block_device index="0" path="\DosDevices\D:\colinux\root_fs" enabled="true" />
<block_device index="1" path="\DosDevices\d:\colinux\swap_device" enabled="true" />

以上で準備完了です。コマンド・プロンプトから以下のコマンドを実行し、動作するかを確認します。

C:\>colinux-daemon.exe -c default.colinux.xml

正常にインストールできていれば、コンソール・ウィンドウ (Cooperative Linux consol) が表示され、Linux が起動します。ログイン・プロンプトが表示されたら、ユーザー名 root、パスワード root でログインします。

サービスへの登録

正常に動作することが確認できたら、サービスに登録します。コマンド・プロンプトで以下を実行します。

C:\>cd C:\Program Files\coLinux
C:\>colinux-daemon -c "C:\Program Files\coLinux\default.colinux.xml" --install-service

あとは Windows のサービス・スナップインで設定すれば、Windows の起動時に coLinux が自動的に起動するようになります。

補足 : ブルースクリーンで落ちる場合

以前、Pentium 4 搭載 PC で使っていたときに、coLinux 起動直後にブルースクリーンで落ちるということがありました。ちょっと調べてみたら、2ch の某スレで原因らしきものを発見。要約すると、

  1. Hyper Threading な Pentium 4 だと不具合が出るバージョンもあるらしい。
    • 前のバージョンや Snapshot を試してみる。
  2. SMP(対称型マルチプロセッサ)だと不具合が出るバージョンもあるらしい。
    • 環境変数 COLINUX_NO_SMP_WORKAROUND=Y を設定。
  3. データ実行防止(DEP)機能が有効だと正常動作しない。

ということだそうです。僕の場合は原因は 3. でした。対策として boot.ini に /noexecute=AlwaysOff を指定したら、正常に起動するようになりました。

現在の VAIO type T (VGN-TX91PS, Pentium M) は、/noexecute=optin になっていますが、今のところ正常に動いています。

初期設定

coLinux を使い始めるために必要な設定をまとめています。

ネットワークの設定

ネットワークの設定は、Windows XP では最も簡単だと思われる TAP-Win32 でのブリッジ接続としました。

IP アドレスの設定

coLinux 側の NIC に IP アドレスを設定するには、

  1. Windows 側で物理的な NIC と TAP-Win32 の仮想 NIC とのブリッジを作成
  2. coLinux 側で eth0 に IP アドレスを割り当て

という作業が必要です。

まず、Windows 側で、物理的な NIC と TAP-Win32 仮想 NIC のブリッジを作成します。【ネットワーク接続】 ウィンドウで、ブリッジしたい接続を複数選択し、右クリック → 【ブリッジ接続】 で作成。

次に coLinux 側で IP アドレスを設定します。最初は vi も入っていないので、とりあえず ifconfig で設定。 root でログインし以下のコマンドを実行して、IP アドレスと、デフォルト・ゲートウェイを設定します。

# ifconfig eth0 192.168.1.21
# route add default gw 192.168.1.254

確認のために、Windows 側の IP アドレス、ルータなどに PING を打って帰ってくることを確認します。

ここまでは暫定的な設定で、coLinux をリブートすると IP アドレスの設定が元に戻ってしまいます。続けて以下の設定が必要です。

DNS の設定

Windows が DNS プロキシとなるので、/etc/resolv.conf にはデフォルト・ゲートウェイのアドレスを書いておきます。

nameserver 192.168.1.254

/etc/resolv.conf は以上の 1行だけでOKです。

/etc/network/interfaces の編集

apt-get が使えるようになったので、vi をインストールして/etc/network/interfaces を編集します。

# apt-get install nvi

として vi をインストールしてから、以下のように編集。

  address 192.168.1.21
  netmask 255.255.255.0
  gateway 192.168.1.254

これでリブート後も設定した IP アドレスとなります。

/etc/hosts, /etc/hostname の編集

/etc/hosts に自分の IP アドレスとホスト名を書いておきます。僕はホスト名はデフォルトのまま colinux としました。/etc/hostname にもホスト名を書いておきます。

ついでに Windows 側の C:\WINDOWS\system32\drivers\etc\hosts にもホスト名 colinux を追加しておきます。

補足 : Windows 側 IP アドレスの設定

当たり前ですが、Windows 側の IP アドレスを DHCP で取得に設定していると、ネットワーク・ケーブルを抜いたら coLinux と通信できなくなります。デスクトップ PC などの場合は良いですが、ノート PC など、ネットワーク・ケーブルを抜いた状態で使う可能性がある場合は、固定 IP アドレスを割り当てておいたほうが無難です。

キーボードの設定

コンソールのキー配列は US 配列です。このままでも使えないことは無いのですが、パスワードの打ち間違いを防ぐためにも JIS 106 配列に変更しておきます。以下のコマンド

# dpkg-reconfigure console-data

を実行してから、【Select keymap from arch list】 → 【qwerty】 → 【Japanese】 → 【Standard】 です。

root パスワードの設定

何は無くとも passwd で設定しておきます。

タイムゾーンの設定

tzconfig コマンドで Tokyo に変更します。

apt-get の参照先の変更

なるべく近い場所に apt-get の参照先を変更しておきます。 lynx と netselect をインストールしてから最も近いミラーサイトを検索します。

# apt-get install netselect
# apt-get install lynx
# netselect -vv `lynx -dump http://www.debian.or.jp/debian-ftp-mirrors-jp`

表示された結果の中で最もスコアの良い( [ ] 内の数値が小さい)ミラーサイトの sources.list を取得して /etc/apt/sources.list と入れ替えます。僕の場合は ring.airnet.ne.jp でした。

# apt-get install wget
# wget http://www.debian.or.jp/apt/sources.list.http.ring.airnet.ne.jp
# mv /etc/apt/sources.list /etc/apt/sources.list.orig
# mv ./sources.list.http.ring.airnet.ne.jp /etc/apt/sources.list

これでパッケージの取得が早くなります。

最新環境への更新

apt-get の参照先を変更したので、早速、最新の環境に更新します。以下のコマンドを実行。

# apt-get update
# apt-get dist-upgrade

いろいろ聞かれますが全部デフォルトで。

swap の有効化

設定ファイルで指定した swap ファイル “swad_device” は、/dev/cobd1 に繋がっています。以下のコマンドを実行して swap 領域を作成します。

# mkswap /dev/cobd1

/etc/fstab に以下の 1行を追加し、swap を有効にします。

/dev/cobd1	none		swap	sw			0	0

リブートまたは swapon -a を実行した後、free で swap が有効になっていることを確認します。

ユーザーの作成

普段使うユーザーを登録しておきます。

# adduser foo

foo は適当なユーザー名を指定します。

以上で初期設定は完了です。