Proxmox q35 vs i440fx: какой тип виртуальной машины выбрать

При пробросе видеокарты в виртуальную машину Proxmox с типом i440fx гостевая система нередко не видит устройство или падает с ошибкой драйвера — и первое, что нужно проверить в такой ситуации, это параметр Machine в настройках ВМ. Тип машины определяет, какой чипсет эмулирует гипервизор: старый Intel 440FX с шиной PCI или современный Q35 с полноценной шиной PCIe. От этого выбора зависят совместимость оборудования, производительность и даже успешная установка гостевой ОС.

В этой статье разберём технические различия между q35 и i440fx, покажем, когда какой тип выбирать, и объясним, как безопасно сменить тип машины для уже существующей виртуалки без потери данных.

Что такое тип машины в Proxmox VE

Виртуальная машина в Proxmox работает на базе QEMU/KVM, а гипервизору нужно эмулировать аппаратную платформу — материнскую плату с чипсетом, контроллерами и шинами. Параметр Machine в разделе Hardware → Options (или ключ machine: в конфигурационном файле /etc/pve/qemu-server/<VMID>.conf) как раз задаёт эту виртуальную «материнку».

Доступны два семейства: i440fx (он же pc) — эмуляция классического ПК конца 1990-х, и q35 — эмуляция более современной платформы на базе чипсета Intel Q35. Оба варианта поддерживаются Proxmox «из коробки», а кроме того, тип машины имеет версии (например, pc-q35-8.1), привязанные к версии QEMU — это важно для миграций между узлами кластера.

Технические различия q35 и i440fx

Ключевое различие — в архитектуре шины. i440fx предоставляет только устаревшую шину PCI, тогда как q35 эмулирует корневой комплекс PCIe с портами PCI Express. Для современных устройств, особенно проброшенных с хоста, это принципиально: многие PCIe-устройства ожидают именно нативную PCIe-топологию, а не мост PCI.

Есть и другие отличия, которые влияют на повседневную работу:

  • 🔌 Шина: i440fx — legacy PCI, q35 — PCIe с корневыми портами и возможностью горячего подключения.
  • 💾 Контроллеры: q35 включает более современный SATA/AHCI-контроллер и нативную поддержку AHCI без эмуляции IDE-режима.
  • 🎮 Проброс PCIe: для GPU passthrough и проброса NVMe-контроллеров рекомендуется именно q35.
  • 🖥️ UEFI: оба типа работают с OVMF, но q35 считается стандартом де-факто для UEFI-загрузки современных ОС.
  • 📟 Совместимость: i440fx лучше подходит для очень старых гостевых систем, которым нужна классическая периферия.

Стоит понимать, что «возраст» эмулируемого чипсета не влияет на скорость процессора: vCPU в обоих случаях работает через аппаратную виртуализацию KVM. Разница касается именно ввода-вывода, топологии устройств и драйверной поддержки.

Сравнительная таблица

Критерийi440fx (pc)q35
ШинаPCI (legacy)PCI Express
Проброс GPUРаботает, но с ограничениямиРекомендуемый вариант
Горячее подключение PCIeОграниченоПолноценная поддержка
Старые гостевые ОСМаксимальная совместимостьВозможны проблемы с драйверами
Современные Windows/LinuxПоддерживаетсяОптимальный выбор

Таблица отражает общую картину, но конкретное поведение зависит от версии QEMU, гостевой ОС и набора проброшенных устройств. Перед миграцией production-ВМ стоит проверить конфигурацию на тестовой копии.

📊 Какой тип машины вы используете в Proxmox чаще всего?
q35 для всех ВМ
i440fx по привычке
Зависит от задачи
Не задумывался об этом

Когда выбирать q35

Для новых виртуальных машин с современными гостевыми системами q35 — разумный выбор по умолчанию. Это особенно актуально, если планируется GPU passthrough для игровой ВМ, проброс сетевых карт с SR-IOV или подключение NVMe-накопителя напрямую в гостевую систему. В таких сценариях нативная PCIe-топология снижает риск конфликтов драйверов и ошибок вида Code 43 у видеокарт NVIDIA в гостевой Windows.

Также q35 предпочтителен, если вы используете UEFI (OVMF) с включённым Secure Boot или планируете в будущем расширять конфигурацию ВМ дополнительными PCIe-устройствами. Топология q35 даёт больше «слотов» и гибче распределяет устройства по корневым портам.

Когда оставить i440fx

Несмотря на «возраст» платформы, i440fx остаётся рабочим вариантом в ряде сценариев. Если виртуальная машина уже давно работает, стабильна и не требует проброса современных устройств — менять тип машины без необходимости не стоит. Любая смена чипсета для гостевой ОС выглядит как замена материнской платы: Windows может потребовать переустановку драйверов, а в некоторых случаях — реактивацию лицензии.

