USB-Stick unter Proxmox in bestimmter VM einbinden

Peleke

Lieutenant
🎅Rätsel-Elite ’08
Registriert
Feb. 2006
Beiträge
1.003
Ich habe an den Server, auf dem Proxmox läuft einen USB-Stick angesteckt, den ich jetzt gerne direkt in einer bestimmten VM (Debian 13 LXC) mounten möchte, was aber immer zu permission denied führt:

root@debian:~# fdisk -l
Disk /dev/sdb: 119.51 GiB, 128320801792 bytes, 250626566 sectors
Disk model: Flash Drive
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device Boot Start End Sectors Size Id Type
/dev/sdb1 128 250626533 250626406 119.5G 7 HPFS/NTFS/exFAT
root@debian:~# mount -t exfat /dev/sdb /media/sdb/
mount: /media/sdb: permission denied.
dmesg(1) may have more information after failed mount system call.
root@debian:~# mount -a
root@debian:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 1G 0 part
└─sda3 8:3 0 118G 0 part
sdb 8:16 1 119.5G 0 disk
└─sdb1 8:17 1 119.5G 0 part
1760820272660.png

Wie kann ich das lösen?
 
@JackForceOne
root braucht kein sudo, er ist ja schon root.

@Peleke
1760824335420.png

ist das bei dir so eingestellt? Das musste ich tun, um Dateisysteme einbinden zu können.
 
  • Gefällt mir
Reaktionen: JumpingCat und JackForceOne
Es fehlen obligatorische informationen. Ein Container ist keine VM. Ist ersterer 'unprivileged' mit UID shifting muss das Gerät auf dem Host 'other' Rechte haben. Innerhalb des Containers hat das Gerät eine 'nobody' UID.
 
  • Gefällt mir
Reaktionen: GrillSgt und CoMo
Der ganze Thread macht keinen Sinn. Im Titel steht VM, im Text steht VM (LXC) und im Screenshot ist ein LXC-Container zu sehen.

Am besten erst mal grundsätzlich verstehen, was du da eigentlich machst, bevor du irgendwelche Geräte irgendwohin durchreichen willst.

Was soll der Stick überhaupt machen? Warum wird er nicht einfach als Bind-Mount an den Container durchgereicht?

LXC: Bind Mount
VM: Virtiofs
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: JumpingCat
Krik schrieb:
Was sagt denn dmesg dazu?
root@debian:"# dmesg
dmesg: read kernel buffer failed: Operat ion not per mitted

Debian habe ich per Helper Scripts installiert, sollte mich mehr mit den unterschiedlichen Möglichkeiten von Proxmox und die Auswirkungen beschäftigen, ist mir noch nicht so klar.
Danke @CoMo
Müsste ich den als LXC anders einbinden?
 
Zuletzt bearbeitet:
Schau mal hier:
 
/dev/sdb ist das komplette Blockdevice (aber das RAWDEVICE willst ja nicht nutzen)

... du must die Partition sdb1 mounten - besser via UUID wenn der Reboot die Devices würfelt ist das sonst blöd.
 
Zuletzt bearbeitet: (UUID - Fixx)
dms schrieb:
du must die Partition sdb1 mounten - besser via UID wenn der Reboot die Devices würfelt ist das sonst blöd.
Das wäre 'via UUID'. Das ist in diesem Fall semantisch ein sehr wichtiger Unterschied, da 'via UID' mounten auch bedeuten könnte, das Dateisystem mit anderen/festen UIDs/GIDs zu mounten, die auf das Container UID Shifting zugeschnitten sind (100000/nobody->0/root).
 
dmesg kann in einem unprivilegierten LXC-Container logischerweise nicht funktionieren. Warum wird der Container über helper-scripts deployed und nicht einfach aus den Templates?

Peleke schrieb:
Müsste ich den als LXC anders einbinden?

Wie man Bind Mounts nutzt, steht in der verlinkten Doku. Was ist denn nun eigentlich das genaue Ziel?
 
  • Gefällt mir
Reaktionen: redjack1000, Der Lord und JumpingCat
Danke, habe ich eigentlich genau so gemacht, bekomme aber weiterhin den Fehler.
Ich möchte den angesteckten USB-Stick als Laufwerk mounten, um dort Downloads zu speichern:

pyload@debian:~$ ls -la /dev/disk/by-id/
total 0
drwxr-xr-x 2 root root 60 Oct 19 21:23 .
drwxr-xr-x 3 root root 60 Oct 19 21:23 ..
brw-rw-rw- 1 root root 8, 17 Oct 19 21:23 usb-Samsung_Flash_Drive_0340318080003148-0:0-part1
pyload@debian:~$ mount /dev/disk/by-id/usb-Samsung_Flash_Drive_0340318080003148-0\:0-part1 /media/sdb/
mount: /media/sdb: must be superuser to use mount.
dmesg(1) may have more information after failed mount system call.
pyload@debian:~$ su
Password:
root@debian:/home/pyload# mount /dev/disk/by-id/usb-Samsung_Flash_Drive_0340318080003148-0\:0-part1 /media/sdb/
mount: /media/sdb: permission denied.
dmesg(1) may have more information after failed mount system call.
root@debian:/home/pyload# ls
Downloads
root@debian:/home/pyload# mount /dev/disk/by-id/usb-Samsung_Flash_Drive_0340318080003148-0\:0-part1 /home/pyload/Downloads/
mount: /home/pyload/Downloads: permission denied.
dmesg(1) may have more information after failed mount system call.
root@debian:/home/pyload# mkdir sdb
root@debian:/home/pyload# mount /dev/disk/by-id/usb-Samsung_Flash_Drive_0340318080003148-0\:0-part1 /home/pyload/sdb
mount: /home/pyload/sdb: permission denied.
dmesg(1) may have more information after failed mount system call.
root@debian:/home/pyload# dmesg
dmesg: read kernel buffer failed: Operation not permitted
1760902290906.png

@mytosh: Ja, ist so eingestellt
 
Ich habe dir den Wiki-Artikel zu LXC doch verlinkt. Und erklärt, dass man das mit Bind Mounts macht. Warum willst du es unbedingt anders machen?
Ergänzung ()

Du versuchst, in einem unprivilegierten Container eine Kernel-Funktion aufzurufen.

Code:
mount: /media/sdb: permission denied.
dmesg(1) may have more information after failed mount system call.

Wenn du hier nicht mal verstehst, dass dmesg dir auf dem Host anzeigt, warum es nicht geht, dann solltest du unnötig komplizierte Konstrukte vermeiden und es einfach so machen, wie es vorgesehen ist.

Du mountest den Stick auf dem Host (in der Proxmox GUI) und editierst dann die Config deines LXC-Containers unter /etc/pve/lxc/. In etwa so:

mp0: /mnt/pve/usb-stick/,mp=/home/pyload/Downloads,mountoptions=noatime
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Der Lord
Zurück
Oben