メーカー製PCでLinuxを稼働させ、qemuで付属のOEM windows7を仮想マシンに仕立てるには

*使用許諾書(C:\Windows\System32\license.rtf)を読むと、直接物理マシン上でWindowsOSを動かす代わりに、仮想化装置上(VMwareESXiとかQEMUらかな?)で1つのWindowsOSを仮想マシンとして使用できる。と読めそう(3条d項目)。読解力の乏しい愚生には難しいのだが.....心配ならパッケージ正規品を買えばいいだけの話なんだけどね。
っで、そのままOEM windows7をインストールしても、ライセンスアクティベーションが通りません。どうやら本体マシンのBIOS情報が仮想マシンのBIOSに入っていないと無理みたい。っでここに回避策がある。https://github.com/ghuntley/seaslic
一応、対象メーカー製PCにLinuxを載せ /sys/firmware/acpi/tables があることが必須。

[root@c ~]# ls -CF /sys/firmware/acpi/tables
APIC  BGRT  DSDT  FACP  FACS  HPET  IFEU  MCFG  SLIC  SSDT1  SSDT2  dynamic/
[root@c ~]#

このように存在していたので行けそうである。まず、必要なパッケージをインストール

[root@c ~]# yum install iasl vim-common

そして、seaslicを取得

[root@c ~]# cd /opt/src/
[root@c src]# git clone git://github.com/ghuntley/seaslic
[root@c src]# ls -l seaslic
合計 16
-rw-r--r-- 1 root root  970  2月 11 09:26 2014 README.markdown
-rwxr-xr-x 1 root root  712  2月 11 09:26 2014 patch.sh
-rw-r--r-- 1 root root 1130  2月 11 09:26 2014 seabios.patch
drwxr-xr-x 2 root root 4096  2月 11 09:26 2014 seabios.submodule
[root@c src]#

次に、qemuのBIOSであるSeaBIOSを取得。最新版のseabios-1.7.4だと失敗した。

[root@c src]# wget http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.2.tar.gz
[root@c src]# gzip -cd seabios-1.7.2.tar.gz | tar xf -
[root@c src]# cd seabios-1.7.2
[root@c seabios-1.7.2]# ls -CF
COPYING  COPYING.LESSER  Makefile  README  TODO  src/  tools/  vgasrc/
[root@c seabios-1.7.2]#

このSeaBIOSの中身をseaslicのseabios.submoduleに移します。

[root@c seabios-1.7.2]# cp -r ./* ../seaslic/seabios.submodule/

っで、seaslicにて調整を施します。

[root@c seabios-1.7.2]# cd ../seaslic/
[root@c seaslic]# ls -CF
README.markdown  patch.sh*  seabios.patch  seabios.submodule/
[root@c seaslic]# ./patch.sh
[root@c seaslic]# ls -l seabios.submodule/out/bios.bin
-rw-r--r-- 1 root root 262144  2月 11 11:04 2014 seabios.submodule/out/bios.bin
[root@c seaslic]# cp /opt/src/seaslic/seabios.submodule/out/bios.bin /qemu/

完成したこのbios(bios.bin)をqemuで使います。

virtioドライバを組み込ませてwindowsマシンをインストール

完全仮想化よりも準仮想化は動作が速くなる。VMwareで言うところの「VMware Tools」で高速化される感じと同等かな。
QEMU上では準仮想化にvirtioベースのHDDとNICが使用できる。CentOS6.5を仮想マシンにした時は、インストール時からvirtioを認識できていた。CentOS6.5のインストーラーにvirtioドライバが組み込まれていたのだろう。
windows7のDVDにはvirtioドライバは含まれていない。なので別途取得します。

[root@c ~]# cd /export
[root@c export]# wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/virtio-win-0.1-74.iso

インストールするメディアはメーカー製PCに付属したOEMなwindows7。リカバリーメディアとして提供されているようなDVDである。ここではこのDVDをisoファイルに仕立てて、libvirtのXMLファイルを作成した。