Второй случай — действительно старые гостевые системы. Дистрибутивы и ОС, рассчитанные на классическое «железо» (устаревшие версии Windows, старые Unix-подобные системы, специализированное ПО), могут некорректно работать с PCIe-топологией q35. Для них i440fx — единственный предсказуемый вариант.

⚠️ Внимание: смена типа машины с i440fx на q35 для существующей ВМ эквивалентна замене материнской платы. Перед изменением обязательно сделайте снапшот или резервную копию — откат конфигурации не всегда возвращает гостевую систему в рабочее состояние, если драйверы уже «переехали» на новую шину.

Как изменить тип машины для существующей ВМ

Процедура проста на уровне гипервизора, но требует подготовки на уровне гостевой ОС. Сначала выключите виртуальную машину — тип машины нельзя изменить «на горячую». Затем откройте Hardware → Options → Machine в веб-интерфейсе и выберите нужный тип, либо отредактируйте конфигурационный файл вручную:

qm set <VMID> --machine q35

После первой загрузки на новом чипсете гостевая Windows обычно автоматически устанавливает драйверы новых устройств — это может занять несколько минут и потребовать перезагрузки. В Linux смена чипсета, как правило, проходит безболезненно благодаря модульной архитектуре ядра, но проверьте сетевые интерфейсы: их имена могут измениться из-за новой PCI-топологии.

☑️ Безопасная смена типа машины

Выполнено: 0 / 5

Если после смены типа система не загружается, верните исходное значение параметра machine — в большинстве случаев это восстанавливает работоспособность. При повторяющихся проблемах проверьте, не привязана ли гостевая ОС к конкретным PCI-адресам устройств (например, в загрузочных записях или конфигурации сети).

Почему в конфиге ВМ указана версия типа pc-q35-8.1, а не просто q35

Версионированные типы машин фиксируют набор эмулируемого оборудования на момент конкретной версии QEMU. Это гарантирует, что при живой миграции между узлами кластера с разными версиями QEMU гостевая система увидит идентичное «железо». Указывать просто q35 можно — тогда будет использоваться версия по умолчанию для текущего QEMU.

Влияние на производительность

Прямого влияния на скорость процессора или дисковых операций тип машины не оказывает — за производительность отвечают KVM, тип дискового контроллера (VirtIO Block или VirtIO SCSI) и настройки кэша. Разница между q35 и i440fx проявляется косвенно: через качество работы проброшенных устройств и корректность работы драйверов.

На практике это означает, что переход с i440fx на q35 не ускорит вашу ВМ сам по себе, но может устранить проблемы с пробросом оборудования, которые ограничивали её возможности. Если виртуальная машина работает медленно, искать причину нужно в другом месте: типе хранилища, ballooning памяти, планировщике CPU или перегруженном хосте.

⚠️ Внимание: не меняйте одновременно тип машины и другие критичные параметры (BIOS на UEFI, тип дискового контроллера). Комбинация изменений затрудняет диагностику: при сбое будет непонятно, какое именно из них сломало загрузку. Меняйте по одному параметру с проверкой загрузки после каждого шага.

Частые вопросы

Какой тип машины выбран по умолчанию в Proxmox?

При создании ВМ через веб-интерфейс Proxmox по умолчанию предлагается i440fx. Тип можно изменить на этапе создания на вкладке System или позже в настройках Hardware → Options. Для новых машин с современными ОС имеет смысл сразу выбирать q35.

Сломается ли Windows при смене i440fx на q35?

Обычно нет: Windows обнаружит новое оборудование и установит драйверы автоматически, возможно, с перезагрузкой. Однако возможна повторная активация лицензии, так как смена чипсета воспринимается как замена материнской платы. Перед изменением сделайте снапшот.

Обязателен ли q35 для проброса видеокарты?

Формально GPU passthrough работает и на i440fx, но q35 считается рекомендуемым вариантом: нативная PCIe-топология снижает риск ошибок драйверов (в частности, известной ошибки 43 у NVIDIA) и упрощает настройку. Для новых конфигураций с пробросом выбирайте q35.

Что означает версия в названии типа, например pc-i440fx-8.1?

Это привязка эмулируемого оборудования к конкретной версии QEMU. Версионированный тип гарантирует неизменность «железа» при миграции ВМ между узлами с разными версиями гипервизора. Для одиночного хоста можно использовать неверсионированное значение.

Можно ли вернуться с q35 обратно на i440fx?

Да, параметр обратим на уровне конфигурации — достаточно вернуть прежнее значение при выключенной ВМ. Но если гостевая система уже обновила драйверы под новую шину, после отката могут потребоваться дополнительные действия по восстановлению устройств. Снапшот перед экспериментами решает эту проблему полностью.