Core2で速いPCをオフィスに置いたので、coLinux環境作ってみた。
coLinuxで快適開発環境1 の記事がとても参考になりました。
ダウンロード
http://www.colinux.org/ のDownloadから、 coLinux-0.7.1.exe を落とします。あと、下のほうに2.4系と2.6系のkernelのイメージが何個ずつか置いてあるので、好きなものをダウンロードします。僕は Debian-4.0r0-etch.ext3.1gb.bz2 をダウンロードしました。
coLinux本体のダウンロード
coLinux-0.7.1.exe を実行してインストールします。インストール先は、c:/coLinux としました。インストールする内容は、Root Filesystem image Download のチェックをはずして、あとは coLinux 内の上4つを選択すればOKで、途中TAPの警告は続行でOK。これでcoLinux本体のインストールは完了します。
Debianのインストール・設定
さきほどダウンロードしたDebianの bz2 ファイルを解答すると、Debian-4.0r0-etch.ext3.1gb というファイルがあるはずなので、これを c:/coLinux フォルダへ移動します。インストールはこれで終わりです。
次に、起動の設定を行います。c:/coLinux に start-Debian.bat のようなバッチファイルを作り、中身に以下のように記述します。mem は使用するメモリ量、cobd0 はカーネルのイメージ、codb1はスワップのイメージみたいです。最後に ネットワークの設定をするようです。 tcp:Windows側から見たポート:coLinuxのポート という形で書くようです。以下の例だと、 Windowsの 127.0.0.1 の 8022番ポートが coLinux側の 22番ポートへ向いていることになります。Webサーバ、Railsの開発環境くらいが思いついたので以下のようになってます。あと、RascutとかMySQLのポートも追加したほうが使いやすいかも。
実際は一行で書かないとだめです。
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/coLinux/Debian-4.0r0-etch.ext3.1gb" cobd1="C:/coLinux/swap.img" root=/dev/cobd0 eth0=slirp,,tcp:5901:5900/tcp:8022:22/tcp:8080:80/tcp:13000:3000 ro
起動
先ほど作った start-Debian.bat から起動します。初回起動時は、user: root / password : root がデフォルトで設定されています。起動したときからネットワークにつながっていますが、ping はつながらないので疎通テストで ping を打っても何も帰ってきませんので、wget でテキトーなURLたたいてみるとわかるかも。
Windows側からputtyなどでつなぐ場合は、SSHサーバが起動しているとして start-Debian.bat で設定した SSHのポートへ向けたWindows側のポートにつなぎに行けばOKです。上の例だと tcp:8022:22 としているので、coLinux側で22番でSSHサーバを立ち上げておけば、Windowsからputty等で 127.0.0.1 の 8022番ポートでつながります。
coLinuxからWindowsのフォルダをマウント
sambaでつなぎにいきます。たぶんこれだけでいけたはず。
# apt-get install smbclient smbfs
適当にマウントポイント作ります。
$ mkdir /home/chihaya/windows $ mountpoint -d /home/chihaya/windows
Windows側で共有フォルダを作成します。フォルダ名はなんでもいいです、共有名が参照される名前になります。ここでは Windows側に linux_share という共有フォルダを作っておきます。IPアドレスは 192.168.1.10 だったと仮定して進めます。
coLinux側からlinux_shareフォルダをマウントします。ファイルシステムは smbfs になります。
# mount -t smbfs //192.168.1.10/linux_share /home/chihaya/windows -o username=chihaya,password=mypass
エラーメッセージが出なければマウントされているはずです。ためしに、Windows側で linux_shareフォルダにファイルを作って、ls /home/chihaya/windows とすれば、見れているはずです。無事マウントできることを確認したら、 起動時に常にマウントされるように /etc/fstab に書いておきます。一番下に、以下の行を追加します。
//192.168.1.10/linux_share /home/chihaya/windows smbfs rw,username=chihaya,password=mypass 0 0
ちなみに、NFSについてはNFSでネットワーク越しにマウント とかで詳しく。
容量を増やす
作業していたら、セッションのファイルを作る空き容量がないとか言われた…。見てみると、デフォルトでは1GBしか容量が確保されていないので、すぐいっぱいになってしまう。
http://clouder.jp/yoshiki/mt/archives/000406.htmlの記事を参考にして容量9.4GBにしたよ。
Windows側のコマンドプロンプトで、以下の操作をする。(c:\coLinux は coLinux のインストールディレクトリ)
C:\coLinux>fsutil file createnew disk10gb.img 10000000000
これで、100… バイトのイメージが出来る。これをcoLinux側から ext3 でフォーマットする。
上の方で作ったバッチファイルに、以下を追加。codb1=… の直後で。
cobd2="C:/coLinux/disk10gb.img"
これで coLinux を再起動します。すると、/dev/cobd2 にさきほどのイメージがあるはずなので、これをフォーマットします。その後、現在のルート直下の内容をコピーします。
# mkfs.ext3 /dev/cobd2
# mkdir /mnt2
# mount -t ext2 /dev/cobd1 /mnt2
# cd /
# tar cpf - ls -1 | grep -v proc | grep -v mnt2
| (cd /mnt2; tar xpf -)
# mkdir /mnt2/proc
あとは、coLinux起動時のパラメータを変えてバッチを作ります。
実際は一行で書かないとだめです。
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/coLinux/disk10gb.img" cobd1="C:/coLinux/swap.img" root=/dev/cobd0 eth0=slirp,,tcp:5901:5900/tcp:8022:22/tcp:8080:80/tcp:13000:3000 ro
これで設定は終わり。共有フォルダでコード書いてれば、書いたり調べたりはWindowsで行って、実行はlinuxみたいな感じで使える。Linuxじゃないと環境作るのが難しいものがあったりするから、そういうので有効に使っていけるといいね。