Externes DVD-Laufwerk in LXC-Container erreichbar machen

  • Okay, ich komme nicht weiter…

    Ich habe mit der Container-Station einen LXC-Container mit Debian angelegt. Hat prima funktioniert.

    An die NAS ist per USB ein DVD-Laufwerk angeschlossen, auf das ich im Container zugreifen will.


    Auf der NAS sieht sr0 so aus:

    Code
    # ls -la /dev/sr0 
    brw------- 1 admin administrators 11, 0 2019-11-09 17:22 /dev/sr0


    In der Container config habe ich manuell zusätzliche Einträge gemacht (lxc.aa_profile, lxc.cgroup.devices.allow und lxc.mount.entry):

    Dann den Container in der Container-Station gestoppt und wieder gestartet (als das nicht reichte, habe ich auch die NAS neu gestartet).


    Dann im Container als root folgendes gemacht:

    Code
    mknod -m 666 /dev/dvdrw b 11 0


    Leider ist das DVD-Laufwerk nicht über /dev/dvdrw ansprechbar…

    Code
    root@debian-on-nas:~# dvdbackup -I -i /dev/dvdrw
    libdvdread: Could not open input: Operation not permitted
    libdvdread: Can't open /dev/dvdrw for reading
    Cannot open specified device /dev/dvdrw - check your DVD device


    Wo liegt mein Fehler :(

    Bin für jeden Fingerzeig dankbar ;(


    PS: Das meiste habe ich aus dieser ziemlich coolen Anleitung https://newspaint.wordpress.co…ice-such-as-cdrom-in-lxc/

    Einmal editiert, zuletzt von rkom ()

  • Also ich weiß nicht genau wo dein Fehler liegt, aber hier mal meine Config:

    (ich hatte die gleiche Anleitung für meinen DVD Brenner verwendet, mein Container ist eine Art eigene Linux Station, Ubuntu mit HDMI Ausgabe)


    Hier noch die qconfig

    Code: qconfig
    [/var/lib/lxc/ubuntu-HDMI] # cat qconfig 
    lxc.cgroup.devices.allow = c 14:* rwm
    lxc.cgroup.devices.allow = c 116:* rwm
    lxc.cgroup.devices.allow = c 13:* rwm
    lxc.cgroup.devices.allow = c 226:* rwm
    lxc.cgroup.devices.allow = c 4:* rwm
    lxc.cgroup.devices.allow = c 81:* rwm
    lxc.cgroup.devices.allow = b 11:* rwm

    Innerhalb des Containers rufe ich dann sudo mknod -m 666 /dev/cdrom b 11 0 auf um das Laufwerk im Container verfügbar zu machen. Danach klappt bei mir soweit alles...

  • Ich habe die ganze Zeit mit der config-Datei gearbeitet, die in dem Verzeichnis des images liegt

    (/container/container-station-data/image/lxc/debian-buster/image) - ohne jeden Effekt für die Anweisung

    lxc.cgroup.devices.allow = b 11:* rwm


    Erst als ich die Anweisungen in die debian.common.conf eingetragen hatte, funktionierte es.

    So sieht nun die debian.common.conf aus:


    Und das steht in der config-Datei:


    Bestimmt gibt es eine Erklärung, warum die Anweisungen für lxc.aa_profile und lxc.cgroup.devices.allow in der allgemeinen (common) und nicht der speziellen config stehen muss.


    Danach (als root) im Container die beiden USB-DVD-Drives einbinden mit:

    Code
    sudo mknod -m 666 /dev/dvd-verbatim b 11 0
    sudo mknod -m 666 /dev/dvd-samsung b 11 1


    Dann kann man auf die DVD-Laufwerke zugreifen. Zumindest lesend. Das reicht mir - mehr wollte ich nicht.


    PS: Die mount-entrys habe ich auskommentiert, weil sie bei mir nicht zu dem gewünschten Ergebnis führten: Im Container wurden die beiden Devices zwar angezeigt, aber ich konnte sie nicht auslesen. War dann nicht mehr motiviert genug, auch noch herauszufinden, wie das zum Laufen gebracht werden kann.


    Danke fürs Mitlesen und Mitdenken :beer:

  • Danke für's vormachen :) ich hab nun in meinem container das DVD-Laufwerk ebenfalls funktionierend, allerdings verschwindet das Gerät nach jedem Neustart aus /dev/

    warum?


    --edit


    ich hab den Fehler gefunden! und das Problem mit den Änderungen in der common.conf auch!

    du darfst nicht im Image-Ordner bearbeiten, sondern musst dich mit

    /share/Container/container-station-data/lib/lxc/[container-name]/config befassen!

    dann klappt es auch mit der Nachbarin ;) sound und dvd-Laufwerk durchgereicht, sauber.


    Klar, das config-file im Image-Ordner (/share/Container/container-station-data/image/lxc/debian-buster/image) gilt ja nur als Template für neu erstellte Container.

    Einmal editiert, zuletzt von void ()