CanonのドキュメントスキャナーDR-150を、VMWare上のWindows XPで動作させようとすると、エラーとなる。解決手段として、KVM上のWindows XPで動作させるため、Ubuntu 16.04にKVMの関連ソフトをインストールし、VMWareのWindows XPを移植した。
パッケージのインストール
$ sudo apt-get install kvm qemu-kvm libvirt-bin virt-manager bridge-utils
パッケージのインストール時に、自動的にkvm用のネットワーク・ブリッジがインストールされる。 これまでeth0だった識別名が自動的に変更され(ここでは enp1s0 となっている)、ブリッジvirbr0が新たに作られる。
# ifconfig enp1s0 Link encap:イーサネット ハードウェアアドレス 40:61:86:f1:f0:07 inetアドレス:192.168.1.11 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:219063 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:223890 エラー:0 損失:2 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:175680333 (175.6 MB) TXバイト:151089791 (151.0 MB) lo Link encap:ローカルループバック inetアドレス:127.0.0.1 マスク:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 メトリック:1 RXパケット:720420 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:720420 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1 RXバイト:5706177846 (5.7 GB) TXバイト:5706177846 (5.7 GB) virbr0 Link encap:イーサネット ハードウェアアドレス 00:00:00:00:00:00 inetアドレス:192.168.122.1 ブロードキャスト:192.168.122.255 マスク:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 メトリック:1 RXパケット:293060 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:220730 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:157216373 (157.2 MB) TXバイト:88603913 (88.6 MB)
KVMの設定ファイル、作業ディレクトリ
kvm-qemuの設定ファイルは、 /etc/libvirt
ディレクトリに格納されている。 今後、新たに作る仮想マシン(ゲストOS)毎の設定は /etc/libvirt/qemu
ディレクトリ内にxmlファイルとして格納される。 たとえば次のような感じに格納されることになる。
$ ll /etc/libvirt/qemu/ 合計 24 drwxr-xr-x 3 root root 4096 1月 14 22:15 ./ drwxr-xr-x 6 root root 4096 1月 14 20:13 ../ -rw------- 1 root root 4828 1月 1 11:52 Lubuntu16.04.xml -rw------- 1 root root 4000 1月 14 22:15 WindowsXP.xml drwxr-xr-x 3 root root 4096 1月 14 20:13 networks/
別のところから仮想マシン(ゲストOS)を移動してくる場合は、このディレクトリにxmlファイルを格納した後に、virshコマンドで
$ virsh define /etc/libvirt/qemu/new_os.xml
仮想マシン(ゲストOS)の実体ファイル類は /var/lib/libvirt
ディレクトリ内に格納される。
ログオンユーザをlibvirtdグループに追加
$ gpasswd -a user libvirtd
VMWare上のWindowsでの下準備
qemuのディスクコントローラの認識に失敗し、起動時にブルースクリーンが表示されるのを抑止するため、まずVMWare上のWindowsを起動し、あらかじめ次のレジストリ値を反映しておく。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7010] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide"
VMWareのディスクイメージを、qemu形式に変換する
VMWareの仮想ディスクが「1ファイル」形式の場合は、次のコマンドのみで変換できる。
$ qemu-img convert -f vmdk WinXP.vmdk -O qcow2 WinXP.qcow2.img
VMWareの仮想ディスクが(xxxx-s001.vmdk, xxxx-s002.vmdk ... のように)複数のファイルに分かれている場合は、まず1つのファイルに合体させてから変換する。
$ qemu-img convert -f vmdk WinXP_dsk.vmdk -O vmdk WinXP.vmdk $ qemu-img convert -f vmdk WinXP.vmdk -O qcow2 WinXP.qcow2.img
仮想マシンマネージャー virt-manager で仮想マシンの新規作成
VMWareの仮想ディスクから変換作成したqemu形式の仮想ディスクを用いて、新しい仮想マシンを作成する。
仮想マシンマネジャーの「新しい仮想マシンの作成」で「既存のディスクイメージをインポート」を選択
次のステップで、既存のストレージパスを設定するため「参照」ボタンを押し、ファイル選択画面では「ローカルを参照」ボタンを押してファイルを選択する
仮想マシン起動前に、仮想デバイスの設定を行う
■ USBタブレット
スーパーバイザ側(Ubuntu)とゲストOS(Windows)でマウスカーソルを行き来できるようにするため、「USB タブレット」がデバイスとして追加されていること。 (画面上では、タブレットと表記されている)
■ サウンド
Windows XPの標準ドライバで対応できる「ac97」を選択する。
■ ビデオ
「QXL」を選択すると、パフォーマンスが上がるらしい…。 QXL用のドライバはSPICEのダウンロードページより、Windows QXL driverをダウンロードしてインストールする。