AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 571068
Accepted
Insperatus
Insperatus
Asked: 2015-01-08 11:52:58 +0800 CST2015-01-08 11:52:58 +0800 CST 2015-01-08 11:52:58 +0800 CST

如何禁用笔记本电脑光驱弹出按钮并将弹出分配给键盘快捷键?

  • 772

注意:现在已更新答案以在 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
  • 5 5 个回答
  • 5413 Views

5 个回答

  • Voted
  1. Best Answer
    Insperatus
    2015-01-16T13:43:53+08:002015-01-16T13:43:53+08:00

    启用锁定驱动器

    (注意:如果eject -i on已经有效,您可以跳到“启动时锁定驱动器”)

    /lib/udev/rules.d/60-cdrom_id.rules首先,像这样复制/etc/udev/rules.d/:

    cp /lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/
    

    接下来,编辑/etc/udev/rules.d/60-cdrom_id.rules并注释掉有问题的行:

    sudoedit /etc/udev/rules.d/60-cdrom_id.rules
    

    找到这一行:

    ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
    

    现在在前面添加一个#(这个“注释掉”该行,有效地使其无效而不删除)使其看起来像这样:

    # ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
    

    现在按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”)

    • 将其输入命令:字段:

      bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
      
    • 点击应用

    • 单击快捷方式名称右侧的已禁用。单击它后,Disabled更改为New Accelerator:

    按您要使用的组合键。我用过Ctrl+ Alt+E

    然后您可以立即测试快捷方式。如果一切都很好,你就完成了!


    从挂起唤醒时锁定驱动器(系统前方法)

    我注意到我的驱动器在从挂起状态恢复后再次解锁,因此我创建了一个脚本以确保驱动器在这种情况下保持锁定状态。

    创建脚本文件:

    sudoedit /usr/lib/pm-utils/sleep.d/99lock-optical
    

    将以下内容粘贴到新文件中:

    #!/bin/sh
    # lock the optical drive upon resume from suspend
            
    case "${1}" in
        resume|thaw)
            eject -i 1 /dev/sr0    
    ;;
    esac
    

    从挂起唤醒时锁定驱动器(systemd 方法)

    我现在正在使用 19.04 并注意到我的驱动器在从挂起状态恢复时正在解锁。此方法可使其保持锁定状态:

    创建脚本文件:

    sudoedit /usr/lib/systemd/system-sleep/00start_my_connection
    

    将以下内容粘贴到新文件中:

    #!/bin/sh
    if [ $1 = post ]
      then eject -i 1 /dev/sr0
    fi
    

    保存并关闭文件,使其可执行,一切就绪!

    • 12
  2. Dima
    2015-01-09T12:14:47+08:002015-01-09T12:14:47+08:00

    对我来说,这里的信息有帮助: https ://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6

    我编辑了/lib/目录中的文件,而不是/etc/ 现在在我的 Ubuntu 14.04 命令中有效: eject -i 1 /dev/sr0

    • 1
  3. maki57
    2015-01-12T19:55:39+08:002015-01-12T19:55:39+08:00

    试试这个使按钮不弹出:

    1. 打开:系统设置>键盘>快捷方式>声音和媒体

    2. 选择“弹出”并清除快捷方式(通过按“退格键”)。

    您可以使用快捷方式设置让它做一些更有用的事情,比如打开常用的应用程序、锁定屏幕或重置 wifi。


    资源:

    我有一台运行 14.04 的 MacBook Pro,弹出按钮就在 Delete/Backspace 的顶部,这使得它很容易被意外按下(对于没有磁盘驱动器的 MacBook 来说更糟,因为该按钮用于电源)。使用快捷方式设置使弹出按钮锁定我的笔记本电脑。自 12.04 以来一直使用此解决方案以及介于两者之间的所有内容。

    • 1
  4. Fabby
    2015-01-15T05:51:43+08:002015-01-15T05:51:43+08:00

    如果一切都失败了:

    拿一根别针(不要用针,因为你会伤到自己),用力将它推到 DVD 驱动器上的按钮后面,然后用它作为拉出按钮的杠杆。然后取一小块塑料,宽度比产生的孔大 1 毫米,在上面涂上一些强力胶,然后将其粘在孔上,注意不要将它放在旁边的小孔上。

    从现在开始,使用以下两种方法打开光驱:

    1. 通过破折号使用 Ubuntu“弹出”
    2. 从现在开始,将这个救生针放在您的 PC 周围,并将其推入您的塑料片旁边的小孔中,以便在您的笔记本电脑关闭时弹出 DVD。(使用一条胶带将 life-hack 别针固定到笔记本电脑的底部)
    • 1
  5. Byte Commander
    2015-01-16T11:56:04+08:002015-01-16T11:56:04+08:00

    在这个网站上我发现这个建议如果eject -i 1不起作用:
    sudo echo 1 > /proc/sys/dev/cdrom/lock锁定(0 而不是 1 来解锁)
    还有一些其他选项也被讨论过。

    这是执行另一个选项的简短 c 源代码:链接(请注意上方评论中新版本的错误修复!)

    但我在其他一些论坛上读到,所有这些弹出命令只会在插入和安装磁盘时更改驱动器的锁定状态。唯一的解决方案似乎是一个名为的工具cdctl,但它与许多系统的兼容性不是很好,因为我研究了评论。

    • 0

相关问题

  • 安全弹出可移动 USB 驱动器的不同方法?

  • 对于永久安装的驱动器,如何隐藏 nautilus 侧边栏中的弹出图标?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve