CD/DVD 驱动器规则:插入后挂载驱动器至“/media/DVD”

CD/DVD 驱动器规则:插入后挂载驱动器至“/media/DVD”

我刚刚获得 ubuntu 12.10。所以我是个新手。

我有一块 SATA 硬盘,其分区为 sda 1(交换)、sda 2(挂载点 /)和 sda 3(挂载点 /home)。
今天我添加了另一块内置硬盘(不是 SATA),我计划仅将其用于数据,其挂载点是 /media/sdb1。

但在添加另一个 HD 后,ubuntu 不再安装我的 dvd rw 驱动器。
我收到此错误:

挂载点介质 cdrom0 不存在

我在终端尝试过:

安装/光驱

并得到这个:

mount:在 etc/fstab 或 etc/mtab 中找不到 /cdrom

我应该怎么办?

答案1

我查看了 /dev。那里有一个名为 dvd 的文件。我输入了“ ls -al /dev/dvd ”,它告诉我这是指向 /dev/sr0 的链接。我从以下响应中推断出:

lrwxrwxrwx 1 root root 3 Apr 24 15:56 /dev/dvd -> sr0

第一个“l”表示它是一个链接,而不是一个真正的文件。

然后,我查看了 /。那里有一个名为“mnt”的目录,这是已安装外围设备的子目录的常用节点。它是空的。

我使用以下命令创建了 /mnt 的子目录:

sudo mkdir /mnt/cdrom

然后,我用以下命令将 sr0 安装在那里:

sudo mount /dev/sr0 /mnt/cdrom

为了看清楚,我看了看:

ls /mnt/cdrom

它得出了很多看起来正确的东西,所以我得出结论,它成功了。

答案2

CD/DVD 驱动器规则:插入后挂载驱动器至“/media/DVD”

如果您想要恢复自动挂载并且对其执行方式有一定的控制权,请执行此操作。

  • 插入介质后自动创建挂载点
  • 使用特定权限自动将介质安装到安装点
  • 移除介质时自动移除挂载点

操作:CD/DVD 托盘中有介质并被拉入

您必须告诉系统对此操作做出反应。您可以让它运行挂载脚本(任何自定义脚本)。为此,您需要创建新规则lib/udev/rules.d文件夹中。这些命令需要以 root 身份运行(使用sudo以下命令的前缀以 root 身份运行它们,或使用以下命令成为 root 用户sudo -s

  • 创建一个新文件并将其命名为 autodvd.rulestouch /lib/udev/rules.d
  • 通过运行查找有关您的 CD/DVD 驱动器的信息udevadm info --query=all --attribute-walk --name=/dev/sr0(这里不需要 root 权限,但两种方式都有效)查找唯一标识您的驱动器的内容(无论好坏,我都选择了ATTRS{vendor}=="HL-DT-ST",这是我的驱动器(除非您碰巧拥有与我相同的驱动器,否则您的驱动器会有所不同)。将其复制到某处以备后用。您可以花一些时间查看此文件并将其与下面的规则示例进行比较。可以在其中找到 SUBSYSTEM 和 ATTRS。
  • 编辑您的新规则(您可以使用任何您选择的编辑器,我使用vim /lib/udev/rules.d,但它nano /lib/udev/rules.d也可以工作并且很容易。添加这些内容,编辑您的 ATTRS 以匹配您的(这是敏感部分,如果它不起作用,您可能必须选择不同的属性)并更正 YOURUSER 和 YOURGROUP 字段:

KERNEL=="sr[0-9]*", SUBSYSTEM=="block", ATTRS{vendor}=="HL-DT-ST", SYMLINK+="dvdburner", OWNER="YOURUSER", GROUP="YOURGROUP" ACTION=="change",RUN+="/home/YOURUSER/Scripts/Bash/automountdvd.sh"

  • 意思KERNEL=="sr[0-9]*"是它将测试所有scsi设备(sr0-sr9)
  • SYMLINK只是驱动器的符号链接(就像/dev/cdrom真实的一样/dev/sr0

您可能需要重新加载所有 udev 规则:

udevadm control --reload rules
reload udev
udevadm trigger

挂载脚本

将以下内容保存在类似以下位置:/home/YOURUSER/Scripts/Bash/automountdvd.sh并更正 YOURUSER 和 YOURGROUP 字段。哦,顺便说一句,把这个脚本放在用户文件夹中是危险的,因为它将由 root 运行,这意味着如果有人入侵了你的用户文件夹,他们可以调整脚本来做任何他们想做的事情,然后 root 会运行它(并且很可能会成功,因为 root 用户可以完全控制系统)最好将其隐藏在只有 root 才能看到的文件夹中。如果您正在尝试,那么这样做是可以的。

#!/bin/bash
{
mountpoint="/media/DVD"
user=YOURUSER
group=YOURGROUP

uid=$(id -u ${user})
gid=$(id -g ${group})
FS_TYPE="`blkid /dev/sr0 | grep -o 'udf'`"
if [ ${FS_TYPE} == 'udf' ]; then
    echo "ID_CDROM_MEDIA set to 1, creating ${mountpoint} and attempting to mount DVD."
    mkdir -p ${mountpoint} && chown ${user}:${group} ${mountpoint}
    mount -t ${FS_TYPE} -o ro,uid=${uid},gid=${gid} /dev/sr0 ${mountpoint}
    echo "DVD mounted at ${mountpoint}."
else
    echo "Attempting to unmount -l ${mountpoint}."
    umount -l ${mountpoint}
    rm -rf ${mountpoint}
    echo "Unmounting ${mountpoint} and removing folder ${mountpoint}."
fi
} &>> "/var/log/autodvd.log" &

答案3

如果你想挂载 cd/cdrom/dvd/其他东西手动,您应该首先在目录 /dev 中查找,例如ls /dev。它可能被称为 dvd1。然后使用 挂载它sudo mkdir /mnt/dvd1 && sudo mount /dev/dvd1 /mnt/dvd1

相关内容