Некоторые программы /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_PATH
udevtest
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"