Некоторые программы по умолчанию ищут /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
всегда существовать и указывать на правильное устройство?
РЕДАКТИРОВАТЬ: Это так просто, как добавить ENV{GENERATED}=1
] к правилам на связанной странице, что-то вроде этого:
SUBSYSTEM=="block", KERNEL=="sr0", SYMLINK+="dvd", GROUP="cdrom", ENV{GENERATED}=1
Это правильная информация для современной Ubuntu? Что ENV{GENERATED}
делает там, когда оно не было сгенерировано, а написано от руки?
Этот урок очень хорошо объясняет, как делать то, что вы хотите:
Согласно этому, есть два подхода к созданию символических ссылок. Первый - использовать название модели и серийный номер:
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
и ID_PATH
, используя следующую команду (команда udevtest
, как в учебнике, больше не работает - больше? - в Ubuntu): [ 1122]
udevadm info --query=all --name=sr0
Клавиша SUBSYSTEM=="block"
необходима для того, чтобы избежать совпадения универсальных устройств SCSI. Без этого, в случае с SCSI DVD, символическая ссылка будет иногда указывать на правильные /dev/sr0
устройства, а иногда на /dev/sg0
, что неправильно.
Ключ ENV{GENERATED}="1"
необходим для предотвращения переопределения файлом udev 75-cd-aliases-generator.rules
ваших пользовательских правил.
Я нашел это на форуме fedora, может помочь:
Создать файл сценария оболочки В этом файле укажите:
#!/bin/bash
ln -s /dev/sr0 /dev/dvd
Убедитесь, что файл исполняемый:
[ 111]Если вы собираетесь использовать маршрут rc.local, вам также нужно сделать это как root:
systemctl enable rc-local.service
, потому что он не включен по умолчанию
[ 115] источник: 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"