QEMUでOEMのWindowsを起動する実験
実際にクリーンインストールするのはめんどいし、WindowsのVMイメージをqcow2化すると容量もったいないのとsmbios以外でライセンス弾かれそうな気がしてめんどいので、
smbiosの変更の実験をArch Linuxのイメージで試してみた。
以前行ったVirtualboxへのWindows(OEM版)のインストールに関する記事を参考に。
手元にあるOEMのWindowsは東芝のノートPCから抜き取ったやつだが、これ起動させるのに dmidecode コマンドで確認できるSMBIOSの情報を書き換える必要がある。
以前の記事ではVirtualboxでやったが今回はQEMUでのSMBIOSの変更。
今回の実験で変更する必要があるのは、
メーカーによってインストール時にチェックされる項目は違う。
ゲストOS上でdmidecodeが使えればいいのでArch Linuxを使ったが、インストールするのも面倒なのでVirtualboxのvdiイメージをqcow2に変換した。
以前はqemuコマンドがあった気がするのだが、最近はqemu-system-x86_64コマンドしか無い?
まあ、これで起動した。
ネットワークは設定無しでユーザーモードネットワークが有効になってる。(ICMP無効なのでpingコマンドは使えない)
起動して、マウスカーソルなんかは普通にシームレスになってるんだが、グラフィックが遅い感じ。
速くなった。
qxlは2Dサポートのある準仮想化グラフィックらしく、Virtualboxより速いかもしれん。
ホストと全く遜色ない感じで動く。
dmidecode をインストールして確認したが、
type0とtype1は別々に書く必要があるぽい?
期待通りに変わってた。
Virtualboxの時はskuとfamilyをstring指定しないと数値になっちゃってたが、QEMUの場合は全部stringになるぽい。
スペースが含まれる項目だけクォートで囲む。
割と簡単ね。
Virtualboxの場合はVBoxManage setextradataコマンドでVMに対して設定する必要があるが、
起動オプションで指定できるからQEMUの方が簡単かも。
これでたぶんリカバリー領域やリカバリーディスクからクリーンインストールできそうだが、
インストール済みのディスクイメージ使うと他のハードウェア構成で弾かれそうな気がする・・・
smbiosの変更の実験をArch Linuxのイメージで試してみた。
以前行ったVirtualboxへのWindows(OEM版)のインストールに関する記事を参考に。
手元にあるOEMのWindowsは東芝のノートPCから抜き取ったやつだが、これ起動させるのに dmidecode コマンドで確認できるSMBIOSの情報を書き換える必要がある。
以前の記事ではVirtualboxでやったが今回はQEMUでのSMBIOSの変更。
今回の実験で変更する必要があるのは、
DMI type 0
Vendor: TOSHIBA
DMI type 1
Product Name: dynabook Satellite B450/B
Serial Number: XXXX
UUID: XXXX
SKU Number: 0000000000
Family: 0000000000
の6項目。Vendor: TOSHIBA
DMI type 1
Product Name: dynabook Satellite B450/B
Serial Number: XXXX
UUID: XXXX
SKU Number: 0000000000
Family: 0000000000
メーカーによってインストール時にチェックされる項目は違う。
ゲストOS上でdmidecodeが使えればいいのでArch Linuxを使ったが、インストールするのも面倒なのでVirtualboxのvdiイメージをqcow2に変換した。
$ qemu-img convert -f vdi -O qcow2 ArchLinux.img ArchLinux.qcow2
VDI→QCOW2の変換は簡単。
$ qemu-system-x86_64 -enable-kvm -m 2G -boot c -hda ArchLinux.qcow2
QEMUで起動。以前はqemuコマンドがあった気がするのだが、最近はqemu-system-x86_64コマンドしか無い?
まあ、これで起動した。
ネットワークは設定無しでユーザーモードネットワークが有効になってる。(ICMP無効なのでpingコマンドは使えない)
起動して、マウスカーソルなんかは普通にシームレスになってるんだが、グラフィックが遅い感じ。
$ qemu-system-x86_64 -enable-kvm -m 2G -boot c -hda ArchLinux.qcow2 -vga qxl
-vga qxlオプションをつけて起動して、ゲストに xf86-video-qxl を入れて再起動した。速くなった。
qxlは2Dサポートのある準仮想化グラフィックらしく、Virtualboxより速いかもしれん。
ホストと全く遜色ない感じで動く。
dmidecode をインストールして確認したが、
Vendor: SeaBIOS
Product Name: Standard PC (i440FX + PIIX, 1996)
Serial Number: Not Specified
UUID: Not Settable
SKU Number: Not Specified
Family: Not Specified
こんなんなってた。Product Name: Standard PC (i440FX + PIIX, 1996)
Serial Number: Not Specified
UUID: Not Settable
SKU Number: Not Specified
Family: Not Specified
-smbios type=0[,vendor=MYVENDOR ][,version=018][,date=07/06/2009][,release=%d.%d]
-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str][,uuid=uuid][,sku=str][,family=str]
こんな感じのオプションをつけてQEMUを起動すれば変更できるぽい。-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str][,uuid=uuid][,sku=str][,family=str]
type0とtype1は別々に書く必要があるぽい?
$ qemu-system-x86_64 -enable-kvm -m 2G -boot c -hda ArchLinux.qcow2 -vga qxl -smbios type=0,vendor=TOSHIBA -smbios type=1,product="dynabook Satellite B450/B",serial=XXXX,uuid=XXXX,sku=0000000000,family=0000000000
これで起動して dmidecode で確認してみた。期待通りに変わってた。
Virtualboxの時はskuとfamilyをstring指定しないと数値になっちゃってたが、QEMUの場合は全部stringになるぽい。
スペースが含まれる項目だけクォートで囲む。
割と簡単ね。
Virtualboxの場合はVBoxManage setextradataコマンドでVMに対して設定する必要があるが、
起動オプションで指定できるからQEMUの方が簡単かも。
これでたぶんリカバリー領域やリカバリーディスクからクリーンインストールできそうだが、
インストール済みのディスクイメージ使うと他のハードウェア構成で弾かれそうな気がする・・・
QT環境かGTK環境のどちらかに統一する時にQTのVirtualboxをGTKアプリで代替するのが難しいと思うが、
QEMUでOEMのWindowsを起動するのは問題無さそう。
だが、
SPICEってのでできるのか?
あと、GUIフロントエンド。
Archの公式リポジトリにvirt-managerとgnome-boxesがあるが、
virt-managerは試したがrootで使う前提になってて一般ユーザーで使うのは難しい感じだった。
gnome-boxesは簡単そうではあるが、gnome3風のUIでコレジャナイ感がすごいw
QEMUでOEMのWindowsを起動するのは問題無さそう。
だが、
- ウインドウサイズ変更時のゲストの画面サイズ変更。
- USBデバイスをゲストで使う。
- クリップボードの共有。
- ファイルの共有。
SPICEってのでできるのか?
あと、GUIフロントエンド。
Archの公式リポジトリにvirt-managerとgnome-boxesがあるが、
virt-managerは試したがrootで使う前提になってて一般ユーザーで使うのは難しい感じだった。
gnome-boxesは簡単そうではあるが、gnome3風のUIでコレジャナイ感がすごいw