Вопрос или проблема
У меня есть виртуальная машина с пробросом GPU, и она работает нормально. Я могу видеть GPU внутри виртуальной машины и взаимодействовать с ним в общем. Чтобы использовать этот GPU в качестве основного дисплея, мне нужно отключить имплицитное видеоустройство, которое прошивка Proxmox предоставляет виртуальной машине, поэтому я изменил Hardware
> Display
= none
в настройках экземпляра виртуальной машины.
На этом этапе виртуальная машина больше не загружается. Устройство работает, потребляя ~12% CPU и около 100% памяти.
Это, очевидно, очень плохо, поэтому я перепробовал множество вариантов настройки GRUB и загрузочных опций Linux, чтобы попытаться выяснить, какая (очевидно) настройка, связанная с видео, вызывает проблемы. Я делаю это без дисплея, так как, напомню, его нет. Но добавление виртуального последовательного порта и использование qm terminal
ничего не дало, поэтому у меня появилась идея.
По прихоти я попробовал прошивку OVMF, изменив Hardware
> BIOS
= OVMF
(ранее был SeaBIOS
, по умолчанию). И к моему удивлению, поведение было такое же, как выше (~12% CPU и ~100% памяти), но вывод видео на физическом мониторе действительно работал. Прошивка работала, но теперь она не может прочитать мой загрузочный диск?
Очевидно, может прочитать таблицу разделов, но согласно OVMF содержание диска пусто. Это не очень логично.
Кто-нибудь может подсказать, что здесь происходит? SeaBIOS загружается только с действительным Display
, OVMF, кажется, работает с Display=none
, но не удается найти какие-либо носители на загрузочном диске. Это известные проблемы? Может ли OVMF не загружать диски VirtIO?
Конфигурация виртуальной машины сама по себе довольно стандартная.
Ответ или решение
Ваша ситуация с OVMF и VirtIO в Proxmox может быть связана с несколькими факторами, которые важно учитывать при настройке виртуальных машин для корректной работы с GPU passthrough.
Теория
Во-первых, стоит понимать работу различных методов загрузки и элементов настройки виртуальной среды. OVMF (Open Virtual Machine Firmware) — это UEFI-совместимая прошивка, используемая для современных схем загрузки, в то время как SeaBIOS более традиционен и работает с BIOS. Разница в архитектуре может повлиять на совместимость и поведение виртуальных устройств, таких как диски и графика.
При использовании GPU passthrough и отключении встроенного видеоадаптера, важно удостовериться, что все связанные с графикой устройства правильно настроены и работают с выбранной вами прошивкой. VirtIO диски, как правило, поддерживаются OVMF, но иногда могут возникнуть проблемы с драйверами или несовместимостью.
Пример
В вашем случае, изменение прошивки с SeaBIOS на OVMF привело к тому, что у вас появилось изображение на физическом мониторе, но виртуальная машина не смогла загрузиться с диска. Это может указывать на проблемы с драйверами VirtIO, которые не были правильно загружены или не совместимы с UEFI.
Применение
Для решения этой проблемы, выполните следующие шаги:
-
Проверьте конфигурацию VirtIO драйвера: Убедитесь, что VirtIO драйверы для вашей операционной системы обновлены и корректно установлены. Они должны быть совместимы с UEFI, что необходимо для работы с OVMF.
-
Проверка дисковой конфигурации: Убедитесь, что ваш диск настроен как UEFI-совместимый. Иногда для корректной загрузки с OVMF требуется создать специальный UEFI-раздел на диске.
-
Загрузка из Live-системы: Попробуйте загрузить виртуальную машину с Live-системы или UEFI-совместимого образа и проверьте присутствие данных на вашем VirtIO диске. Это позволит убедиться в том, что диск не пуст и в нем действительно есть загрузочные файлы.
-
Обратитесь к дистрибутиву: Возможно, ваш дистрибутив Linux требует дополнительных параметров для корректной работы с виртуальными машинами в режиме GPU passthrough. Проверьте документацию и обновите конфигурационные файлы загрузки, если необходимо.
-
Логи и отладка: Просмотрите журналы загрузки и системные логи, чтобы оценить конкретные ошибки и сообщения, которые могут указывать на причины сбоя.
Следуя этим шагам, вы должны суметь идентифицировать и устранить причины проблем с загрузкой вашей виртуальной машины под управлением OVMF и использовать GPU как основной адаптер.