fedora 11(64ビット)のKVM(Kernel-based Virtual Machine)のGUIまわりには少しがっかりした。元々はサーバ用を狙った環境のようだ。
Linuxは4-5年前から4Gの壁を越えてしまったので、64ビットを数年間から利用している。大変快適である。
それでOSに付属しているKVMでWindows系のOSを動かそうと思っていろいろと工作してみたのだが、弊社の利用には合わない。そこで以前から試したことがある、sunのvirtualboxを利用してみた。
最初は、NTFSのパーティションを新しいハードディスクにddでコピーしてみた。(ddはシーケンシャルなファイルまたはデバイスからコピーするUNIXコマンド:
IBMのJCLから来たのではという話であるが、私はdisk to disk と覚えている)。
NTFSパーティションをvmdk形式(VMWareのディスク形式)で登録して利用した。これだと動作が重たかった。ブートのMBRを指定すると、ブルースクリーンが出て、うれしいやら困ったやら。また、起動する際にはルートの権限で行った。(これは、そのパーティションに対する権限の問題であとで解決する予定なのでスキップした)。
再度XPのOSをアップグレード状態でインストールすると、一応OKになったが、だんだん遅くなっていったのでおかしい。とうとう、パーティションを認識しなくなってしまった。他のPCでも確かめたが、認識しない。実はこの会社のSATAを収容する装置(これをESATAとして利用)は長いこと(8時間?)使っていると接触が悪くなるのか、認識しなくなってしまった。
実質の転送レートは30M-40MB/sec程度であったので、それほど悪くはなかったのであるが。
また、雑誌などでは、新規インストールが扱われているのだが、実際は古い環境の保守という側面が現状の利用者の需要としてはかなりあると思う。つまり古い環境をディスクごと新しい環境で再生させるというのが今回の目的である。われわれだけの問題であれば、新しいコンパイラーでコンパイルできるようにすべきであるのだが(最近は説得力がなくなったか?)。お客様が関係するとそうもいかない。もともとのソフトが大きなソフトウエアさんが巨額で作成したものだったりすると、つい遠慮して言えなくなる。こちらの生死にかかわるようなこと(正しく動作するプログラムを作成すること)については、主張するけれども。
「ディスクごと」ということであるが、雑誌ではVHD(Virtual Hard Disk)という形式はホストがWindowsでなければ使えないようなことが書いてあったが、上のようにインストールしているときにVHDの表記をどこかのダイアログでみたので(ということは一回戻ったということ)、VHDにdisk2vhdという、マイクロソフトのフリーソフトを利用してネットワークドライブにとってみた。混沌の館風になってしまうが、翌日終了しているのかと思ってPCをみたら、そのソフトが死んでいた(応答がありません)。進行状況は30%程度。これは本当の話(このコンピュータからサーバまでは100Mの低速イーサーだったのがまずかったか?)。またはスクリーンセイバーのせい?そこでUSBのHDDに直接出力した。私の場合は1ドライブでCとDのパーティションを切っていたので、その2つを1つのVHDにした。これを作成するのに2ー3時間(120G)。コピーをするのに40分かかった。
さてこの状態でsunのvirtual boxを機動するとKVM状態では動作できないという。KVMをアンインストールしたのだが、まだ、modproveで見ると、kvm-intelというのがいるので、それをメモリーから除去。
一応動作するが、やはりXPからXPへのOSのアップグレード状態でのインストールが必要であった。また、3日以内にライセンスを取得というが、金曜なので、土曜、日曜で月曜ということになるが、月曜は忙しくなるので…
まあそれでもめげずにXPからXPへのOSのアップグレード状態でのインストールをしたら、大変良い環境になった。その後、VBoxGuestAdditionsというのをインストールするとマウスカーソルがゲストとホストの間で行き来する度に、いちいちキーを二度押したり(ゲストに入るとき)、ホストキーを押す(ゲストから出て行くとき)必要がなくなった。VHDは内部ではseekに変換しているだけのようで、それなりに速い。
後日、別のマシーンにO君のXP環境を移すことにしたのだが、ホストをWindows 7(64ビットにしてみた。最初は苦労してWindows 7に付属のvirtual PCを使ったのだが、いろいろと苦労したあげく、VHDのサイズが127Gを越える、ATAのIDEとしては認められないということで断念した。やはりsunのvirtualboxにしてみる。これだと問題なく動作した。さらにvboxGuestAdditionsもインストールすると、大変すばらしい環境になった。Linuxとどちらがということはまだ計測はしていない。XPのマシーンを仮想化する意味は、
(1) マイクロソフトの古いコンパイラー(Visual C++)でメモリーの大きさをチェックしているものがあり、それを使用するように指定されている会社がある。
(2) また、昔のInstallShieldでも同様なことをしているものがある。
(3) どちらにしても新しいマシーン用のドライバはしばらくすると供給されなくなるので、古いマシーンと心中するしかない。
という理由からである。お客さまも苦労しているはずである。
仮想化がどの程度までできているのかを調べるため、サウンドが正しくホストのそれを使えるのかを調べた。最初は、スピーカーを探したらUSB経由で音のデータを拾うタイプのものが転がっていたので、それでためした。まず、ホストOSのほうは音が出た。(設定->サウンド->犬の声など)。しかし、ゲストのXPにiTunesをインストールしようとしたが、まず、なにか起動させようというたびにWindows Installerが何かをインストールしようとしている。googleで探したが簡単にはでてこない。それで、イベントログをみたら、Adobe のacrobat(7.0!)更新をかけているようで悪さをしている(XPからXPにアップグレードインストールした際に破損させてしまったか?)。実際にはSP3からSP2へのダウングレードにあたるので不明。acrobatをアンインストールした。一応OK。しかし、iTunesをインストールしようとすると、古いiTunesをアンインストールしてくださいといわれる。それでそのとおりにすると、netservice云々というディレクトリがどうのということで、アンインストールできない。そこで、強制アンインストールを行うマイクロソフトのフリーソフト(Officeの強化ツール)でiTunesをアンインストールした。それから再度インストールするとOK。しかし、MSNの動画にいっても音が鳴らない。動画はかなりよく動作はしている。しかたがないので、サウンドの関係の設定をホストとvirtualboxとxpの3者でいろいろとためした。それでもならないので、ヘッドフォーンをフロントパネルの緑色のコネクターに接続すると聞こえてきた。成功!ネットワークもOKで、ドメインにログインできた。virtualboxとは関係がないが、落語のCDをHDDに入れようとしたが、認識しない。おかしい、これでOSを入れたのであるが。昔IDEのCDはインストール時かその後かが使えなかったことがあったが、まだ同じバグが残っているのだろうか(Fedora7,8-10あたり)。
そこでヘッドホーンをあたまからはずしたら、それでも聞こえている。つまりUSBスピーカーでもOKであった。なにが起きたかは不明。接触の問題か?
次回はUSBのICカードを試そう。

となった。めでたしめでたし。
