Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:proxmox:hdd_passthrough

HDD an privilegierten Container durchreichen

Die ID's für mknode rausfinden

(15:16 root@n5-pve-cluster marko) > ls -la /dev/sdb*
brw-rw---- 1 root disk 8, 16 Jan 23 21:24 /dev/sdb
brw-rw---- 1 root disk 8, 17 Jan 23 21:24 /dev/sdb1

In diesem Fall für die Platte „8 16“ und für die Partition der Platte „8 17“.

Danach kann der Container entsprechend konfiguriert werden. /etc/pve/lxc/VM-ID.conf

#add /dev/sdb
lxc.cgroup.devices.allow = b 8:16 rwm
#add /dev/sdb1 (with ext4 partition)
lxc.cgroup.devices.allow = b 8:17 rwm

Im Anschluss den Container starten und zum testen von Hand die Blockdevices im Container anlegen.

mknod -m 666 /dev/sdb b 8 16
mknod -m 666 /dev/sdb1 b 8 17

Nun sollte man mittels

mount /dev/sdb1 /mnt/

die Festplatte im Container einbinden können und darauf Zugriff haben.

Die Feinheiten

Leider sind die Blockdevices nur temporär. Sobald man den Container neu startet sind die Blockdevices verschwunden. Ein kleines Hook Skript hilft und hier weiter

Script anlegen

/var/lib/lxc/101/mount-hook.sh

#!/bin/sh
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/sdb b 8 16
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/sdb1 b 8 17

Das Skript im Anschluss ausführbar machen:

chmod 755 /var/lib/lxc/101/mount-hook.sh

Eintrag in die Konfigdatei des Containers

Nun muss das Skript nur noch dem Container bekannt gemacht werden. Dafür in der /etc/pve/lxc/VM-ID.conf folgende Zeilen noch eintragen.

lxc.autodev: 1
lxc.hook.autodev: /var/lib/lxc/101/mount-hook.sh

Die Festplatte sollte nun automatisch in den Container eingebunden werden.

Automatischer Mount

In der Container Konfig folgendenm Eintrag

mp1: /dev/sdb1,mp=/srv,backup=0

Darauf achten das mp1 nicht bereits belegt ist. Ansonsten eine andere freie Zahl verwenden.

it-wiki/proxmox/hdd_passthrough.txt · Zuletzt geändert: 2020/02/02 16:17 von marko