coLinux-0.6.1へのアップグレード

ようやく、coLinux-0.6.1がリリースされました。 前回のリリース(0.6.0)から約二ヶ月ぶりです。

スナップショットはたびたびでていましたが、 ようや0.6.0から卒業することにしました。

ポータブルBluetoothスピーカー

リリースノートの適当訳

とりあえず、リリースノートの和訳です。かなり適当なので間違っているかもしれません。

Release Name: 0.6.1-2.4.26

Notes:

coLinuxのこのバージョンは、0.6.0に対するいくつかのバグフィックスと、daemonのインターフェースの変更、TAPドライバの最新バージョンへのアップグレード、Linux port(これはカーネルモジュールを必要とするので、バイナリとしては配布されません)を提供します。

0.6.0以前のバージョンからのアップグレード:

インストールを開始する前に、古いバージョンを「アプリケーションの追加と削除」で削除することをお勧めします。

TAPドライバの完全なアップグレードのために、インストール後のリブートが必要な点に注意してください。新しいバージョンは、古いTAPドライバでは動作しません。OpenVPNとcoLinuxは同じバージョンのTAPドライバで動作するようになります。

更に、設定ファイル内のネットワークエレメントのname属性は、コントロールパネルの「ネットワークとダイアルアップ接続」に表示されるTAPアダプタ名と比較されます。従って、name属性を使用するTAPドライバの名前と一致するようにするか、name属性を削除する必要があります。削除した場合は、最初に検出されたTAPデバイスが使用されます。

coLinux Daemonはコマンドラインスイッチ’-c’が必須となり、デフォルトのdefault.colinux.xmlを使用しなくなりました。default.colinux.xmlを別の名前にコピーして、’-c’スイッチを使用するようにしなければいけません。

Changes:

Version 0.6.1
  • 複数の仮想ネットワークカードをサポート(eth1, eth2, etc…)。
  • 小さなバグフィックス。
  • LinuxマシンにCtrl-Alt-Delを送信する機能を追加した。
  • Linuxパッチを2.4.26向けにアップグレード。
  • Linux port (カーネル2.6.xを動作させるシステム向け)。
  • swapoff()で発生する可能性のあるクラッシュを修正。
  • Initmemは開放されるようになった(‘missing implementation’がなくなった)。
  • cobdブロックデバイスの数が32に増加した。
  • SMPでの安定性問題が解決するまで、daemonプロセスを1番目のCPUに固定するようにした。
  • gettimeofday()で時間が昔に戻ることがなくなった。
  • 1個以上のcoLinuxを動作させることができるようになった。
  • ユーザ空間から全てのI/Oポートアクセスが禁止された: ゲストLinuxがホストのクロックが変更することができなくなり、これによりXを動作させようとした場合のクラッシュがフィックスされた。
  • Windows:
    • rawパーティションデバイスのサイズが正しく認識されるようになった。これによりreiserfsの問題が解決されるはず。更に、cat /dev/cobd*が 正常に動くようになる。
    • ホストマシンのサスペンションが、メモリリークのようなcolinux-daemonの問題を引き起こさなくなった。
    • daemonをサービスとしてインストール可能になった(Jaroslaw Kowalski).サービスを停止するとLinux VMを正常に終了させるためにCtrl-Alt-Delが送信される。
    • daemonが動作とは別に(?)linux.sysドライバをインストールできるようになった。これにより、インストールされたドライバにアクセスできる全てのユーザでcoLinuxを実行できるようになった(Daniel R. Slater)。
    • coLinuxはMingW32でビルドされるようになり、cygwin1.dllが不要になった。
    • LinuxでのMingW32クロスコンパイラをビルドするためのスクリプトを追加した。更に、coLinuxが依存しているライブラリをダウンロードしコンパイルしてインストールするスクリプトも追加した。
    • 使用するTAPドライバの名前をXMLのname属性で指定できるようになった。注意: 名前は「ネットワークとダイアルアップ接続接続」に表示される文字列(例えば"ローカルエリア接続")と一致していなければならず、Windowsにより割り当てられるデバイス名(例えば"TAP-Win32 Adapter")ではない。
    • ドライバはカレントディレクトリからではなく、daemonがインストールされているディレクトリからインストールされるようになった。
  • Linux port:
    • daemonにSIGHUPを送信すると、Linux VMでCtrl-Alt-Delが発生するようになった。
  • Consoles:
    • クリア処理でのバグを修正: 正しい制御文字でクリア処理を行うので、ncursesアプリケーションが正常に動くようになる。
    • 仮想コンソールの切り替え(alt-f1, alt-f2, etc.)を修正。これによりスクリーンの保存/復元が正しく行われる。
    • FLTK: カーソルが見えるようになった。
    • キーボードフォーカスがコンソールから外れてしまった場合は、VM内で何かキーを押すと開放される(?)。

