Windows Vista上でVMware Playerを使ってLinuxを動かす

急にWindows上でLinuxが使いたくなったので、VMware Playerを使ってみる。
実は以前Windows XP上で使ったことがあったが、
という使い勝手の悪さからあまり使うことがなかった。
しかし、1つめの問題はVMware Playerのver 2が出て非常に簡単になったらしく、
2つめの問題はVMware toolsというのを使うとなんとかできることが分かったので、
Windows Vista(ホスト)+SuSE Linux(ゲスト)で試してみる。

以下のサイトを参考にさせて頂いた。説明が丁寧ですばらしいです。
http://yamashita.dyndns.org/blog/343/
http://www.katch.ne.jp/~kakonacl/douga/virtualmachine/vmware.html

使用している環境は
(ホスト)Windows Vista on Vaio VGN-TZ (Core Duo+2GBメモリ)
(ゲスト)SuSE Linux 10.0

  1. まずVMware PlayerのWindows版をダウンロード (VMware-player-2.0.2-59824.exe)
    http://www.vmware.com/download/player/download.html
    ダブルクリックでインストール、再起動が必要。

  2. VMware Playerは無償だけど、再生専用なので、
    ゲストOS(今回の場合はSuSE Linux)のイメージを作らないといけない。
    そこで、QEMUという無償のソフトを利用させて頂く。
    http://www1.interq.or.jp/~t-takeda/qemu/
    ダウンロードして、展開する。

  3. 展開したフォルダの中にあるqemu-img.exeでディスクイメージを作成する
    コマンドプロンプトから、
    # qemu-img.exe create -f vmdk SuSE10.vmdk 10G
    ここで、10Gは使うディスクの容量。すぐこの値がとられるわけではないので多めでよい。
    SuSE10.vmdkの名前は適当に(拡張子はvmdk)。

  4. 適当にVMware用のフォルダを作り、さっき作ったvmdkファイルをおいておく。
    ここで、vmxファイルなるものをテキストエディタで作る。
    内容は以下の通り。ここではファイル名をSuSE10.vmxとしておく。
    (SuSE10となっているところは適当に同じ名前を入れる)
    ---------------------------------
    config.version = "8"
    virtualHW.version = "3"
    memsize = "512"
    ide0:0.present = "TRUE"
    ide0:0.fileName = "SuSE10.vmdk"
    
    ide1:0.present = "TRUE"
    ide1:0.fileName = "auto detect"
    ide1:0.deviceType = "cdrom-raw"
    floppy0.fileName = "A:"
    ethernet0.present = "TRUE"
    ethernet0.connectionType = "nat"
    usb.present = "TRUE"
    sound.present = "TRUE"
    sound.virtualDev = "es1371"
    displayName = "SuSE 10.0"
    guestOS = "other26xlinux"
    nvram = "SuSE10.nvram"
    scsi0:0.redo = ""
    ethernet0.addressType = "generated"
    uuid.location = "56 4d 4a 15 2a 3f 49 70-03 c9 82 f3 02 82 dc 4c"
    uuid.bios = "56 4d 4a 15 2a 3f 49 70-03 c9 82 f3 02 82 dc 4c"
    ide1:0.autodetect = "TRUE"
    ethernet0.generatedAddress = "00:0c:29:82:dc:4c"
    ethernet0.generatedAddressOffset = "0"
    checkpoint.vmState = "SuSE10.vmss"
    tools.remindInstall = "TRUE"
    ide0:0.redo = ""
    
    sharedFolder0.enabled = "TRUE"
    sharedFolder0.present = "TRUE"
    sharedFolder0.writeAccess = "TRUE"
    sharedFolder0.readAccess = "TRUE"
    sharedFolder0.hostPath = "/home/hoge/vmware/share"
    sharedFolder0.guestName ="share"
    sharedFolder0.eXpiration = "never"
    sharedFolder.maxNum = "1"
    ---------------------------------
    
    shared...で始まる文はファイル共有用で、
    sharedFolder0.hostPath = "/home/hoge/vmware/share"
    sharedFolder0.guestName ="share"
    の2つのパラメータはとりあえず適当な名前に(後で書き換える)。

  5. ここまでで、同じフォルダにvmdkファイルとvmxファイルができている。
    ここで、インストールDVDをセットして、vmxファイルをダブルクリックすると、
    VMware Playerが起動してインストールが始まる。

  6. 普通にLinuxをインストールする要領で、インストールを進める。
    全ディスク容量が、イメージを作る時に指定したサイズになっているはず。

  7. Linuxが普通に動けばとりあえずは終了。
    この状態で、Windows上でLinuxを使う感じを味わうことができる。
    ただし、このままでは最初に書いた2つの問題が残ったままなので、 もう少し頑張ることにする。

    ちなみに、以下の作業に移る前に、少なくともgccはインストールしておく必要がある。
    自分がよく使うエディタとかも入れておいた方が便利かもしれない。

  8. まずは、画面サイズの問題。
    defaultでは800x600になっていて、ウインドウを掴んで引っ張ってもサイズは変わってくれない。
    そこで、VMware toolsというのを使うらしい。
    これに関しては以下のサイトを参考にさせて頂いた。これまた説明がすばらしい。
    http://ugd555.blog1.fc2.com/blog-entry-414.html

  9. まず、VMware serverのlinux版をダウンロードする(VMware-server-1.0.4-56528.tar.gz)。
    http://www.vmware.com/ja/download/server/
    展開して、vmware-server-distrib\lib\isoimagesにある、linux.isoというファイルを
    vmxファイルとかがおいてあるフォルダに移す。

  10. vmxファイルを以下のように書き換える(#はコメントアウト)。
    ---------------------------------
    #ide1:0.fileName = "auto detect"
    #ide1:0.deviceType = "cdrom-raw"
    ide1:0.fileName = "linux.iso"
    ide1:0.deviceType = "cdrom-image"
    ---------------------------------
    
  11. この状態で、vmxファイルをダブルクリックしてLinuxを立ち上げると、
    VMware toolsが/media以下で検出されるはず。
    /media/VMware Tools/VMwareTools-1.0.2-39867.tar.gz
    をどこか適当な場所に持ってきて
    # tar xvzf VMwareTools-1.0.2-39867.tar.gz
    # cd vmware-tools-distrib
    # ./vmware-install.pl (ここでgccが必要)
    とすると、VMware toolsのインストールが始まる(たくさん質問されるが全て従順にdefaultに従う)。

  12. 途中の質問で以下のようなメッセージが出てこけた。
    What is the location of the directory of C header files
    that match your running kernel? [/usr/src/linux/include]
    いつも通り従順に答えると怒られる。

    どうやら、kernel-sourceが必要な様子。
    YaST先生でkernel-sourceをインストールDVDから検索すると、
    ちゃんと捜し当ててくれるので、インストールする(kernel-source-2.6.13-15.rpmだった)。

    気をとり直してもう一度、
    # ./vmware-install.pl
    とすると、今度はカーネルソースのディレクトリと実際のカーネルのバージョンが違う、といわれる。
    確かに使ってるカーネルは2.6.13-15.18だった。
    インストールの最後にアップデートをしてしまったのかもしれない。

    そこで、webから、kernel-source-2.6.13-15_15.18.i586.delta.rpmをダウンロード
    (kernel-source-2.6.13-15.18.i586.rpm ??どっちだったか不明)してきて、
    YaST先生にダウンロードしたファイルのあるディレクトリも見せて、再度インストール。

    今度こそ
    # ./vmware-install.pl
    とすると、例の質問でちゃんと/usr/src/linux/includeではないディレクトリを探し当ててくれる。

  13. インストールが進むと、最後に解像度を聞かれるので、環境にあわせて答える。
    Vaio TZは1366x768という変な形なので、どうしようか迷った挙げ句、1024x768にしてみる。
    そうしたら、縦の長さがVMware Playerのバーを含めるとディスプレイをオーバーしてしまい、
    スクロールバーがついてしまった。
    しかし、ウィンドウを掴んでサイズ変更をしようとすると、縦の長さが勝手にadjustされる。
    ちなみに、ここでSuSEのsax2を使って再設定してみようと思ったら、動かなくなっている。
    VMware toolsがXF86confing(xorg.conf)をいじってしまった様子。
    まぁたいした実害はなさそうなので放置。

  14. 次は、ファイル共有の設定。こいつにはVMware toolsがインストールされていることが必要。
    VMware Playerのバーのメニューから「共有フォルダ」を選び、「常に有効」にチェック
    下の方に、vmxファイルに適当に書いたディレクトリ(/home/hoge/vmware/share)が参照されているので、
    それを選択して、プロパティに進み、Windows側を参照してパスを入れる。
    再起動する。

  15. うまくいっていれば、sharedFolder0.guestName ="share"としていた場合は、
    ホスト側の指定したフォルダが、Linuxの /mnt/hgfs/share/ にマウントされている。めでたし。

ちなみに、VMware toolsを入れたことで、2つのOSの時計が同期させることができる。
設定は、rootで
# vmware-toolbox &
とすることで可能(VMware toolsをインストールした直後は、eth0が無効になっているので、ここで有効にしておく)。

また、VMware toolsを入れる前は、VMware Playerの中と外でマウスをやりとりしなければならなかったが
(例えば、ゲストのLinuxを触っていて、Windows側に戻るときCtrl+はAltで抜けてこなければならなかった)、
VMware toolsを入れるとマウスは共有される。かなり使い勝手がよくなる。

さらに、VMware toolsを入れていると、OS間でコピペができる。嬉しい。

何回かテストをしているうちに、VMware Playerの起動時に、
「致命的なアプリケーション エラーです: 文字列のエンコード中にエラーが発生しました。(class cui::Error)」
というメッセージが出てそのまま強制終了する問題が多発。


これは、よく知られた問題らしく、以下のサイトで解決策がいろいろと挙げられている。
http://kochory.blog120.fc2.com/blog-entry-4.html
http://d.hatena.ne.jp/daftbeats/20071209/1197207997
http://d.hatena.ne.jp/satospo/20070930http://d.hatena.ne.jp/satospo/20070930

策を講じた後は、(今のところ)問題は発生していない。

home > memo > VMware