本来ならCDROM装置1台で、OSインストール中にCDROMを差し替えて、virtioドライバを組み込むべきなのだろうが、
QEMUコマンドの detach-diskattach-disk がOSインストール中に働かなかった....
なので、初めからCDROM装置を2つ用意してインストールを行った。

[root@c ~]# virt-install --connect qemu:///system --cpu=host \
 --virt-type kvm \
 --machine=pc \
 --name ddns \
 --ram 1024 \
 --vcpus=1 \
 --description "DDNS更新専用マシン" \
 --os-type windows \
 --os-variant win7 \
 --boot cdrom,hd,menu=on,loader=/qemu/bios.bin \                           *調整したBIOS
 --disk pool=default,format=qcow2,bus=virtio,size=16,cache=writeback \     *OSを入れるHDD
 --disk path=/export/virtio-win-0.1-74.iso,device=cdrom \                  *virtioドライバが入ったCDROM
 --cdrom /export/windows7HomePremOEM.iso \                                 *win7のCDROM
 --network bridge=br0,model=virtio \
 --graphics vnc,port=5900,listen=0.0.0.0,keymap=ja
[root@c ~]#

実行後にVNCでコンソール画面を開いて、インストール操作を進める。
2014y02m11d_123104040.png
メーカー毎にリカバリーメディアの起動画面は違うと思うが、こちらではwindowsのロードが始まって「システム回復オプション」画面が現れた。そこで使用するキーボード入力方式を問われ「MicrosoftIME」を選択して「次へ」ボタンをクリックした。
2014y02m11d_170431399.png
またもや「システム回復オプション」画面なのだが、[以前に作成したシステムイメージを使用して、コンピューターを復元します]を選択したまま、「ドライバーの読み込み」ボタンをクリックする。
2014y02m11d_170711598.png
[ドライバーの追加]ダイアログが表示され、[OK]ボタンをクリックして、virtio向けのドライバーを組み込む。
2014y02m11d_170750526.png
virtio-win-0.1-74.isoを当て込んだEドライブのWIN7/X86から「VIOSTOR」「VIOSER」「VIOSCSI」「NETKVM」「BALLOON」を読み込んでおく。
2014y02m11d_171230519.png
読み込みが終わったら「次へ」ボタンをクリックするが、イメージが存在しないのでエラーになる。ここでは[キャンセル]ボタンを押す。
2014y02m11d_172005950.png
すると、[コンピューターイメージの再適用]画面が表示されるが、[キャンセル]をクリックする。
2014y02m11d_172200326.png
これで[Windowsの再インストール]が行える[システム回復オプション]画面に戻れる。
2014y02m11d_172426401.png
ここで[windowsの再インストール]リンクをクリックする。確認画面が表示されるが、[はい]を選択する。
2014y02m11d_172554838.png
ここで、virtioドライバが読み込まれていれば、先に進みます。読み込まれていないとディスクがありませんとエラーになります。
2014y02m11d_172643294.png
暫くするとOSの選択画面が表示され、メーカー製PCにOEM供給されたwindowsのエディションを選択します。
2014y02m11d_172833925.png
ライセンス条項に同意して、インストール先のHDDを選択します。
2014y02m11d_173124334.png
そしてインストールが開始されます。あとは通常通りに進めます。

*途中でプロダクトキーの入力が求められるかな?と思ったのだが、スルーでインストール完了。
一応コマンドラインで slmgr -dlv を実施すると
2014y02m11d_180124574.png
となる。システムプロパティ画面でも
2014y02m11d_180324966.png
と認証はされているみたい。

OSインストール完了後にデバイスマネージャを開くと

と定義されている

インストール完了後、virsh edit ddnsを実行して2台のCDROMを削除してvirsh autostart ddnsと本体マシンが起動したら仮想マシンも起動するようにすれば完了。

最新の60件
2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-13 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-03 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14 2026-03-13 2026-03-07 2026-03-06 2026-03-04 2026-03-02 2026-02-26 2026-02-24

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-01 (水) 00:46:20