Вопрос или проблема
Я использовал Ubuntu, пока недавно не перешел на Arch (Manjaro). Однако, переустановив Virt-Manager, я захотел запустить старые виртуальные машины. Конфигурация не изменилась, но я столкнулся с ошибками:
Машина больше не может быть запущена, и я получаю следующее сообщение об ошибке:
Error launching details: Host does not support domain type kvm
with machine 'pc-i440fx-focal' for virtualization type 'hvm' with
architecture 'x86_64'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/vmwindow.py", line 40, in get_instance
cls._instances[key] = vmmVMWindow(vm)
File "/usr/share/virt-manager/virtManager/vmwindow.py", line 83, in __init__
self._details = vmmDetails(self.vm, self.builder, self.topwin,
File "/usr/share/virt-manager/virtManager/details/details.py", line 389, in __init__
self._init_details()
File "/usr/share/virt-manager/virtManager/details/details.py", line 807, in _init_details
vmmAddHardware.build_video_combo(self.vm, video_dev)
File "/usr/share/virt-manager/virtManager/addhardware.py", line 816, in build_video_combo
default = DeviceVideo.default_model(vm.xmlobj)
File "/usr/share/virt-manager/virtinst/devices/video.py", line 47, in default_model
if (guest.lookup_domcaps().supports_video_virtio() and
File "/usr/share/virt-manager/virtinst/guest.py", line 656, in lookup_domcaps
if not self._domcaps or not _compare(self._domcaps):
File "/usr/share/virt-manager/virtinst/guest.py", line 646, in _compare
if self.os.machine and not _compare_machine(domcaps):
File "/usr/share/virt-manager/virtinst/guest.py", line 633, in _compare_machine
capsinfo = self.lookup_capsinfo()
File "/usr/share/virt-manager/virtinst/guest.py", line 674, in lookup_capsinfo
self._capsinfo = self.conn.caps.guest_lookup(
File "/usr/share/virt-manager/virtinst/capabilities.py", line 319, in guest_lookup
raise ValueError(msg)
ValueError: Host does not support domain type kvm with machine 'pc-i440fx-focal'
for virtualization type 'hvm' with architecture 'x86_64'
Я не вносил никаких изменений в настройки BIOS или что-то еще. Так что виртуализация в целом должна работать нормально.
Есть идеи?
Ах, наконец-то я разобрался.
Когда я посмотрел на конфигурацию, она содержала строку:
<type arch="x86_64" machine="pc-i440fx-focal">hvm</type>
тогда как новая настроенная машина содержит слегка другую строку:
<type arch="x86_64" machine="pc-i440fx-7.0">hvm</type>
Так что, похоже, некоторые пакеты для машины отличаются между Ubuntu и Arch, я так думаю.
Ответ или решение
Проблема, с которой вы столкнулись при запуске виртуальных машин в Virt-Manager на Arch (Manjaro) после перехода с Ubuntu, заключается в различиях в конфигурации виртуальных машин на этих двух дистрибутивах. Ошибка, которую вы наблюдаете, связана с несовместимостью типа домена и машинного типа pc-i440fx-focal
с вашим текущим окружением на Arch. Давайте разберем это подробнее.
Формулирование ситуации
При переезде с Ubuntu на Arch, вместо того чтобы создавать виртуальные машины с нуля, вы попытались использовать уже существующие конфигурации. Это вполне логично, учитывая, что стандартные форматы конфигураций предполагают переносимость. Однако в вашем случае возникло несовпадение версии машины между дистрибутивами Ubuntu и Arch.
Объективное описание проблемы
Конфигурация виртуальной машины, созданной в Ubuntu, использует машинный тип pc-i440fx-focal
, который отсутствует в списке поддерживаемых на Arch. Ubuntu предоставляет специфические для дистрибутива настройки и пакеты, которые могут не быть доступны или известны другим дистрибутивам, таким как Arch. Машинный тип pc-i440fx-focal
, по-видимому, входит именно в такую категорию.
Решение и вдохновение
Чтобы решить эту проблему, необходимо изменить конфигурацию виртуальной машины в соответствии с поддерживаемыми параметрами вашей текущей платформы. Вы уже заметили различие в конфигурации между вашей старой машиной и новой, специально созданной на Arch:
Найдите в вашей конфигурации строку:
<type arch="x86_64" machine="pc-i440fx-focal">hvm</type>
И замените её на:
<type arch="x86_64" machine="pc-i440fx-7.0">hvm</type>
Эта правка обновит машинный тип, используемый виртуальной машиной, на версию, поддерживаемую в вашем текущем окружении.
Обобщение
Таким образом, ключ к решению данной проблемы кроется в адаптации конфигурации старой виртуальной машины под новый дистрибутив. Обновление значения машинного типа устранит несовместимость, и ваша виртуальная машина сможет корректно запускаться в Virt-Manager на Arch (Manjaro). Это также подчеркивает важность учета различий в окружениях виртуализации, которые могут существовать между разными дистрибутивами Linux.