Bagaimana saya bisa membuat / dev / dvd dengan benar?

10

Program tertentu mencari /dev/dvdsecara default untuk menemukan DVD. Ketika saya pertama kali mem-boot komputer saya tanpa memasukkan DVD, /dev/dvdada dan menunjuk ke tempat yang benar ( /dev/sr0). Namun, ketika saya memasukkan DVD, /dev/dvdmenghilang. Saya ingin itu tetap ada sehingga saya tidak harus menavigasi ke /dev/sr0dalam program yang mencari DVD. Bagaimana saya memastikan bahwa /dev/dvdsymlink ada dan menunjuk ke tempat yang tepat?

Sepertinya saya dapat menambahkan sesuatu /etc/udev/rules.d/70-persistent-cd.rules. Situs ini memberikan beberapa contoh, tetapi 70-persistent-cd.rulesfile tersebut mengatakan "tambahkan bendera ENV {GENERATED} = 1 ke aturan Anda sendiri", yang bukan bagian dari contoh. The man 7 udevHalaman ini bisa ditembus dengan saya, dan saya tidak yakin halaman terkait memberikan 100% dari informasi yang saya butuhkan.

Jadi, apa yang dapat saya lakukan pada sistem modern, Ubuntu 12.04 (atau lebih baru) agar /dev/dvdselalu ada dan menunjuk ke perangkat yang tepat?

EDIT: Apakah sesederhana menambahkan ENV{GENERATED}=1aturan di halaman tertaut, sesuatu seperti ini:

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

Apakah itu informasi yang tepat untuk Ubuntu modern? Apa yang ENV{GENERATED}dilakukan di sana, ketika itu tidak dihasilkan, tetapi ditulis tangan?

chazomaticus
sumber
Saya mengalami masalah yang sama pada Dell Inspiron 660s. Berharap ada jawaban yang lebih baik untuk masalah ini.
Cerin

Jawaban:

8

Tutorial ini menjelaskan dengan sangat bagus bagaimana melakukan apa yang Anda inginkan:

Menurutnya, ada dua pendekatan untuk membuat symlink. Yang pertama adalah menggunakan nama model dan nomor seri:

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

Dengan cara ini, symlink akan tetap benar bahkan jika Anda memindahkan drive ke posisi berbeda di bus IDE, tetapi /dev/dvdsymlink tidak akan dibuat jika Anda mengganti drive.

Yang kedua didasarkan pada lokasi perangkat di bus:

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

Dengan cara ini, symlink akan tetap benar bahkan jika Anda mengganti drive dengan model yang berbeda, tetapi menempatkannya pada posisi yang sama di bus IDE. The ENV{ID_TYPE}key memastikan bahwa symlink menghilang jika Anda meletakkan sesuatu selain DVD di posisi itu di bus.

Anda dapat menemukan nilai-nilai untuk ID_MODEL, ID_SERIAL, ID_TYPEdan ID_PATHmenggunakan perintah berikut ( udevtestperintah seperti dalam tutorial tidak bekerja - lagi - di Ubuntu?):

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

The SUBSYSTEM=="block"kunci diperlukan untuk menghindari pencocokan SCSI perangkat generik. Tanpanya, dalam kasus dengan SCSI DVD, symlink terkadang akan menunjuk ke /dev/sr0perangkat yang benar , dan terkadang ke /dev/sg0, yang salah.

The ENV{GENERATED}="1"kunci diperlukan untuk mencegah udev 75-cd-aliases-generator.rulesfile dari override aturan kustom Anda.

Radu Rădeanu
sumber
Terima kasih atas semua informasinya. Saya pergi untuk mencoba beberapa aturan ini, tetapi menemukan bahwa /dev/dvdsymlink saya secara ajaib memperbaiki dirinya sendiri dalam beberapa bulan terakhir. Saya juga membaca di bug ini bahwa /dev/dvdhari-hari itu dinomori. Baiklah. Untuk saat ini, jawaban Anda tampaknya memberikan semua informasi yang diperlukan untuk memperbaiki masalah ini.
chazomaticus
0

Saya menemukan ini di forum fedora dapat membantu:

Buat file skrip shell Dalam file itu, masukkan:

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

Pastikan file tersebut dapat dieksekusi:

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

Jika Anda akan menggunakan rute rc.local, Anda juga perlu melakukan ini, sebagai root:

systemctl enable rc-local.service

karena tidak diaktifkan secara default

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

--------- Cara yang disukai hari ini adalah aturan UDev --------------

Berdasarkan /lib/udev/rules.d/60-cdrom_id.rules, yang membuat tautan simbolis / dev / cdrom, coba tambahkan file /etc/udev/rules.d/60-dvd.rules yang mengandung:

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