我刚刚获得 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.rules
touch /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
。