В этой статье мы рассмотрим, как пробросить 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
Если диск не отображается, нужно его предварительно разбить и отформатировать.
Проверьте, есть ли диск в директории /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 в моем примере).
Чтобы пробросить диск в эту ВМ по 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
Проброс USB накопителя в виртуальную машину Proxmox
Вы можете пробросить любое USB устройства с хоста в виртуальную машину Proxmox прямо из веб интерфейса PVE.
- Откройте веб интерфейс Proxmox VE
- Найдите нужную виртуальную машину и перейдите на вкладку Hardware;
- Нажмите кнопку Add -> USB Device;
- Выберите в списке USB устройство, которое нужно пробросить.Можно использовать один из двух режимов:
Use USB Vendor/Device ID
– когда нужно, чтобы USB устройство было прокинуто в ВМ независимо от USB порта, куда оно подключеноUse USB Port
– проброс целиком USB порта, когда вы хотите прокинуть в ВМ любое устройство, подключенное в указанный USB порт.В нашем примере это Mass Storage Device. Включите опцию Use USB3 если нужно.
- В конфигурации ВМ появится строка по подключенной USB флешке;
- Перезагрузите ВМ и проверьте, что новый USB накопитель был опознан гостевой ОС.
Также можно пробросить USB накопитель в ВМ из командной строки. Сначала проверьте, как ваше USB устройство определилось в хостовой ОС:
# lsusb
Если это USB накопитель, выведите информацию о его разделах и файловой системе:
# fdisk -l
Чтобы пробросить USB диск в виртуальную машину Proxmox, укажите ее номер и ID USB устройства, которое вы получили с помощью команды lsusb. Например:
# qm set 110 -usb0 host=07aa:a010
Если это USB 3.0 устройство, выполните команду:
# qm set 110 -usb0 host=07aa:a010,usb3=yes
Чтобы отключить USB накопитель от виртуальной машины:
- убедитесь, что устройство не используется в вашей гостевой ОС (при отмонтировании не должна появиться ошибка unmount device is busy)
- Отключите USB устройство от гостевой ВМ из консоли Proxmox:
# device_del <idofyourdevice>
- Удалите USB диск из конфигурации ВМ из веб-интерфейса Proxmox или выполните команду:
# qm set VMID -delete usb0
5 комментариев
Составитель читал что писал натыкал команд я всю голову сломал. ГДЕ ЛОГИКА? Непонятно! то одна ГОс то другая публиковать не стыдно лучшеб не писали совсем
Давно искал эту информацию. Всё очень понятно расписано! Спасибо!
В пункте 2 про отключение usb ошибка, точней информация не полная.
на хосте надо выполнить qm monitor VMID а уже в этом режиме device_del
Вот ссылка на документацию PVE где это описано https://pve.proxmox.com/wiki/USB_Devices_in_Virtual_Machines
Поставил EMBY, подключил через USB портативный HDD, захожу в ВМ emby, нажимаю ресурсы — добавить, и только точку монтирования я могу добавить. Выпадающего списка с вариантами подключений и в помине нет. Сколько сталкиваюсь с линукс, столько бесят такие моменты. Каждый раз ввод в систему диска это квест с матершиной и битьем клавиатуры.
«»Можно пробросить раздел по пути (не рекомендуется):»»
Вы сами пробовали??? Или скопипастили статью?
По пути диска монтируется очень даже запросто. Только не раздел нужно монтировать, а Диск!
Даже если диск разбит на разделы и там есть данные, они не теряются.