Jak mogę poprawnie utworzyć / dev / dvd?

10

Niektóre programy /dev/dvddomyślnie szukają dysków DVD. Gdy pierwszy raz uruchamiam komputer bez włożonej płyty DVD, /dev/dvdistnieje i wskazuje właściwe miejsce ( /dev/sr0). Jednak po włożeniu dysku DVD /dev/dvdznika. Chciałbym, żeby się trzymał, więc nie muszę nawigować /dev/sr0w programach, które szukają DVD. Jak mogę się upewnić, że /dev/dvddowiązanie symboliczne istnieje i wskazuje właściwe miejsce?

Wygląda na to, że mogę coś dodać /etc/udev/rules.d/70-persistent-cd.rules. Ta strona zawiera kilka przykładów, ale 70-persistent-cd.rulesplik mówi „dodaj flagę ENV {GENERATED} = 1 do własnych reguł”, co nie jest częścią przykładów. man 7 udevStrona jest nieprzepuszczalna dla mnie, a ja nie jestem przekonany, połączona strona daje 100% potrzeby informacji i.

Co więc mogę zrobić na nowoczesnym systemie Ubuntu 12.04 (lub nowszym), aby /dev/dvdzawsze istniał i wskazywał na właściwe urządzenie?

EDYCJA: Czy jest to tak proste, jak dodanie ENV{GENERATED}=1do reguł na połączonej stronie, coś takiego:

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

Czy to właściwa informacja dla współczesnego Ubuntu? Co ENV{GENERATED}tam robi, kiedy nie zostało wygenerowane, ale napisane ręcznie?

chazomaticus
źródło
Ten sam problem napotkałem na Dell Inspiron 660s. Żałuję, że nie ma lepszej odpowiedzi na ten problem.
Cerin

Odpowiedzi:

8

W tym samouczku bardzo dobrze wyjaśniono, jak robić to, co chcesz:

Zgodnie z nim istnieją dwa podejścia do tworzenia dowiązań symbolicznych. Pierwszym z nich jest użycie nazwy modelu i numeru seryjnego:

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

W ten sposób dowiązanie symboliczne pozostanie prawidłowe, nawet jeśli przemieścisz dysk do różnych pozycji na szynie IDE, ale /dev/dvddowiązanie symboliczne nie zostanie utworzone, jeśli wymienisz dysk.

Drugi oparty jest na lokalizacji urządzenia w autobusie:

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

W ten sposób dowiązanie symboliczne pozostanie prawidłowe, nawet jeśli wymienisz dyski na inne modele, ale umieścisz je w tych samych pozycjach na szynie IDE. ENV{ID_TYPE}Klucz zapewnia, że dowiązanie znika jeśli umieścić coś innego niż DVD w tej pozycji w autobusie.

Można znaleźć wartości ID_MODEL, ID_SERIAL, ID_TYPEi ID_PATHstosując następujące polecenie (z udevtestpolecenia jak w tutorialu nie działa - już - w Ubuntu?):

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

SUBSYSTEM=="block"Klucz jest potrzebny w celu uniknięcia dopasowanie urządzeń SCSI generycznych. Bez niego, w przypadku SCSI DVD, dowiązanie symboliczne będzie czasem wskazywać właściwe /dev/sr0urządzenia, a czasem /dev/sg0- co jest złe.

ENV{GENERATED}="1"Potrzebna jest kluczem do zapobiegania udev 75-cd-aliases-generator.rulesz nadrzędnych reguł niestandardowych pliku.

Radu Rădeanu
źródło
Dziękuję za wszystkie informacje. Poszedłem wypróbować niektóre z tych zasad, ale odkryłem, że moje /dev/dvddowiązanie symboliczne magicznie naprawiło się w ciągu ostatnich kilku miesięcy. Przeczytałem również w tym błędzie, że /dev/dvddni są policzone. No cóż. Na razie Twoja odpowiedź wydaje się zawierać wszystkie informacje niezbędne do rozwiązania tego problemu.
chazomaticus
0

Znalazłem to na forum fedora może pomóc:

Utwórz plik skryptu powłoki W tym pliku umieść:

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

Upewnij się, że plik jest wykonywalny:

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

Jeśli zamierzasz użyć trasy rc.local, musisz to zrobić również jako root:

systemctl enable rc-local.service

ponieważ nie jest domyślnie włączony

źródło: http://forums.fedoraforum.org/showthread.php?t=295048

--------- Preferowanym sposobem w dzisiejszych czasach byłaby reguła UDev --------------

W oparciu o /lib/udev/rules.d/60-cdrom_id.rules, który tworzy łącze symboliczne / dev / cdrom, spróbuj dodać plik /etc/udev/rules.d/60-dvd.rules zawierający:

KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"
Cester Nilap
źródło