Назад | Перейти на главную страницу

После обновления qemu, «неподдерживаемый тип машины 'pc-i440fx-3.1»

Я недавно установил последнюю версию (3.1.0) QEMU, и у меня возникли проблемы с правильной работой 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 дважды передали параметр "--machine pc". Вы изменили первый, чтобы сказать «q35», но второй по-прежнему говорит «pc», который имеет приоритет над первым.

Не использовать --machine pc больше. Он имитирует материнскую плату 1995 года и совершенно не подходит для работы с современными операционными системами.

Замени его на --machine q35, это единственный другой вариант, который имитирует более современную материнскую плату с поддержкой UEFI.