Windows7にcoLinuxをインストールする

お久しぶりです。ずいぶんと長い間更新していませんでしたが、またメモ書き程度に更新しようと思います。
使用するイメージはDebian Lennyで、coLinuxのインストールパスとディスクイメージを置くパスは違うところにしています。

coLinux及びディスクイメージをダウンロード

sourceforgeからcoLinux-0.7.6.exeとDebian-5.0r2-lenny.7zをダウンロードします。coLinuxはC:\Program Files\coLinuxに、ディスクイメージはD:\opt\colinux_imagesに置きます。配置する際はlenny.imgにリネームしました。confファイルは違うパスに置いていいか分からなかったのでcoLinuxのインストールパスに置いておきます。

ファイル配置

swap用イメージ、リサイズ用イメージの準備

sourceforgeで配布されているディスクイメージは2GBなので、色々していたらすぐいっぱいになります。なので早いところサイズ変更を行おうと思います。とりあえず10GBほど準備してみました。
swap用のイメージも一緒に準備します。今回は512MB準備します。
イメージの準備にはfsutilを使いますが、これを使うには管理者権限が必要なので管理者権限付でcmdを起動します。スタートボタンの"プログラムとファイルの検索"にcmdで検索して、出てきたものを右クリックして"管理者として実行(A)"をすればOKです。

d:
cd D:\opt\colinux_images
fsutil file createnew lenny_10gb.img 10737418240
fsutil file createnew swap.img 536870912

ただ、このままだとlenny_10gb.imgとswap.imgはAdministrator所有のものになるので、取り扱いがやや面倒。なので所有者を自分のアカウントに指定します。参考:http://www.atchfactory.com/mvt/archives/2009/10/windows7-9.html

ターゲットフォルダを右クリック→プロパティ

セキュリティ タブの中にある [詳細設定] をクリック

セキュティの詳細設定 が開くので、所有者 タブの中にある [編集] をクリック

所有者の変更 の枠内から自分のアカウントを選び、下の方にある サブコンテナーとオブジェクトの所有者を置き換える にチェックを入れて [適用]

参考にしたところではフォルダを指定していますが、今回の対象はファイルなので一番最後のサブコンテナー云々は不要です。

ファイル配置

lenny.confの編集

lenny.confを弄るには管理者権限が必要なので、管理者権限で実行したエディタで編集する必要があります。自分はGVim使っているので、管理者権限付で実行したGVimから開きました。そして以下のように編集しました。

kernel=vmlinux
cobd0="D:\opt\colinux_images\lenny.img"
cobd1="D:\opt\colinux_images\swap.img"
cobd2="D:\opt\colinux_images\lenny_10gb.img"
root=/dev/cobd0
ro
initrd=initrd.gz
mem=256
eth0=pcap-bridge,"Local Network"

cobd云々は使用するディスクイメージを使用する分だけ指定します。例えば/homeだけ別イメージにするのでしたらそれを更に増やしてください。ここで指定したcobd0などは/dev/cobd0などになるので、それをマウントすれば使えるようになります。
memにメモリを指定します。増やしたければその分増やしてください。今回は256MB指定にしました。
eth0にはネットワークの接続方法を指定します。tuntapを指定するのが定番っぽいのですが、今回はWinPcapを使ったブリッジ接続を行うのでこのような感じにしました。要WinPcap。複数のネットワークアダプタがあるので使用するアダプタ名を指定していますが、アダプタがひとつしかない場合は自動で認識してくれるらしいので指定は不要です。もし指定する際は名称はマルチバイト文字が使えないらしいので適当にリネームしてください。

coLinuxの起動

colinux-daemon.exe @lenny.conf

無事ログイン画面が表示されたら成功。rootでログインする場合、パスワードはcolinuxになっているのでログイン後にさっさと変更しておきます。

ネットワークの確認

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:ff:3c:5e:f0:00
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2ff:3cff:fe5e:f000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:124362 errors:0 dropped:0 overruns:0 frame:0
          TX packets:57939 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:147246696 (140.4 MiB)  TX bytes:4469694 (4.2 MiB)
          Interrupt:10

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

デフォルトではDHCPで取得するようになっています。IP固定にする場合なんかは /etc/network/interfaces を適当に編集します。この辺coLinuxでなくてDebianの領域なのでパス。
coLinux -> WindowsWindows -> coLinux 双方でping投げて繋がっているかを確認しておくと更に安全かと思います。

データのコピー及びswapの準備

lenny.imgの内容をlenny_10gb.imgに移動します。dd便利。参考:Free Dynamic DNS(DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, VPS | MyDNS.JP

dd if=/dev/cobd0 of=/dev/cobd2
e2fsck -f /dev/cobd2
resize2fs -p /dev/cobd2

次はswapの準備。

mkswap /dev/cobd1

そして /etc/fstab を以下のようにする。

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/cobd0      /               ext3    errors=remount-ro 0       1
/dev/cobd1      swap            swap    defaults        0       0

再度lenny.confの編集

lenny.imgの中身はlenny_10gb.imgの中に入ったのでlenny.imgは不要になりました。lenny.imgを削除してlenny_10gb.imgをlenny.imgにリネーム、cobd2の設定を削除します。これで容量10GBのディスクイメージができあがりました。

ファイル配置

サービス登録

要管理者権限。

colinux-daemon.exe @lenny.conf --install-service

[コントロールパネル] -> [システムとセキュリティ] -> [管理ツール] -> [サービス] でサービスの設定が出るので、適当にほげほげします。

これで大体準備は整ったので、あとはssh入れてputtyでつないで、adduserでユーザー作って、きゃっきゃうふふするといいと思います。