coLinux 0.6.0のアンインストール

まずはじめに、今まで使ってた設定ファイルのバックアップを取って起きましょう。特に、ファイル名がdefault.colinux.xmlのままの人は名前を変えておきましょう。

次に、0.6.1のリリースノートに従って旧バージョンをアンインストールします。これはコントロールパネルの「アプリケーションの追加と削除」で「coLinux」を選択すればOKです。

coLinux 0.6.1のインストール

まずブツをhttp://sourceforge.net/projects/colinux/files/からダウンロードします。ダウンロードするファイル名はcoLinux-0.6.1.exeです。

インストールを開始するにはダウンロードしたcoLinux-0.6.1.exeをダブルクリックしましょう。最初は当然Nextボタンです。

installer-0.6.1-1

つぎは、ライセンスの確認です。ライセンスはGPL2 (GNU Public License Version 2)です。いろいろ書いてありますが、ポイントは無保証というところです。coLinuxを使って何かトラブルが起きても誰も責任をとってくれません。覚悟ができたらI Agreeボタンを押します。

installer-0.6.1-2

つぎは、インストールするコンポーネントの選択です。0.6.0と比較するとcygwin.dllがなくなって、「Root Filesystem image Download」というのが新しくできています。とりあえず私は全部選択しておきました。2番目と3番目のコンポーネントについてはこちらに簡単な説明が書いてあります。

installer-0.6.1-3

ここではcoLinuxをインストールする場所を選びます。私はc:\coLinuxとしておきました。

installer-0.6.1-4

次にWinPCAPに付いてのメッセージが表示されれます。要するにWinPCAPをダウンロードしてインストールしてくれということです。http://www.winpcap.org/からWinPcap 3.1 beta 3をダウンロードしましょう。ダウンロードするのはWinPcap auto-installerというリンクです。

installer-0.6.1-5

ここでは、coLinuxで使用するルートイメージがダウンロードすることができます。私は0.6.0で使用していたルートイメージがあるので、「No download」を選択しました。まだルートイメージをダウンロードしていない人はここで選ぶと良いでしょう。(ルートイメージとはcoLinuxで使用する仮想ハードディスクのようなものです)

Installを押すとファイルのコピーが始まります。

installer-0.6.1-6

下の画面が出れば完了です。Finishボタンを押してインストーラを終了しましょう。

installer-0.6.1-7

WinPCapのインストール

WinPCapをダウンロードした場合は、ここでインストールしておきましょう。なぜなら、WinPCapをインストールするとリブートを要求されるからです。インストールはダウンロードしたファイルをダブルクリックするだけでOKです。

リブート

WinPCapをインストールしない人(ネットワーク接続にTAP-Win32を使う人)も、ここでリブートしておきましょう。

設定ファイルの修正と動作確認

さて、とりあえず動くかどうか確認しましょう。標準でついてきたdefault.colinux.xmlをmy.colinux.xmlにコピーして自分の環境に合わせて変更しましょう。

私はとりあえず以下のようにしてみました(行頭の数字は説明のためのものです)。変更したところは、3行目には自分のルートイメージ、4行目にはスワップイメージ、7行目のメモリサイズです。ルートイメージ、スワップイメージの用意できていない方は、こっちを見て用意しましょう。

< ?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\c:\coLinux\root.img" enabled="true"></block_device>
    <block_device index="1" path="\DosDevices\c:\coLinux\swap.img" enabled="true"></block_device>
    <bootparams>root=/dev/cobd0</bootparams>
    <image path="vmlinux"></image>
    <memory size="128"></memory>
    <network index="0" type="tap"></network>
</colinux>

設定ファイルの修正と動作確認

coLinuxの起動はコマンドプロンプトから行います。0.6.0まではデフォルトでdefault.colinux.xmlを読み込んでくれたので、default.colinux.xmlを編集してcolinux-daemon.exeをダブルクリックすればよかったのですが、0.6.1では設定ファイルを指定する必要があります。

コマンドプロンプトで以下のコマンドを入力して、coLinuxのコンソールが起動するのを確認しましょう。

