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

Материал из support.qbpro.ru
 
(не показано 5 промежуточных версий этого же участника)
Строка 2: Строка 2:


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


* Синтаксис команды:
* Синтаксис команды:
  qm set <vm_id> -[virtio|sata|ide|scsi][№] /dev/sd[a|b|c|...]
  '''qm set''' <vm_id> -[virtio|sata|ide|scsi][№] /dev/sd[a|b|c|...]
  vm_id — ID виртуальной машины (в графическом интерфейсе Proxmox WebGUI он указывается перед именем ВМ)
  '''vm_id''' — ID виртуальной машины (в графическом интерфейсе Proxmox WebGUI он указывается перед именем ВМ)
  [virtio|sata|ide|scsi][NOM] – тип виртуального контроллера диска и номер интерфейса
  '''[virtio|sata|ide|scsi][NOM]''' – тип виртуального контроллера диска и номер интерфейса
  /dev/sd[a|b|c…] — пробрасываемое физическое устройство
  '''/dev/sd[a|b|c…]''' — пробрасываемое физическое устройство


* Выведите список физических дисков на гипервизоре:
* Выведите список физических дисков на гипервизоре:
  # lsblk
  # lsblk


* Например, вы хотите пробросить в ВМ раздел /dev/sdb1. Можно использовать адрес устройства для проброса диска в ВМ, но это не рекомендуется. Дело в том, что путь диска может измениться при добавлении, отключении или перестановке дисков. Поэтому для проброса диска лучше использовать его UUID или серийный номер (ID).<br>
* Например, вы хотите пробросить в '''ВМ''' раздел /dev/sdb1. Можно использовать адрес устройства для проброса диска в '''ВМ''', но это не рекомендуется. Дело в том, что путь диска может измениться при добавлении, отключении или перестановке дисков. Поэтому для проброса диска лучше использовать его '''UUID''' или серийный номер '''(ID)'''.<br>
Чтобы вывести UUID, выполните:
Чтобы вывести '''UUID''', выполните:
  # blkid /dev/sdb1
  # blkid /dev/sdb1
  blkid /dev/sdb1 получить UUID диска
[[Файл:Blkid-dev-sdb1-poluchit-uuid-diska.png]]<br>
  blkid /dev/sdb1 получить '''UUID''' диска


* Если диск не отображается, нужно его предварительно разбить и отформатировать.<br>
* Если диск не отображается, нужно его предварительно разбить и отформатировать.<br>
Строка 22: Строка 23:
  # ls /dev/disk/by-uuid/
  # ls /dev/disk/by-uuid/


* Если в выводе команды нет вашего UUID, тогда придется используйте ID диска или путь к нему (/dev/sdb1).
* Если в выводе команды нет вашего '''UUID''', тогда придется используйте '''ID''' диска или путь к нему '''(/dev/sdb1)'''.
Чтобы получить идентификатор (серийный номер диска) выполните:
Чтобы получить идентификатор (серийный номер диска) выполните:
  # lshw -class disk -class storage
  # lshw -class disk -class storage


* Скопируйте значение serial. Например, Serial: GD23VZ2B
* Скопируйте значение '''serial'''. Например, '''Serial: GD23VZ2B'''
Выведите идентификаторы диска и разделов на нем по его серийному номеру:
Выведите идентификаторы диска и разделов на нем по его серийному номеру:
  # ls -l /dev/disk/by-id | grep GD23VZ2B
  # ls -l /dev/disk/by-id | grep GD23VZ2B


* Например, команда вернула вам такой ID диска: ata-WDCxxxxxx-xxxxxx_GD23VZ2B
* Например, команда вернула вам такой '''ID''' диска: a'''ta-WDCxxxxxx-xxxxxx_GD23VZ2B'''
Откройте веб-интерфейс Proxmox и запомните ID виртуальной машины, в которую вы хотите пробросить диск (119 в моем примере).
Откройте веб-интерфейс Proxmox и запомните ID виртуальной машины, в которую вы хотите пробросить диск (119 в моем примере).<br>
 
[[Файл:Nastroka-oborudovaniya-vm-proxmox.png]]<br>
* Чтобы пробросить диск в эту ВМ по UUID, выполните команду:
* Чтобы пробросить диск в эту '''ВМ''' по '''UUID''', выполните команду:
  # qm set 119 -virtio2 /dev/disk/by-uuid/0b56138b-6124-4ec4-a7a3-7c503516a65c
  # qm set 119 -virtio2 /dev/disk/by-uuid/0b56138b-6124-4ec4-a7a3-7c503516a65c


