coLinuxで任意のディストリ/バージョンをandLinuxライクに使えるようにする!
coLinuxはWindows上で動作するLinuxカーネルで、PCエミュレータよりも軽快に、Cygwinよりもネイティブに、デュアルブートよりもシームレスにWindowsとLinuxを共存させるソフトです。
また、coLinuxをより簡単に使えるパッケージとしてandLinuxがあります。これは、coLinuxにUbuntuがインストールされたディスクイメージを使い、Xmingを用いてGUIを利用できるようにまでしたものです。
andLinuxはインストールするだけですぐに使うことができ非常に便利なのですが、ディストリビューションがUbuntu7.10以外に選べないことが難点でした。特に、7.10は今年の4月にサポートが終了してしまったので、インストール直後にアップグレードしなければaptも使えません。
また、coLinux用のイメージファイルも存在するのですが、全てのディストリビューションが存在するわけではなく、最新バージョンのリリースからかなり遅れて出ることも多いです。
そこで、どうせならイメージファイルから自分で作って好きなLinuxを入れ、andLinux程度の使用感になるまでを一気に手順化してしまおう、というのが今回のモチベーションです。
用意するもの
まず用意するものは以下の通り。
coLinux本体
Cooperative Linux
coLinuxのサイト左側の「Downloads(binary and source)」から「coLinux-stable」の最新版をダウンロードします。
Linuxのisoイメージ
任意のディストリビューションのサイトからisoイメージ(CDもしくはDVD)をダウンロードします。
ダウンロードしたイメージを置くディレクトリを決め、そこを今後作業の拠点とします。場所はどこでも構いませんが、インストール後もファイル類を動かさないで済む場所(例えば後述するcoLinuxのインストールフォルダなど)にしましょう。このディレクトリを今後「IMAGEDIR」と表記します。
QEMU
http://homepage3.nifty.com/takeda-toshiya/
サイト左側の「QEMU on Windows」から「QEMU on Windows Ver 0.10.6」をダウンロードします。
XmingとXming-fonts
Xming X Server for Windows download | SourceForge.net
サイトの「Download Now!」からXming本体をダウンロード。さらに下のほうの「Xming-fonts-(最新のバージョン)-setup.exe」をダウンロード。
各アプリケーションのインストール
必要なものが揃ったら、まずはインストールをしていきます。順番は関係が無いので好きな順でインストールしてください。
coLinuxのインストール
ごく普通にインストールしていきます。ただしイメージは自分で作成するので、「Choose Components」の画面で「RootFile system image Download」のチェックをはずします。
また、途中で「ハードウェアのインストール」の警告が出ますがそのまま続行してください。
イメージファイルの作成
ここからが気合の入れどころです。1つ1つしっかりと手順を踏みましょう。
まずコマンドプロンプトを開いてIMAGEDIRまで移動してください。
ここで、以下のようにコマンドを打ちます。
"QEMUDIR\qemu-img" create rootfs.img 5G
"QEMUDIR\qemu-img" create swap.img 256M
これで「rootfs.img」という5GBのファイルと「swap.img」という256MBのファイルが生成されるはずです。続いて次のコマンドを一行で打ちます。
"QEMUDIR\qemu" -hda rootfs.img -hdb swap.img -cdrom (CD/DVDイメージのファイル名) -net nic -net user -no-acpi -vga std -no-reboot -m 256 -L . -boot d
これでQEMU上でLinuxのインストーラが起動するので、手順に従ってインストールしていきます。
Linuxインストール上の注意
Linuxをインストールする上で、大部分は自分の好みに設定しても良いのですが、パーティションの部分だけは十分注意しなければいけません。
パーティションを設定する画面では、rootfs.imgがsdaとして、swap.imgがsdbとして見えています。
ディストリビューションによって多少違いはありますが、「ディスクの全ての部分を使う」、「sdaとsdbを使う」、「パーティションの確認/変更を行う」という方針で選択していくと、パーティションの設定をする画面になります。
ここで、論理パーティションを一切使わずに(デフォルトで設定されていたら削除してください)、sdaの全ての領域を基本パーティションにし、ファイルシステムはext3、マウントポイントは「/」(ルート)に、プライマリパーティションとして設定してください。またsdbも同様に、全ての領域で基本パーティション、ファイルシステムはswap、プライマリパーティションに設定します。
sdaのext3に関しては、ext2やext4、その他のファイルシステムでも可能かもしれません。とにかくパーティションを切らずに1つのディスクに対して1つのパーティションとなるようにします。
ここが終わればあとは自由にしても大丈夫だと思います。ただQEMUは動作が非常に遅くインストールに時間がかかるので、最小限のパッケージをインストールし、後からyumやaptで追加するのが良いかと思われます。
さて、次の作業には(本末転倒気味ですが)CygwinやLinuxが必要になります。
先程Linuxをインストールしたイメージファイルを使い、Cygwin/Linux上でrootfs.imgに対して以下のコマンドを実行します。
dd if=rootfs.img of=rootfs-colinux.img bs=512 skip=63
ここで作成された「rootfs-colinux.img」がcoLinuxで使用するファイルになります。IMAGEDIRに移動させましょう。rootfs.imgは削除してもかまいません。swap.imgはそのままで大丈夫です。
coLinuxの起動
さて、いよいよ起動です。まず以下のようなバッチファイルを作り、「boot.bat」という名前でIMAGEDIRに保存します。
set P=
set P=%P% kernel="COLINUXDIR\vmlinux"
set P=%P% initrd="COLINUXDIR\initrd.gz"
set P=%P% mem=256
set P=%P% cobd0="rootfs-colinux.img"
set P=%P% cobd1="swap.img"
set P=%P% cofs0="C:\\"
set P=%P% eth0=slirp,52:54:00:12:34:56
set P=%P% eth1=tuntap,"TAP-coLinux",00:FF:77:C6:30:00
set P=%P% root=/dev/cobd0
set P=%P% fastboot
このバッチファイルを起動してcoLinuxがログイン画面まで行ければcoLinuxの起動は成功です!ひとまず第一関門は突破しました。なお、普段使うユーザアカウントはここで早々に作っておきましょう。
coLinuxのサービスへの登録
coLinuxをWindows起動時に自動的に起動するサービスとして登録します。先程のバッチファイルの最終行を以下のように書き換えます。
"COLINUXDIR\colinux-daemon" %P% -t nt --install-service "coLinux"
これで起動をするとサービスに「coLinux」という名前のサービスが登録されます。
コントロールパネル→パフォーマンスとメンテナンス(Vistaはシステムとメンテナンス)→管理ツール→サービス
にcoLinuxという名前のサービスがあることを確認してください。ダブルクリックして「スタートアップの種類」を「自動」にすれば次回以降のWindows起動時に自動的にcoLinuxが起動します。
サービスから起動したcoLinuxにアクセスするには、coLinuxのインストールフォルダにある「colinux-console-fltk.exe」または「colinux-console-nt.exe」を使います。
cofsの設定
WindowsとcoLinuxでファイル共有するためのcofsの設定です。sambaを使って共有することも可能ですが、cofsの方が簡単なのでこちらを使います。まずマウントするディレクトリを作成します。
# mkdir /mnt/win
つぎにエディタで/etc/fstabに以下の行を追加します。
cofs0 /mnt/win cofs uid=ユーザ名 0 0
これで再起動すると/mnt/winにCドライブがマウントされます。お好みでandLinuxのように~/windowsでアクセスしたい場合は以下のようにシンボリックリンクを張ります。
$ ln -s /mnt/win ~/windows
ネットワークの設定
coLinuxのネットワーク設定は色々な方法がありますが、ここではslirpで外部ネットワークと接続し、TAPでホストWindowsにXを転送します。
Windows側の設定
スタート→接続の表示→すべての接続の表示(Vistaではコントロールパネル→ネットワークとインターネット→ネットワークと共有センター→ネットワーク接続の管理)で、「TAP-Win32 Adapter V8 (coLinux)」を「TAP-coLinux」に書き換えます。
次にTAP-coLinuxをダブルクリックし、プロパティ→インターネット プロトコル (TCP/IP)を選択→プロパティをクリックして、以下のように設定します。
次のIPアドレスを使う IPアドレス 192 168 200 1 サブネット マスク 255 255 255 0 デフォルト ゲートウェイ 次のサーバーのアドレスを使う 優先DNSサーバー 代替DNSサーバー
Linux側の設定
Linuxのネットワーク設定方法はディストリビューションに依存しますが、ルーティングが最終的に以下のようになればOKです。
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.2.0 * 255.255.255.0 U 1 0 0 eth0 192.168.200.0 * 255.255.255.0 U 1 0 0 eth1 default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
以下は設定方法の一例です。環境によって変わるので各自ifconfigなどで確認しながら設定してください。
Redhat系
まずrootでログインし、以下のコマンドを実行します。
LANG=C system-config-network-tui
Edit a device paramsを選択し、eth0を選びます。何も変更をせずにOKを選択してください。次に
Name eth1 Device eth1 Use DHCP [ ] Static IP 192.168.200.150 Netmask 255.255.255.0 Default gateway IP Primaty DNS Server Secondary DNS Server
設定をセーブし、rebootで再起動します。以上でネットワークの設定ができているはずです。yumなどを使ってみましょう。
Debian系
sudoで/etc/network/interfacesを以下のように設定します。
auto lo auto eth0 auto eth1 iface lo inet loopback iface eth1 inet static address 192.168.200.150 netmask 255.255.255.0
再起動してaptなどを試してみましょう。
Xmingの設定
XmingでWindowsにXを転送します。事前にGNOMEやKDE、XFCEなどのデスクトップ環境がインストールされていることを確認してください。
スタート→全てのプログラム→XmingからXLaunchを起動します。
- Multiple windowsを選択し、次へ
- Start a programを選択し、次へ
- Start programにターミナル名(terminal、gnome-terminalなど)を入力し、Run Remoteを以下のように設定
(*) Using PuTTY Connect to computer 192.168.200.150 Login as user ユーザ名 Password パスワード
- そのまま次へ
- Save configurationをクリックして設定を保存。推奨はしませんがInclude PuTTY Password as insecure clear textにチェックして保存するとパスワードも保存されます。
これで保存したファイルをダブルクリックするとターミナルがWindowsに転送されるようになります。
まとめ
以上で大体andLinuxと同じ構成になっていると思います。正確にはandLinuxのインストール時に、
- Do you want to enable sound for andLinux? - no
- run andLinux automatically as a NT service + use Windows shortcuts
- using CoFS (easy configuration)
- All files below this folder can be accessed from andLinux: C:\
をそれぞれ選択した形になります。また、インストールの基本的な手順はhttp://www.geocities.jp/xmlinux2004/coLinux/colinux.htmlの「coLinux 0.7.4 (20090415) 対応 インストールツール Version 2009-05-09」を参考にさせていただきました。この場を借りてお礼を申し上げます。
作業で気をつけるというか、はまりそうなところはインストール時のパーティション設定、ネットワークの設定、それからXmingでcoLinuxに接続する部分でしょうか。あとはQEMUでのインストールがかなり時間がかかるので、本を読みながら作業したりすると良いかもしれません。
coLinuxはバイナリレベルの互換性を持つLinuxがWindows上で軽快に動き使い勝手が良いという点で、VMwareやCygwinに劣らぬ選択肢のひとつになりうると思います。WindowsとLinuxの両方の環境を使いたいという方は、一度試してみてはいかがでしょうか。
参考にさせていただいたサイト
軽快なLinux環境をつくれる、coLinuxのセットアップ手順 - UNIX的なアレ
http://www.si-linux.co.jp/wiki/silinux/index.php?CoLinux%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%C6%B3%C6%FE%CA%D4
http://d.hatena.ne.jp/tetsuarossa/20070923/p1
http://d.hatena.ne.jp/perlcodesample/20090109/1230788037
QEMUを使ってubuntu serverをcoLinuxに入れてみる。 - Mattari Diary
coLinux0.7.3で、Fedora10を使う - coLinux日記
coLinuxをWindowsサービスに登録する: プログラマーになりたい!
Repse - 子羊は魚の夢を見るか? -: coLinux - cofs を利用して windows とファイルをやり取りする
どさにっき