Libvirt qemuはハードウェア識別子を変更しますか?

Libvirt qemuはハードウェア識別子を変更しますか?

不明な奇妙な問題に封着しました。もともとは物理マシンでしたが、しばらく前にVMにダウングレードされたWindows 7仮想マシンがあります。使って始めました。

qemu-system-x86_64 --enable-kvm -vga std -m 4G -smp cores=4 /path/to/image 

Windowsのライセンス認証をトリガーするのに十分なハードウェア情報が変更されました。私は最近libvirtとvirt-managerを使い始めました。このWindowsコンピュータのインポートを開始するまで、すべてがうまくいきました。ついに起動すると、Windowsのライセンス認証の問題が発生しました。

報告されたハードウェア仕様(msinfo32)をスクリーンショットで撮って終了し、問題なくコマンドで再起動し、報告されたハードウェアを比較しました。すべてが同じように見えます。それで、より詳細な情報が得られるかどうかを調べるためにWMICの調査を始めました。私が気づいた唯一のことは、2つの起動間にCPU ProcessorIDフィールドが異なることです。を使用して私の設定(主にCPUパラメータ(一致=「正確な」、モード=「ホスト - モデル」、モード=「ホスト - 通過」など))のさまざまな調整を試しましたが、役に立ちませんvirsh edit machinenameでした。

psを使用すると、libvirtが次のコマンドを実行していることがわかります(読みやすくするために複数行に分かれています)。

qemu-system-x86_64 -enable-kvm -name win7 -S \
-machine pc-i440fx-trusty,accel=kvm,usb=off -m 4096 \ 
-realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 \
-uuid 71ca9116-a4a1-b799-dab5-01a483bce024 \
-no-user-config -nodefaults \
-chardev socket,id=charmonitor,path=/var /lib/libvirt/qemu/win7.monitor,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc -no-shutdown -boot strict=on \
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
-drive file=/media/paul/VirtualMachines/win7.vmdk,if=none,id=drive-ide0-0-0,format=vmdk \
-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
-netdev tap,fd=25,id=hostnet0 \
-device \
    rtl8139, \
    netdev=hostnet0, \
    id=net0, \
    mac=52:54:00:bf:2c:b2,bus=pci.0, \
    addr=0x3 -chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-device usb-tablet,id=input0 -vnc 127.0.0.1:0 \
-device VGA,id=video0,bus=pci.0,addr=0x2 \
-device intel-hda,id=sound0,bus=pci.0,addr=0x4 \
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

これは私の設定ファイルです。http://pastebin.com/0e2Mf4RE

それでも簡単なコマンドで始めることができます。問題ありません。 libvirt qemuコマンドは、ハードウェアがゲストシステムに報告する方法に関して何かを変更したようです。パラメータがMACアドレスとハードドライブUUIDを設定しているように見えますが、それは問題ではありません。私は、Windowsハードウェアロックが主にマザーボードおよび/またはCPUの組み合わせに基づいていると確信しています。

なぜこれが起こり、解決策を知っている人がいますか?

修正する

上記で実行したqemuコマンドを使用してlibvirtを直接実行してみました。起動するまでパラメータを削除し、Windowsで有効になったことを示すまで試みました。-uuid問題が発生しているようです。なぜそうなのかよく分からない。 uuidパラメータは単にセキュリティプロファイル(私の場合はAppArmor)のためのものだと思いましたが、ゲストの一部のハードウェア識別子も変更しているようです。

起動に成功した後、wmic csproduct get uuidWindowsで実行してコピーして終了しました。その後、次のことを行いました。

virsh dumpxml win7 > win7.xml
virsh undefine win7
[Edited win7.xml -> changed uuid to match the one I copied]
virsh define win7.xml

virt-managerを開き始めました。効率的! uuidがマザーボードのシリアル番号を設定していると思いますか?興味深いことに、私はゼロの文字列だったので(明らかに多くのマザーボードはUUIDを報告しません)、それは実際にはユニークではなく、冒険全体を非常に愚かにしました。

なぜこれがうまくいくのかわからないので、答えとして投稿しません。動作するまでいたずらを打ち、上記で仮定しました。このトピックについてもっと知っている人は、より良い回答を投稿できますか?

ベストアンサー1

おすすめ記事