Как правильно создать /dev/dvd?

Как правильно создать /dev/dvd?

Некоторые программы /dev/dvdпо умолчанию ищут DVD-диски. Когда я впервые загружаю компьютер без вставленного DVD-диска, /dev/dvdсуществует и указывает на правильное место ( /dev/sr0). Однако, когда я вставляю DVD-диск, /dev/dvdисчезает. Я бы хотел, чтобы он оставался, чтобы мне не приходилось переходить к нему /dev/sr0в программах, которые ищут DVD-диски. Как мне убедиться, что /dev/dvdсимволическая ссылка существует и указывает на правильное место?

Кажется, я могу кое-что добавить /etc/udev/rules.d/70-persistent-cd.rules. Этот сайтдает пару примеров, но в 70-persistent-cd.rulesфайле сказано "добавить флаг ENV{GENERATED}=1 к вашим собственным правилам", что не является частью примеров. Страница man 7 udevдля меня непроницаема, и я не уверен, что связанная страница дает 100% нужной мне информации.

Итак, что я могу сделать в современной системе Ubuntu 12.04 (или более поздней версии), чтобы она /dev/dvdвсегда существовала и указывала на правильное устройство?

EDIT: Это так же просто, как добавить ENV{GENERATED}=1к правилам на связанной странице что-то вроде этого:

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

Это правильная информация для современного Ubuntu? Что ENV{GENERATED}там делается, когда она не была сгенерирована, а написана вручную?

решение1

В этом уроке очень хорошо объясняется, как сделать то, что вам нужно:

Согласно ему, существует два подхода к созданию символических ссылок. Первый — использовать название модели и серийный номер:

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

Таким образом, символическая ссылка останется корректной, даже если вы переместите диск в другое место на шине IDE, но символическая /dev/dvdссылка не будет создана, если вы замените диск.

Второй вариант основан на местоположении устройства на шине:

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

Таким образом, символическая ссылка останется корректной, даже если вы замените приводы на другие модели, но поместите их в те же позиции на шине IDE. Ключ ENV{ID_TYPE}гарантирует, что символическая ссылка исчезнет, ​​если вы поместите в эту позицию на шине что-то, кроме DVD.

ID_MODELЗначения для , ID_SERIALи можно найти с помощью следующей команды ( команда ID_TYPE, представленная в руководстве, больше не работает в Ubuntu):ID_PATHudevtest

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

Ключ SUBSYSTEM=="block"нужен для того, чтобы избежать сопоставления универсальных устройств SCSI. Без него, в случае с SCSI DVD, симлинк иногда будет указывать на правильные /dev/sr0устройства, а иногда на /dev/sg0, что неверно.

Ключ ENV{GENERATED}="1"необходим для предотвращения 75-cd-aliases-generator.rulesпереопределения ваших пользовательских правил файлом udev.

решение2

Я нашел это на форуме Fedora, возможно, это поможет:

Создайте файл сценария оболочки. В этом файле поместите:

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

Убедитесь, что файл является исполняемым:

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

Если вы собираетесь использовать маршрут rc.local, вам также необходимо сделать это как пользователь root:

systemctl enable rc-local.service

потому что он не включен по умолчанию

источник:http://forums.fedoraforum.org/showthread.php?t=295048

---------Предпочтительным способом в наши дни было бы правило UDev--------------

На основе /lib/udev/rules.d/60-cdrom_id.rules, который создает символическую ссылку /dev/cdrom, попробуйте добавить файл /etc/udev/rules.d/60-dvd.rules, содержащий:

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

Связанный контент