某些程序/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}
这些信息不是生成的,而是手写的,那么这些信息有什么用呢?
答案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"
需要该密钥来防止 udev75-cd-aliases-generator.rules
文件覆盖您的自定义规则。
答案2
我在 Fedora 论坛上发现这个可能会有帮助:
创建一个 shell 脚本文件 在该文件中输入:
#!/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 规则--------------
根据创建 /dev/cdrom 符号链接的 /lib/udev/rules.d/60-cdrom_id.rules,尝试添加包含以下内容的文件 /etc/udev/rules.d/60-dvd.rules:
KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"