VMの選択と設定

LinuxプログラマとしてはLinuxが動いてくれないと商売にならないので、Linuxも動かすことに。

Linuxは64bitも32bitも使いたいし、DebianもUbuntuも使いたい。そこでVMということになるのだけど、これもなかなか頭痛い。

元々ノートPCの方では「VMWareでLinuxを動かして、WindowsのXに貼りつけて動かす」ということをやっていた。ノートのWindowsを抜いてしまうと、いろいろ不便なことが多いし、かと言ってWindowsだけだと不便でしょうがなかったので、そうやることにしていた。

Xは試行錯誤の結果、Cygwinを入れて動かすのがリーズナブルだとわかっている。Windows上のXは各種あるのだけど、たいていは商用だし、Freeなものは結局CygwinのXを取り出したものだったりするので、あれこれ悩むよりもCygwinを入れてしまうのが手っ取り早い。

CygwinのX serverを入れてしまえば、XWin Serverというアイコンが出来るので、これをクリックするだけでxtermが動く。あとは、VMにsloginしてやればいい。

さて、そのVMなのだけど、最近は選択に迷うほどある。

隠れMS信者としては、MSのVMを使いたいと言うか、第一選択に思っていたのだけど、これでLinuxを動かすのはちょっと面倒なことがあるようで諦めることに。2004の時に使っていて悪くない感じではあったのだけど、知らぬ間に落ちてしまったりということもあって、信頼性には「?」だったということもある。そんなわけで、第一選択が早々に落選。

定番としてはVMWareがある。

VMWare serverはノートで常用していたのだけど、2.0になって管理コンソールがさっぱりわけわかになってしまった。CPUが2個使えるのは嬉しいんだけど、そういったわけのわからないところが嫌なので、敬遠して他の選択肢を探すことに。

そこで発見したのは、SunのVirtual Boxだ。製品でもあるけど、GPLでもあるので、いろいろ見通しがいい。何しろ「わからなかったらソースを見る」という手が使える。CPUが1つしか使えなさそうなのが困るのだけど、当座には我慢しておけばいい。

普通にVMイメージを作って動かす分にはどうとでもなるのだけど、元々使って動かしていたLinuxの環境を動かしたい。これが使えないことには、いろいろ不自由である。そこでいろいろ調べてみたら、「物理パーティションをゲストにする方法」というのがあるのを発見する。

方法はわかってしまえばどうということはなく、物理パーティションの情報を持った仮想パーティション定義ファイルを作ってやればいい。ヘルプの

9.10. Using a raw host hard disk from a guest

に詳しいことが書いてある。具体的には、

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk \\.\PhysicalDrive1 -register

のようにして、vmdkファイルを作る。どこに作るかと言えば、

C:\Users\<ユーザ名>\.VirtualBox\HardDisks

だ。ここにあるvdiファイル(仮想ディスクイメージ)とvmdkファイル(仮想パーティション定義ファイル)がゲストで使うことの出来るディスクイメージとなる。

これで元々Linuxの入っていたドライブ全体を仮想ディスクとして登録してやって、それを起動するようにしてやると、元々のLinux環境がまるっと動いてしまった。動いてしまえば、後はどうとでもなる。

ただ、ゲスト上ではなぜかディスクは「hdx」になってしまう。今時のLinuxでは、たいていのディスクは「sdx」になっているはずなので、この辺がうまく行かなくて起動エラーになる。これは慌てず騒がず「hdx」に書き換えてやればいい。

PS.

64bitのゲストを起動すると、「このプロセッサは64bitじゃないぞ」的なエラーを返したりしてたのだけど、BIOSをアップグレードすることで解決した。どうやら、CPUのフラグの初期化あたりがおかしかったらしい。