注意:现在已更新答案以在 19.04 下运行
我在 14.04 上,不小心每天打开我的 cd/dvd/bluray 驱动器大约 20 次。我在这里查看了一些没有提供有效解决方案的问题。
当我这样做时,eject -i on
我遇到了eject: unable to find or open device for: 'cdrom'
当我这样做时,eject -i on /dev/sr0
我得到了更有利的回应:CD-Drive may NOT be ejected with device button
但是不幸的是该按钮仍然处于启用状态。
来自的信息/proc/sys/dev/cdrom/info
表明锁定是可能的:
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: sr0
drive speed: 24
drive # of slots: 1
Can close tray: 1
Can open tray: 1
Can lock tray: 1
Can change speed: 1
Can select disk: 0
Can read multisession: 1
Can read MCN: 1
Reports media changed: 1
Can play audio: 1
Can write CD-R: 1
Can write CD-RW: 1
This answer有一个有效的解决方案,它修复了 UDEV 规则以启用锁定驱动器。我在解决方案中添加了一些实用信息,允许您:
- 在启动时禁用光驱硬件弹出按钮
- 添加键盘快捷键以弹出光驱
- 确保驱动器从挂起状态唤醒后保持锁定状态
启用锁定驱动器
(注意:如果
eject -i on
已经有效,您可以跳到“启动时锁定驱动器”)/lib/udev/rules.d/60-cdrom_id.rules
首先,像这样复制/etc/udev/rules.d/
:接下来,编辑
/etc/udev/rules.d/60-cdrom_id.rules
并注释掉有问题的行:找到这一行:
现在在前面添加一个
#
(这个“注释掉”该行,有效地使其无效而不删除)使其看起来像这样:现在按Ctrl+保存并关闭X,然后Y确认,然后Enter接受当前文件名。不要担心它显示为一个奇怪的临时文件名,sudoedit 就是这样工作的。
现在您应该能够禁用光驱硬件按钮(基本上我们正在锁定驱动器):
eject -i on /dev/sr0
或者eject -i 1 /dev/sr0
他们也这样做。在启动时锁定驱动器
为了让它更有用,我希望这个命令在启动时生效。我使用 GUI Startup Applications程序(预装在 Ubuntu 中,用 Dash 找到它)来完成这个。
打开程序,然后单击“添加”按钮,将打开一个新对话框。
输入一个名称(我使用描述性的“锁定光驱”)并在命令:字段中输入
bash -c 'eject -i on /dev/sr0'
单击“添加”完成并关闭程序。
添加键盘快捷键
现在光盘驱动器在启动时被锁定。但是当我需要使用它时,我将如何打开驱动器?!为简单起见,我将命令放入“弹出”键盘快捷键中,该快捷键可解锁驱动器、弹出驱动器,然后重新锁定驱动器。这样我仍然可以轻松访问驱动器,但硬件按钮从来都不是问题。
以下是完成此键盘快捷键的方法:
打开在 Dash 中找到的键盘程序。
单击快捷方式选项卡
单击列表底部的自定义快捷方式
单击+号,将打开一个新对话框
命名快捷方式(我使用“解锁、弹出、重新锁定 CD”)
将其输入命令:字段:
点击应用
单击快捷方式名称右侧的已禁用。单击它后,Disabled更改为New Accelerator:
按您要使用的组合键。我用过Ctrl+ Alt+E
然后您可以立即测试快捷方式。如果一切都很好,你就完成了!
从挂起唤醒时锁定驱动器(系统前方法)
我注意到我的驱动器在从挂起状态恢复后再次解锁,因此我创建了一个脚本以确保驱动器在这种情况下保持锁定状态。
创建脚本文件:
将以下内容粘贴到新文件中:
从挂起唤醒时锁定驱动器(systemd 方法)
我现在正在使用 19.04 并注意到我的驱动器在从挂起状态恢复时正在解锁。此方法可使其保持锁定状态:
创建脚本文件:
将以下内容粘贴到新文件中:
保存并关闭文件,使其可执行,一切就绪!
对我来说,这里的信息有帮助: https ://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6
我编辑了/lib/目录中的文件,而不是/etc/ 现在在我的 Ubuntu 14.04 命令中有效: eject -i 1 /dev/sr0
试试这个使按钮不弹出:
打开:系统设置>键盘>快捷方式>声音和媒体
选择“弹出”并清除快捷方式(通过按“退格键”)。
您可以使用快捷方式设置让它做一些更有用的事情,比如打开常用的应用程序、锁定屏幕或重置 wifi。
资源:
我有一台运行 14.04 的 MacBook Pro,弹出按钮就在 Delete/Backspace 的顶部,这使得它很容易被意外按下(对于没有磁盘驱动器的 MacBook 来说更糟,因为该按钮用于电源)。使用快捷方式设置使弹出按钮锁定我的笔记本电脑。自 12.04 以来一直使用此解决方案以及介于两者之间的所有内容。
如果一切都失败了:
拿一根别针(不要用针,因为你会伤到自己),用力将它推到 DVD 驱动器上的按钮后面,然后用它作为拉出按钮的杠杆。然后取一小块塑料,宽度比产生的孔大 1 毫米,在上面涂上一些强力胶,然后将其粘在孔上,注意不要将它放在旁边的小孔上。
从现在开始,使用以下两种方法打开光驱:
在这个网站上我发现这个建议如果
eject -i 1
不起作用:sudo echo 1 > /proc/sys/dev/cdrom/lock
锁定(0 而不是 1 来解锁)还有一些其他选项也被讨论过。
这是执行另一个选项的简短 c 源代码:链接(请注意上方评论中新版本的错误修复!)
但我在其他一些论坛上读到,所有这些弹出命令只会在插入和安装磁盘时更改驱动器的锁定状态。唯一的解决方案似乎是一个名为的工具
cdctl
,但它与许多系统的兼容性不是很好,因为我研究了评论。