Wie kann ich /dev/dvd richtig erstellen?

Wie kann ich /dev/dvd richtig erstellen?

Bestimmte Programme suchen /dev/dvdstandardmäßig nach DVDs. Wenn ich meinen Computer zum ersten Mal starte, ohne dass eine DVD eingelegt ist, /dev/dvdist vorhanden und zeigt auf die richtige Stelle ( /dev/sr0). Wenn ich jedoch eine DVD einlege, verschwindet. Ich möchte, dass es erhalten bleibt, damit ich in Programmen, die nach DVDs suchen, /dev/dvdnicht nach navigieren muss . Wie stelle ich sicher, dass der symbolische Link vorhanden ist und auf die richtige Stelle zeigt?/dev/sr0/dev/dvd

Es sieht so aus, als könnte ich etwas hinzufügen /etc/udev/rules.d/70-persistent-cd.rules. Diese Seitegibt ein paar 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 unzugänglich und ich bin nicht überzeugt, dass die verlinkte Seite 100 % der Informationen enthält, die ich brauche.

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

BEARBEITEN: Ist es so einfach, ENV{GENERATED}=1den Regeln auf der verlinkten Seite etwas hinzuzufügen, etwa so:

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

Sind das die richtigen Informationen für das moderne Ubuntu? Was ENV{GENERATED}macht das dort, wenn es nicht generiert, sondern handgeschrieben wurde?

Antwort1

Dieses Tutorial erklärt sehr gut, wie Sie das gewünschte Ergebnis erzielen:

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 symbolische Link korrekt, auch wenn Sie das Laufwerk an eine andere Position auf dem IDE-Bus verschieben. /dev/dvdBeim Austauschen des Laufwerks wird der symbolische Link jedoch nicht erstellt.

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

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

Auf diese Weise bleibt der Symlink korrekt, auch wenn Sie Laufwerke durch andere Modelle ersetzen, diese aber an den gleichen 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 an diese Position auf dem Bus legen.

Sie können die Werte für ID_MODEL, ID_SERIAL, ID_TYPEund ID_PATHmit dem folgenden Befehl ermitteln (der udevtestBefehl im Tutorial funktioniert unter Ubuntu nicht mehr?):

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

Der SUBSYSTEM=="block"Schlüssel wird benötigt, um übereinstimmende generische SCSI-Geräte zu vermeiden. Ohne ihn wird der Symlink im Fall von SCSI-DVDs manchmal auf die richtigen /dev/sr0Geräte verweisen und manchmal auf /dev/sg0, was falsch ist.

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

Antwort2

Ich habe das hier in einem Fedora-Forum gefunden, das vielleicht hilft:

Erstellen Sie eine 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 als Root außerdem Folgendes tun:

systemctl enable rc-local.service

weil es nicht standardmäßig aktiviert ist

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

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

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

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

verwandte Informationen