Проброс HDD или USB диска в гостевую машину Proxmox VE

Материал из support.qbpro.ru

В этой статье мы рассмотрим, как пробросить USB накопитель (флешку) и физический жесткий диск (HDD/SSD) в виртуальную машину на Proxmox VE.

Пробросить физический диск в ВМ на Proxmox

Через веб-интерфейс Proxmox VE вы можете пробросить внутрь ВМ только USB диски/флешки. Для проброса физического жесткого диска (режим passthrough) в виртуальную машину Proxmox придется использовать консоль гипервизора. Для этого используется команда qm set.

  • Синтаксис команды:
qm set <vm_id> -[virtio|sata|ide|scsi][№] /dev/sd[a|b|c|...]
vm_id — ID виртуальной машины (в графическом интерфейсе Proxmox WebGUI он указывается перед именем ВМ)
[virtio|sata|ide|scsi][NOM] – тип виртуального контроллера диска и номер интерфейса
/dev/sd[a|b|c…] — пробрасываемое физическое устройство
  • Выведите список физических дисков на гипервизоре:
# lsblk
  • Например, вы хотите пробросить в ВМ раздел /dev/sdb1. Можно использовать адрес устройства для проброса диска в ВМ, но это не рекомендуется. Дело в том, что путь диска может измениться при добавлении, отключении или перестановке дисков. Поэтому для проброса диска лучше использовать его UUID или серийный номер (ID).

Чтобы вывести UUID, выполните:

# blkid /dev/sdb1

Blkid-dev-sdb1-poluchit-uuid-diska.png

blkid /dev/sdb1 получить UUID диска
  • Если диск не отображается, нужно его предварительно разбить и отформатировать.

Проверьте, есть ли диск в директории /by-uuid

# ls /dev/disk/by-uuid/
  • Если в выводе команды нет вашего UUID, тогда придется используйте ID диска или путь к нему (/dev/sdb1).

Чтобы получить идентификатор (серийный номер диска) выполните:

# lshw -class disk -class storage
  • Скопируйте значение serial. Например, Serial: GD23VZ2B

Выведите идентификаторы диска и разделов на нем по его серийному номеру:

# ls -l /dev/disk/by-id | grep GD23VZ2B
  • Например, команда вернула вам такой ID диска: ata-WDCxxxxxx-xxxxxx_GD23VZ2B

Откройте веб-интерфейс Proxmox и запомните ID виртуальной машины, в которую вы хотите пробросить диск (119 в моем примере).
Nastroka-oborudovaniya-vm-proxmox.png

  • Чтобы пробросить диск в эту ВМ по UUID, выполните команду:
# qm set 119 -virtio2 /dev/disk/by-uuid/0b56138b-6124-4ec4-a7a3-7c503516a65c
  • Чтобы пробросить диск по ID диска и его серийному номеру:
# qm set  102  -virtio2 /dev/disk/by-id/ata-WDCxxxxxx-xxxxxx_GD23VZ2B
  • Можно пробросить раздел по пути (не рекомендуется):
# qm set 119 -virtio2 /dev/sdb1
  • Убедитесь, что ваш диск был добавлен в конфигурационный файл ВМ:
# cat /etc/pve/qemu-server/119.conf

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

virtio0: volume=/dev/sdb1

или

sata0: volume=/dev/sdb1
  • Проверьте, что новый диск появился на вкладке оборудования ВМ в интерфейсе Proxmox.

После перезагрузки гипервизора проброшенный диск останется примонтированным в ВМ.

  • Если в ВМ Proxmox установлена гостевая операционная система Windows, она может не распознать новый диск. Чтобы Windows определила виртуальный диск, вам нужно установить драйвер VirtIO согласно этому гайду.
  • Если вы пробрасываете диск с RAID контроллера, нужно использовать формат -virtio(x), а не -scsi(x).

Чтобы отключить диск от ВМ, выполните команду:

# qm unlink 119 --idlist virtio2