Проброс физического диска в виртуальную машину Proxmox чаще всего требуется, когда внутри ВМ работает TrueNAS, Nextcloud или медиасервер, которым нужен прямой доступ к SMART и полный контроль над накопителем без прослойки виртуального диска. Если подключить диск обычным образом через веб-интерфейс, гостевая система увидит лишь виртуальный том и потеряет доступ к атрибутам здоровья диска — именно поэтому используется passthrough.

В Proxmox VE нет кнопки «пробросить диск» в графическом интерфейсе: операция выполняется через команду qm set в консоли гипервизора. Ниже разберём два рабочих способа — проброс отдельного диска целиком и проброс HBA-контроллера через PCI, а также типичные ошибки и способы их диагностики.

Подготовка: определяем нужный диск

Первое действие — точно идентифицировать накопитель, который пойдёт в виртуальную машину. Ошибка на этом этапе может привести к пробросу системного диска гипервизора и потере данных. Надёжнее всего использовать стабильные идентификаторы из каталога /dev/disk/by-id/, а не имена вида /dev/sdb, которые могут меняться после перезагрузки.

ls -l /dev/disk/by-id/

В выводе ищите строки формата ata-МодельДиска_СерийныйНомер или wwn-0x.... Именно серийный номер позволяет однозначно связать запись с физическим устройством — сверьте его с наклейкой на диске или с выводом smartctl -i /dev/sdX.

  • 🔍 Проверьте, что диск не смонтирован и не входит в состав ZFS-пула или LVM на хосте.
  • 📋 Запишите полный путь вида /dev/disk/by-id/ata-... — он понадобится для команды проброса.
  • 🧱 Убедитесь, что на диске нет раздела, используемого Proxmox (проверить можно через lsblk).
  • 💾 Сделайте резервную копию данных, если на накопителе есть что-то важное.
⚠️ Внимание: проброшенный диск нельзя одновременно использовать на хосте. Если накопитель входит в пул хранилища Proxmox, сначала выведите его из пула, иначе возможны конфликты и повреждение данных.

Способ 1: проброс диска через qm set

Основной метод — привязка физического устройства к ВМ как виртуального диска с прямым доступом. Выполняется одной командой на хосте, где 101 — ID виртуальной машины, а scsi1 — свободный слот подключения:

qm set 101 --scsi1 /dev/disk/by-id/ata-WDC_WD40EFRX-68N32N0_WD-WCC7KXXXXXXX

Тип интерфейса выбирайте осознанно. Вариант scsi с контроллером VirtIO SCSI обычно предпочтительнее: он поддерживает передачу SMART-команд в гостевую систему и горячее отключение. Вариант sata эмулирует контроллер SATA и тоже подходит, а virtio (blk) — самый быстрый, но может ограничивать доступ к SMART в зависимости от гостевой ОС.

💡

Если ВМ уже работает, диск добавится «на горячую», но надёжнее остановить машину, выполнить qm set и запустить её заново — так исключаются ошибки инициализации устройства.