またまた、スナップショット(coLinux-20041024)がリリースされています。 なかなか、正式版(?)のがリリースされないですね。
今回のリリースの目玉は、Windowsのフォルダをcolinuxから直接(ネットワーク経由ではなく)読み書きできるcofsです。早速試してみましょう。
なお、slirp network daemonというのも気になりますが、こちらの方はまだ開発途上のようなので手を出しません。
|
|
リリースノートの適当訳とりあえず、リリースノートの和訳です。かなり適当なので間違っているかもしれません。 今回もスナップショットなので、変更点は0.6.2のところに追記される形になっています。 ここでは、20041007版とかぶる部分はグレーにしています。 Version 0.6.2
必要なパッケージのインストール最新のcoLinuxは2.6系列カーネルのみサポートしています。 なので、coLinux 0.6.1を使用している人は、 必要なパッケージをインストールしておきます。 既に、2.6.xベースのスナップショットを使っている人には この項は不要だと思います。 下記のコマンドで2.6系列のカーネルが要求するパッケージを調べましょう(「-s」を忘れずに)。 # apt-get update # apt-get -s install kernel-image-2.6.6-1-386 次に、上記のコマンドでインストールしようとしたパッケージ(もちろんkernelパッケージ以外)をインストールしましょう。私は、dash, cramfsprogs, initrd-tools, module-init-toolsをインストールしました。
# apt-get install dash cramfsprogs initrd-tools module-init-tools
ついでにパッケージをアップグレードしておきましょう (これは既にスナップショットを使っている人もやっておきましょう)。 # apt-get update # apt-get upgrade 以前のcoLinuxのアンインストールまず、coLinuxを動かしている人はShutdownさせましょう。 これには、coLinuxにログインしてshutdownコマンドを実行しても良いですし、 coLinuxをサービスで動かしている場合は 「コントロールパネル→管理ツール→サービス」の「Cooperative Linux」を右クリックして「停止」を選択しても良いです。 サービスで動かしている場合はコマンドプロンプトで以下のコマンドを打って、 サービスからcoLinuxを削除しておきます。
C:\coLinux>colinux-daemon --remove-service
Cooperative Linux Daemon, 0.6.2-pre4
Compiled on Thu Oct 7 13:35:51 2004
daemon: removing service 'Cooperative Linux'
daemon: service 'Cooperative Linux' removed successfully.
次に、今まで使ってた設定ファイルのバックアップを取って起きましょう。 特に、ファイル名がdefault.colinux.xmlのままの人は名前を変えておきましょう。 最後に、旧バージョンをアンインストールします。 これはコントロールパネルの「アプリケーションの追加と削除」で「coLinux」を 選択すればOKです。 coLinux 20041024のインストールcoLinux-20041024.exeを http://www.colinux.org/snapshots/からダウンロードします。 インストールしたファイルをダブルクリックするとインストーラが起動します。 ここからは0.6.1と同じなのでこちらを見てください。 必要な人は、WinPCapもインストールしておきましょう。 設定ファイルの作成自分の環境に合わせて、設定ファイルを作成しましょう。 標準でついてきたdefault.colinux.xmlと、バックアップしておいた自分の設定ワイルを比較しながら作成します(colinux-20041007から変更は不要のようです)。 私はとりあえず以下のようにしてみました(行頭の数字は説明のためのものです)。 3行目には自分のルートイメージ、 4行目にはスワップイメージ、 6行目はinitrd(起動用RAMディスクイメージ)、 7行目はカーネル、 8行目のメモリサイズです。 ルートイメージ、スワップイメージの用意できていない方は、 こっちを見て用意しましょう。 9行目はネットワークの設定です。これは以前のバージョンと一緒です。 こちらの「ネットワークの設定」を見て適切なnameを指定します。 1: <?xml version="1.0" encoding="UTF-8"?> 2: <colinux> 3: <block_device index="0" path="\DosDevices\c:\coLinux\root.img" enabled="true" /> 4: <block_device index="1" path="\DosDevices\c:\coLinux\swap.img" enabled="true" /> 5: <bootparams>root=/dev/cobd0</bootparams> 6: <initrd path="initrd.gz" /> 7: <image path="vmlinux" /> 8: <memory size="128" /> 9: <network index="0" name="Local Area Network" type="bridged" /> 10:</colinux> 動作確認coLinuxの起動はコマンドプロンプトから行います。 colinux-daemon.exeに"-c"オプションをつけて、 設定ファイルを指定する必要があります。 コマンドプロンプトで以下のコマンドを入力して、coLinuxのコンソールが起動するのを確認しましょう。 C:\Documents and Settings\scratchpad>cd c:\coLinux C:\coLinux>colinux-daemon -c my.colinux.xml 以前は、手動でモジュールを展開しておかないと、起動時にいろいろ起こられたのですが、このバージョンではinitrdがサポートされたためそんな心配はありません。 下記のように起動するはずです。
ちゃんと起動したらrootでログインして下記コマンドでcoLinuxをシャットダウンしましょう。
# shutdown -h now
コマンドラインオプションを試す次に、設定ファイルで指定した内容をコマンドラインオプションで指定して起動してみます。 なぜわざわざこんなことをするかというと後述のcofsの指定は、 いまのところコマンドラインからしかできないからです。 "-c"オプションで設定ファイルを指定すると、 その他のコマンドラインオプションを利用することができません。 従って、cofsを使う場合は、全ての設定をコマンドラインオプションで指定しなければならないのです。 (今後の主流はコマンドラインオプションなのでしょうか?) まずは私の上述の設定ファイルをコマンドラインオプションにして起動してみると次のような感じになります(長いので改行していますが、実際には1行です)。
C:\coLinux>colinux-daemon kernel=vmlinux mem=128 cobd0=root.img cobd1=swap.img root=/dev/cobd0
initrd=initrd.gz eth0=pcap-bridge,"Local Area Network"
上述の設定ファイルと比較するとどこに何を指定したらよいかわかると思います。 一つ要注意なのが、ネットワークの指定です。 これは以下のようになります。設定ファイルの<network ... />の部分(9行目)と比較してみてください。 ethX=YYY,"ZZZZ"
cofsを試すさて、とりあえず動くことを確認したら新機能であるcofsを試してみましょう。 cofsとは、coLinuxからホストPCのディスクに直接アクセスするファイルシステムです。 今までは、ホストPCで共有フォルダを作成し、それをsmbfs等を使ってマウントしていましたが、より直接的にファイルを共有できるようになるはずです。 cofsとはまず、cofsに関するドキュメントを見てみましょう。 オフィシャルなcofsのドキュメントはhttp://www.colinux.org/snapshots/からダウンロードできるcolinux-20041024.tar.gzに含まれています。 このファイルを展開してできたディレクトリのdoc/cofsがそのドキュメントです。 以下が例によって適当訳です。 かなりわかりにくいかもしれませんが、 UMLというのはUser-Mode-Linuxの略でcoLinuxのだいぶ前から開発されているLinux上でLinuxを動かす機能であることと、 coLinuxにはWindows上だけでなくLinux上で動くバージョンもあることを念頭に入れて読めば分かりやすいかもしません。 coLinuxカーネル内のcofsドライバは、 fuse-1.3ライブラリとカーネルコードに貢献している人々、すなわちMiklos Szerediの成果に基づいている。 cofsは、UMLのhostfsと同じようなものであり、ホストのVFS層とLinuxのVFS層を結びつける。 cofsを使うことによって、ホストOSのディレクトリをLinuxからマウントすることができる。 Flat mode (default)Flatモードでのマウントは、vfatやsambaでマウントしたファイルシステムと同じような動作が期待できる。 これは、通常のUNIXメタデータがサポートされず、 UNIXアトリビュート(mode, uid, gid)は全てのファイルとディレクトリで事実上同じとなることを意味する。 シンボリックやデバイスノード、パイプなどの特殊なファイルは作成できない。 UNIX meta data modecofsの将来のバージョンでは、hostfsと同様に、UNIX meta data modeを導入する予定である。 これにより、VMのUNIXメタデータを隠しファイル(?)として保存することにより、 Windows(あるいはLinux)上に真のUNIXファイルシステムを構築することができる。 理論上は、ルートファイルシステムイメージがなくても、 完全なLinuxシステムを起動することが可能となる。 Portsこのドキュメントが書かれた時点(2004年10月23日)では、cofsのホストサイドはWindows上でのみサポートされる。 計画中のLinux上へのポーティングでは、 UMLのflat mode(UNIXアトリビュート付き)のhostfsとUNIX meta data modeのhumfsに、 より似るようにデザインされる予定である。 cofsの設定(colinux-daemonのコマンドラインオプションを使用した場合)cofsXX=host-pathname XXは0から31の数字。 マウント方法mount -t cofs (cofs)XX(:path) (-o options) /mnt/point 'cofs'はデバイス名のプリフィックスでオプショナルである。 これはわかりやすくするために使用されている。 オプショナルのサフィックス':path'により、 ルートの替わりマウントする内部パスを指定することができる。 'option'はsmbfsと同じである gid: デフォルトのグループ uid: デフォルトのユーザ dmask: デフォルトのディレクトリパーミッション fmask: デフォルトのファイルパーミッション 例次のような設定を用いる。 colinux-daemon kernel=vmlinux hda1=root_fs cofs0=c:\ これはcofs0をc:\に割り当てる。 mount -t cofs 0 /mnt/windows これc:\を/mnt/windowsとしてマウントする。 mount -t cofs cofs0 -o uid=dax,gid=dax /mnt/windows これc:\を/mnt/windowsとしてマウントし、 daxに全てのファイルとディレクトリのフルアクセス権を与える。 mount -t cofs cofs0:Share -o uid=dax,gid=dax,dmask=0700,fmask=0700 /mnt/windows これc:\Shareを/mnt/windowsとしてマウントし、 daxに全てのファイルとディレクトリの排他的フルアクセス権を与える。 fstabエントリの例: cofs0:Share /mnt/windows cofs defaults 0 0 試すさて概要がわかったら試してみましょう。 ここではホストPCのc:\dataをマウントしてみることにします。 前述のようにcofsはコマンドラインオプションからしか指定できませんので、 下記のようcolinuxを起動します。
C:\coLinux>colinux-daemon kernel=vmlinux mem=128 cobd0=root.img cobd1=swap.img root=/dev/cobd0
initrd=initrd.gz eth0=pcap-bridge,"Local Area Network" cofs0=c:\
無事起動したら早速マウントしてみましょう。 coLinuxで次のように入力します。
# mount -t cofs cofs0:data /mnt
さてちょっとスピードを測ってみましょう。 適当に見つけたpostmarkというパッケージで以下のように測ってみました。 # apt-get install postmark # cd /mnt # postmark pm>run 結果は以下の様な感じです。「cofs」はcofsでマウントしたディレクトリ、 「smbfs」はsmbfsでマウントしたディレクトリ(WinPCapでのブリッジ接続)、 「ディスクイメージ」はディスクイメージ上のディレクトリ(/usr/local/test) で上記コマンドを実行した場合の測定結果です。 参考のNFSは、LAN上のファイルサーバ(Linux)のディレクトリを NFSでマウントした場合の測定結果です。 単位はKバイト/秒です。
これを見るとsmbfsよりかなり早くなってます。 WinPCapが悪いのかもしれませんがとりあえず、ホストPCとのデータのやり取りには cofsのがずっとよさそうです。 coLinuxをサービスとして利用する基本的には以前のバージョンと一緒です。 ただ、coLinxuをサービスとして起動すると、 cofsが使えない点に要注意です。 なぜならcofsを使うにはコマンドラインオプションでしか設定を行えないからです。 しかし、サービスとして登録しようとすると、'-c'オプションで設定ファイルを指定 するように怒られます。 レジストリを変更するとかいろいろ試しては見た(約5分)のですが、 サービスでの利用とcofsを両立させることはできませんでした。 今のところ、どちらかをとるしかないようです。 サービスとして利用する場合は以下の様な手順になります。 C:\Documents and Settings\scratchpad>cd c:\coLinux C:\coLinux>colinux-daemon --install-service -c my.colinux.xml 上記のコマンドを打ち込むと以下のように表示されるはずです。
C:\coLinux>colinux-daemon --install-service -c my.colinux.xml
Cooperative Linux Daemon, 0.6.2-pre4
Compiled on Thu Oct 7 13:35:51 2004
daemon: installing service 'Cooperative Linux'
daemon: service command line: "C:\coLinux\colinux-daemon.exe" --run-service "Coo
perative Linux" -d -c "my.colinux.xml"
daemon: setting restart options
daemon: service installed.
サービス設定の修正サービスの起動この状態ではサービスに登録されているだけなので、起動はしていません。 まだ、起動時に自動で起動するようになっていません。 そこで「コントロールパネル」→「管理ツール」→「サービス」からサービスの設定を変更します。「サービス」を開くとインストールされているサービス一覧が表示されますので、名前が「Cooperative Linux」となっている行を選択して右クリックでプロパティを選ぶと下のダイアログが表示されます。
このダイアログボックスの「開始ボタン」を押しましょう。 これでcoLinuxがサービスとして起動します。 サービスの状態が「開始」になるので、とりあえずcoLinuxが動いたのがわかりますが、 確認するにはtelnetやsshでネットワーク接続してみるか、 coLinuxをインストールしたフォルダにあるcolinux-console-fltk.exeかcolinux-console-net.exeをダブルクリックすることによってコンソールを表示させることができます。 サービスの自動起動無事にサービスとしてcoLinuxが動いているのが確認できたら、 Windowsの起動時にcoLinuxが自動的に起動するようにしましょう。 これは簡単で、上記のダイアログボックスのスタートアップの種類を「自動」にすればOKです。 おしまい以上で20041024への移行は完了です。 cofsという強力な機能が追加されたのですが、 設定ファイル内では指定できなかったり、 サービスでは利用できなかったりといかにも開発途上の状況です。 しかしいろいろ新機能が予定されているようで今後が楽しみです。 このバージョンでもネットワークが修正されたかチェックしたところ、 やっぱりUDPが怪しいです。 NFSをUDPでまともに動きません(WinPCap環境での話。TAP-Win32は未確認)。 小さいファイルのやり取りならできるのですが、 大きなファイルの読み書きをしようとするとダメになります。 今回もNFS over TCPならば何とか大丈夫です。 あんまり正確な測定ではないのですが、またWinPCap接続でのNFS over TCPの速度比較をしてみました。比較内容は4MBのデータのRead/Write時間です。 ちょっと後退したかもしれません。 測りなおしてみたら速くなってました。なんかNFSの具合によって変わるのでしょうか??そのうちちゃんとしたベンチマークを動かしてみたいと思います。
|
| SEO | 仕事 花 | 掲示板 レンタルサーバー プロフ SEO | |