![如何通过设备上的弹出按钮卸载 DVD(外部 USB)?](https://linux22.com/image/1451906/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E8%AE%BE%E5%A4%87%E4%B8%8A%E7%9A%84%E5%BC%B9%E5%87%BA%E6%8C%89%E9%92%AE%E5%8D%B8%E8%BD%BD%20DVD%EF%BC%88%E5%A4%96%E9%83%A8%20USB%EF%BC%89%EF%BC%9F.png)
我的外置 USB DVD 驱动器有问题。一切正常,挂载、卸载或通过 shell 弹出都正常。但如果我按下设备上的弹出按钮,它只会弹出 DVD,而不会卸载它。我解决这个问题的最佳方法是使用键盘上的快捷键执行脚本。但这并不能令人满意。有没有办法用 DVD 驱动器上的普通弹出按钮解决这个问题?
谢谢你的帮助。
编辑:输出‘udevadm info --version’
175
输出'cat /lib/udev/rules.d/60-cdrom_id.rules | grep DISK_EJECT_REQUEST'
ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $tempnode", GOTO="cdrom_end"
输出‘uname -a’
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
通过插入(全部 4 个条目)和删除(无条目)输出“udevadm monitor”
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[682164.008310] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block)
UDEV [682164.057144] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block)
KERNEL[682174.005812] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block)
UDEV [682174.655906] change /devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/host0/target0:0:0/0:0:0:0/block/sr0 (block)
答案1
udisk 中有一个长期存在的“错误”会导致这种情况发生。这实际上是 udisk 的“正常”行为 - 光驱是一种边缘情况,尽管介质被移除,但驱动器仍然存在。这个问题在 ubuntu 错误跟踪器中已有报告,并建议使用 udev 进行解决方法:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1168742
您已经有一个可以卸载驱动器的脚本 - 要在光盘弹出时运行该脚本,请将以下内容添加到 udev 规则中,例如 /etc/udev/rules.d/70-unmount-cd.rules
KERNEL=="sr0", ACTION=="change", RUN+="/path/to/your/unmount/script.sh"
上面的链接里有很多有用的信息,所以也请查看一下。
呼呼!