* Чтобы пробросить диск по ID диска и его серийному номеру:
* Чтобы пробросить диск по '''ID''' диска и его серийному номеру:
  # qm set  102  -virtio2 /dev/disk/by-id/ata-WDCxxxxxx-xxxxxx_GD23VZ2B
  # qm set  102  -virtio2 /dev/disk/by-id/ata-WDCxxxxxx-xxxxxx_GD23VZ2B


Строка 42: Строка 43:
  # qm set 119 -virtio2 /dev/sdb1
  # qm set 119 -virtio2 /dev/sdb1


* Убедитесь, что ваш диск был добавлен в конфигурационный файл ВМ:
* Убедитесь, что ваш диск был добавлен в конфигурационный файл '''ВМ''':
  # cat /etc/pve/qemu-server/119.conf
  # cat /etc/pve/qemu-server/119.conf


Строка 49: Строка 50:
или
или
  sata0: volume=/dev/sdb1
  sata0: volume=/dev/sdb1
* Проверьте, что новый диск появился на вкладке оборудования ВМ в интерфейсе Proxmox.
* Проверьте, что новый диск появился на вкладке оборудования '''ВМ''' в интерфейсе '''Proxmox'''.<br>
[[Файл:Probros-diska-v-virtualuyu-mashinu-proxmox.png]]<br>
После перезагрузки гипервизора проброшенный диск останется '''примонтированным''' в '''ВМ'''.
 
* Если в '''ВМ Proxmox''' установлена гостевая операционная система '''Windows''', она может не распознать новый диск. Чтобы '''Windows''' определила виртуальный диск, вам нужно установить драйвер '''VirtIO''' согласно этому гайду.
 
* Если вы пробрасываете диск с '''RAID''' контроллера, нужно использовать формат '''-virtio(x)''', а не '''-scsi(x)'''.
Чтобы отключить диск от ВМ, выполните команду:
# qm unlink 119 --idlist virtio2
 
==Проброс USB накопителя в виртуальную машину Proxmox==
 
* Вы можете пробросить любое USB устройства с хоста в виртуальную машину Proxmox прямо из веб интерфейса PVE.<br>
#Откройте веб интерфейс Proxmox VE<br>
#Найдите нужную виртуальную машину и перейдите на вкладку Hardware;<br>
#Нажмите кнопку Add -> USB Device<br>
[[Файл:Proxmox-dobavit-usb-disk.jpg]]
4. Выберите в списке USB устройство, которое нужно пробросить.Можно использовать один из двух режимов:
Use USB Vendor/Device ID – когда нужно, чтобы USB устройство было прокинуто в ВМ независимо от USB порта, куда оно подключеноUse
USB Port – проброс целиком USB порта, когда вы хотите прокинуть в ВМ любое устройство, подключенное в указанный USB порт.
* В нашем примере это Mass Storage Device. Включите опцию Use USB3 если нужно.<br>
[[Файл:Probros-usb-fleshki-v-vm-proxmox.jpg]]<br>
5. В конфигурации ВМ появится строка по подключенной 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)<br>
* Отключите USB устройство от гостевой ВМ из консоли Proxmox:
# device_del <idofyourdevice>
* Удалите USB диск из конфигурации ВМ из веб-интерфейса Proxmox или выполните команду:
# qm set VMID -delete usb0
<hr>
* [https://vmblog.ru/probros-diska-proxmox-vm/#h2_1 Источник]

Текущая версия от 20:58, 3 ноября 2023

В этой статье мы рассмотрим, как пробросить 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.

Probros-diska-v-virtualuyu-mashinu-proxmox.png
После перезагрузки гипервизора проброшенный диск останется примонтированным в ВМ.

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

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

# qm unlink 119 --idlist virtio2

Проброс USB накопителя в виртуальную машину Proxmox

  • Вы можете пробросить любое USB устройства с хоста в виртуальную машину Proxmox прямо из веб интерфейса PVE.
  1. Откройте веб интерфейс Proxmox VE
  2. Найдите нужную виртуальную машину и перейдите на вкладку Hardware;
  3. Нажмите кнопку Add -> USB Device

Proxmox-dobavit-usb-disk.jpg 4. Выберите в списке USB устройство, которое нужно пробросить.Можно использовать один из двух режимов:

Use USB Vendor/Device ID – когда нужно, чтобы USB устройство было прокинуто в ВМ независимо от USB порта, куда оно подключеноUse 
USB Port – проброс целиком USB порта, когда вы хотите прокинуть в ВМ любое устройство, подключенное в указанный USB порт.
  • В нашем примере это Mass Storage Device. Включите опцию Use USB3 если нужно.

Probros-usb-fleshki-v-vm-proxmox.jpg
5. В конфигурации ВМ появится строка по подключенной 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