我怎样才能正确创建 /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始终存在并指向正确的设备?

编辑:是否像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_MODELID_SERIALID_TYPE的值(教程中的命令在 Ubuntu 中不再起作用?):ID_PATHudevtest

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"

相关内容