C:\Documents and Settings\scratchpad>cd c:\coLinux
C:\coLinux>colinux-daemon -c my.colinux.xml

ルートイメージが0.6.0の人は、kernel 2.4.26用のモジュールがない怒られると思いますが、下記のように起動するはずです。

console-0.6.1

ちゃんと起動したらrootでログインして下記コマンドでcoLinuxをシャットダウンしましょう。

# shutdown -h now

ネットワークの設定

これは0.6.0とはあまり変わらないようです。こちらを見て設定しましょう。

ただし、TAP-Win32を使う場合は、設定ファイルのnetworkの項目でname属性は要らないようです。これをつけてしまうとネットワークがつかえなくなります。忘れずに取り去っておきましょう(本当はname属性には「ネットワークとダイアルアップの接続」での名前を指定するようですが、なくても動くようです)。

Linuxモジュールの追加

coLinux起動時に表示される「モジュールがない」という警告ですが、これはcoLinuxをインストールしたフォルダにあるvmlinux-modules.tar.gzをcoLinux内で展開すれば消えます。

これもやることは0.6.0と変わりません。こちらのページの一番下の項を見てください。

coLinuxをサービスとして利用する

0.6.0→0.6.1での最大の変更点はこれかもしれません。サービスとしてcoLinuxを起動すると、以下の利点があります。

  • Host PCの起動時に自動的にcoLinuxが立ち上がる
  • Host PCの終了時に自動的にcoLinuxが終了する

一見、なんてことのないメリットですが、私はcoLinuxを終了する前にWindowsを終了してしまってヤバイと思ったことが何度かありました。幸いディスクイメージは破壊されませんでしたが、自動的に終了するというのは精神衛生上よさそうです。

サービスの登録

さて、設定の仕方です。まずはcoLinuxをサービスとして登録しないといけません。

これもコマンドプロンプトから行います。以下のコマンドを打ち込みましょう。設定ファイルの指定がフルパスになっている点に注意してください(振るパスでなくてもいいかもしれませんが、念のため)。

C:\Documents and Settings\scratchpad>cd c:\coLinux
C:\coLinux>colinux-daemon -c c:\coLinux\my.colinux.xml --install-service

上記のコマンドを打ち込むと以下のように表示されるはずです。

C:\coLinux>colinux-daemon -c c:\coLinux\my.colinux.xml --install-service
Cooperative Linux Daemon, 0.6.1
Compiled on Sat May 29 16:20:11 2004

daemon: installing service 'Cooperative Linux'
daemon: service command line: "C:\coLinux\colinux-daemon.exe" --run-service "Coo
perative Linux" -d -c "c:\coLinux\my.colinux.xml"
daemon: setting restart options
daemon: service installed.

サービスの起動

この状態ではサービスに登録されているだけなので、起動はしていません。まだ、起動時に自動で起動するようになっていません。

そこで「コントロールパネル」→「管理ツール」→「サービス」からサービスの設定を変更します。「サービス」を開くとインストールされているサービス一覧が表示されますので、名前が「Cooperative Linux」となっている行を選択して右クリックでプロパティを選ぶと下のダイアログが表示されます。

service-0.6.1

このダイアログボックスの「開始ボタン」を押しましょう。これでcoLinuxがサービスとして起動します。

サービスの状態が「開始」になるので、とりあえずcoLinuxが動いたのがわかりますが、確認するにはtelnetやsshでネットワーク接続してみるか、coLinuxをインストールしたフォルダにあるcolinux-console-fltk.exeかcolinux-console-net.exeをダブルクリックすることによってコンソールを表示させることができます。

サービスの自動起動

無事にサービスとしてcoLinuxが動いているのが確認できたら、Windowsの起動時にcoLinuxが自動的に起動するようにしましょう。

これは簡単で、上記のダイアログボックスのスタートアップの種類を「自動」にすればOKです。

おしまい

以上で0.6.1への以降は完了です(もう、新しいスナップショット=0.6.2がでてしまいましたが)。

coLinuxがサービスで起動していれば、そろそろ本当にcygwinが不要になるかもしれません。

あとは、ネットワークが早くなることでしょうか?NFSクライアントとして動作させると遅くてストレスがたまります。特に、NFSがUDPでまともに動かないのは何かバグを抱えているのでしょうか?私は、とりあえずTCPで動かしてしのいでいます。

ポータブルBluetoothスピーカー

フォローする