Wie kann ich / dev / dvd richtig erstellen?

10

Bestimmte Programme suchen /dev/dvdstandardmäßig nach DVDs. Wenn ich meinen Computer zum ersten Mal ohne eingelegte DVD starte, /dev/dvdexistiert er und zeigt auf die richtige Stelle ( /dev/sr0). Wenn ich jedoch eine DVD einlege, /dev/dvdverschwindet sie. Ich möchte, dass es bleibt, damit ich nicht /dev/sr0in Programmen navigieren muss , die nach DVDs suchen. Wie stelle ich sicher, dass der /dev/dvdSymlink vorhanden ist und auf die richtige Stelle verweist?

Es sieht so aus, als könnte ich etwas hinzufügen /etc/udev/rules.d/70-persistent-cd.rules. Diese Site enthält einige Beispiele, aber in der 70-persistent-cd.rulesDatei steht "Fügen Sie das Flag ENV {GENERATED} = 1 zu Ihren eigenen Regeln hinzu", was nicht Teil der Beispiele ist. Die man 7 udevSeite ist für mich undurchdringlich und ich bin nicht überzeugt, dass die verlinkte Seite 100% der Informationen enthält, die ich benötige.

Was kann ich also auf einem modernen Ubuntu 12.04-System (oder höher) tun, damit es /dev/dvdimmer existiert und auf das richtige Gerät verweist?

BEARBEITEN: Ist es so einfach wie das Hinzufügen ENV{GENERATED}=1zu den Regeln auf der verlinkten Seite, ungefähr so:

SUBSYSTEM=="block", KERNEL=="sr0", SYMLINK+="dvd", GROUP="cdrom", ENV{GENERATED}=1

Ist das die richtige Information für modernes Ubuntu? Was ENV{GENERATED}macht man dort, wenn es nicht generiert, sondern handgeschrieben ist?

Chazomaticus
quelle
Bei einem Dell Inspiron 660s stieß ich auf dasselbe Problem. Ich wünschte, es gäbe eine bessere Antwort auf dieses Problem.
Cerin

Antworten:

8

Dieses Tutorial erklärt sehr schön, wie man macht, was man will:

Demnach gibt es zwei Ansätze zum Erstellen von Symlinks. Der erste besteht darin, den Modellnamen und die Seriennummer zu verwenden:

SUBSYSTEM=="block", ENV{ID_MODEL}=="...", ENV{ID_SERIAL}=="...", ENV{GENERATED}="1", SYMLINK+="dvd"

Auf diese Weise bleibt der Symlink auch dann korrekt, wenn Sie das Laufwerk an eine andere Position auf dem IDE-Bus verschieben. Der /dev/dvdSymlink wird jedoch nicht erstellt, wenn Sie das Laufwerk austauschen.

Die zweite basiert auf der Position des Geräts am Bus:

SUBSYSTEM=="block", ENV{ID_TYPE}=="...", ENV{ID_PATH}=="pci-...", ENV{GENERATED}="1", SYMLINK+="dvd"

Auf diese Weise bleibt der Symlink auch dann korrekt, wenn Sie Laufwerke durch andere Modelle ersetzen, diese jedoch an denselben Positionen auf dem IDE-Bus platzieren. Der ENV{ID_TYPE}Schlüssel stellt sicher, dass der Symlink verschwindet, wenn Sie etwas anderes als eine DVD in diese Position auf dem Bus legen.

Sie können die Werte für die finden ID_MODEL, ID_SERIAL, ID_TYPEund mit ID_PATHdem folgenden Befehl (der udevtestBefehl wie in Tutorial nicht funktioniert - mehr - in Ubuntu?):

udevadm info --query=all --name=sr0

Der SUBSYSTEM=="block"Schlüssel wird benötigt, um zu vermeiden, dass generische SCSI-Geräte übereinstimmen. Ohne diese Option zeigt der Symlink im Fall einer SCSI-DVD manchmal auf die richtigen /dev/sr0Geräte und manchmal auf das /dev/sg0, was falsch ist.

Der ENV{GENERATED}="1"Schlüssel wird benötigt, um zu verhindern, dass die udev- 75-cd-aliases-generator.rulesDatei Ihre benutzerdefinierten Regeln überschreibt.

Radu Rădeanu
quelle
Danke für all die Infos. Ich habe einige dieser Regeln ausprobiert, aber festgestellt, dass sich mein /dev/dvdSymlink in den letzten Monaten auf magische Weise selbst repariert hat. Ich habe auch in diesem Fehler gelesen, dass /dev/dvddie Tage gezählt sind. Naja. Im Moment scheint Ihre Antwort alle Informationen zu enthalten, die zur Behebung dieses Problems erforderlich sind.
Chazomaticus
0

Ich fand dies in einem Fedora-Forum kann helfen:

Erstellen einer Shell-Skriptdatei Geben Sie in diese Datei Folgendes ein:

#!/bin/bash
ln -s /dev/sr0 /dev/dvd

Stellen Sie sicher, dass die Datei ausführbar ist:

sudo chmod +x /etc/rc.d/rc.local

Wenn Sie die Route rc.local verwenden möchten, müssen Sie dies auch als root tun:

systemctl enable rc-local.service

weil es nicht standardmäßig aktiviert ist

Quelle: http://forums.fedoraforum.org/showthread.php?t=295048

--------- Der heutzutage bevorzugte Weg wäre eine UDev-Regel --------------

Fügen Sie basierend auf /lib/udev/rules.d/60-cdrom_id.rules, das den symbolischen Link / dev / cdrom erstellt, eine Datei /etc/udev/rules.d/60-dvd.rules hinzu, die Folgendes enthält:

KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"
Cester Nilap
quelle