Virtualization

升級 qemu 後,“不支持的機器類型 ‘pc-i440fx-3.1”

  • February 21, 2019

我最近安裝了 QEMU 的最新版本(3.1.0),但我一直無法讓 virt-manager 正常工作,大概是因為它沒有連接到正確的依賴項。此執行緒中描述了我的其他一些麻煩。

我執行以下命令:

~$ virt-install \
> --name myWINVM \
> --boot uefi \
> --ram 32768 \
> --graphics vnc,listen=0.0.0.0 \
> --machine pc \
> --features kvm_hidden=on \
> --hostdev 9:00.0,address.type=pci,address.multifunction=on \
> --hostdev 9:00.1,address.type=pci \
> --hostdev 0a:00.0,address.type=pci,address.multifunction=on \
> --machine pc \
> --vcpus 4 \
> --os-type windows \
> --os-variant win10 \
> --network bridge=virbr0 \
> --console pty,target_type=serial \
> --disk /home/boss/Downloads/Win10_1809Oct_English_x64.iso,device=cdrom \
> --disk /home/boss/Downloads/virtio-win-0.1.164.iso,device=cdrom \
> --disk path=/home/boss/testVM/WINVM.img,bus=virtio,size=120

我的輸出是這樣的:

Starting install...
Allocating 'WINVM.img'                                      | 120 GB  00:04     
ERROR    internal error: process exited while connecting to monitor: 2019-02-21T01:58:56.827372Z qemu-system-x86_64: -enable-kvm: unsupported machine type 'pc-i440fx-3.1'
Use -machine help to list supported machines
Removing disk 'WINVM.img'                                   |    0 B  00:00     
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
 virsh --connect qemu:///system start myWINVM
otherwise, please restart your installation.

除了嘗試 git 版本的 qemu,我還嘗試從SPICE 網站建構目前的 SPICE 伺服器:

注意:如果我指定 q35,我會得到完全相同的錯誤:

~$ virt-install \
> --name myWINVM \
> --boot uefi \
> --ram 32768 \
> --graphics vnc,listen=0.0.0.0 \
> --machine q35 \
> --features kvm_hidden=on \
> --hostdev 9:00.0,address.type=pci,address.multifunction=on \
> --hostdev 9:00.1,address.type=pci \
> --hostdev 0a:00.0,address.type=pci,address.multifunction=on \
> --machine pc \
> --vcpus 4 \
> --os-type windows \
> --os-variant win10 \
> --network bridge=virbr0 \
> --console pty,target_type=serial \
> --disk /home/boss/Downloads/Win10_1809Oct_English_x64.iso,device=cdrom \
> --disk /home/boss/Downloads/virtio-win-0.1.164.iso,device=cdrom \
> --disk path=/home/boss/testVM/WINVM.img,bus=virtio,size=120

Starting install...
Allocating 'WINVM.img'                                      | 120 GB  00:04     
ERROR    internal error: process exited while connecting to monitor: 2019-02-21T04:08:50.597025Z qemu-system-x86_64: -enable-kvm: unsupported machine type 'pc-i440fx-3.1'
Use -machine help to list supported machines
Removing disk 'WINVM.img'                                   |    0 B  00:00     
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
 virsh --connect qemu:///system start myWINVM
otherwise, please restart your installation.

編輯:我認為問題一定出在 virt-manager 上,因為我能夠創建一個 qemu 系統並使用 VNC 使用以下命令查看它:

sudo qemu-system-x86_64 \
> -name WINVM,process=WINVM \
> -machine type=q35,accel=kvm \
> -smp 4,sockets=1,cores=2,threads=2 \
> -m 16G \
> -rtc clock=host,base=localtime \
> -serial none \
> -vga qxl \
> -parallel none \
> -boot order=dc \
> -drive file=/home/boss/Downloads/virtio-win-0.1.164.iso,index=1,media=cdrom \
> -drive file=/home/boss/Downloads/virtio-win-0.1.164.iso,index=2,media=cdrom
qemu-system-x86_64: This family of AMD CPU doesn't support hyperthreading(2). Please configure -smp options properly or try enabling topoext feature.
VNC server running on ::1:5900

編輯:我的下一步將是從一個新的主機系統從頭開始,之前手動建構和安裝所有最新的軟體組件。那就是 QEMU、libvirt、virt-manager 和 spice-server.. 我忘記了什麼嗎?我應該做些什麼來確保我正在建構的軟體包能夠找到彼此?

無論如何,如果失敗了,我可能會認輸並返回儲存庫版本,即使它有一些問題。

更新:我無法讓手動編譯的 qemu、libvirtd 和 virt-manager 一起工作,因此決定認輸(暫時)。如果啟動這整個事情的重置錯誤太煩人了,也許我會拋開一切,嘗試 Arch。

鑑於您說明的命令行,應該沒有辦法獲得您報告的錯誤。您請求了一個未版本化的“pc”機器類型,這將導致 libvirt 查詢 QEMU 以詢問最新版本的變體是什麼。QEMU 似乎已經告訴 libvirt 使用“pc-i440fx-3.1”,鑑於您聲稱已升級到 3.1.0,這是有道理的。鑑於 libvirt 從 QEMU 本身獲取此資訊,因此 QEMU 拒絕執行並抱怨這不存在是毫無意義的。這應該是一個不可能發生的情況。我會檢查“virsh 能力”輸出,看看它為 QEMU 檢測的機器類型。

傳遞“q35”時遇到相同問題的原因是因為您的 virt-install args 已通過“–machine pc”選項兩次。您將第一個更改為“q35”,但第二個仍然顯示“pc”,它覆蓋了第一個。

引用自:https://serverfault.com/questions/955011