如何通过命令行弹出光盘/ DVD

我刚刚在Unity启动器中右键点击了DVD图标,想要弹出它,但是我错过了'弹出'按钮,而是误触了'从启动台解锁'选项。
现在启动器选项消失了,我该如何弹出光盘驱动器中的光盘呢?
6个回答

为了从驱动器中弹出光盘,无论是 CD 还是 DVD,打开终端并执行 eject 命令即可。

图标下次插入光盘后会重新出现吗? - Tom Brossman
2该图标实际上并不会在那个特定的磁盘上重新出现。会出现一个类似的图标,分辨率较低且没有弹出选项,而当您插入新的磁盘时,完整的图标将再次出现。我不确定如何撤销此操作 - 我还在研究中。 - user2405
1我觉得你需要在弹出命令后添加设备,像这样:eject /dev/sr0。 似乎默认的符号链接/dev/dvd不再默认创建,而且只有在没有参数的情况下,"eject"才适用于/dev/dvd。 - marto
通过远程shell(SSH)在Ubuntu 16.04上工作。需要使用sudo权限。 - Sopalajo de Arrierez
eject 在我使用时起作用,然后突然停止工作,并显示以下错误信息:"eject: /dev/cdrom: not found mountpoint or device with the given name"。在执行 eject /dev/sr0 后,我又可以正常使用 ejecteject -T 等命令了。 - Victoria Stuart
这甚至适用于在MacOS下无法弹出光盘的苹果Superdrive。 - benzkji

打开CD驱动器/弹出CD:

  • 使用 Ctrl+Alt+T 打开终端,然后输入 eject
  • 要关闭托盘,请输入 eject -t
  • 要切换(如果已打开,则关闭;如果已关闭,则打开),请输入 eject -T

所有这些命令都可以在运行对话框中输入(Alt+F2

要获取更多选项,请在终端中输入 eject -h


打开托盘

命令:

  • 打开托盘:eject
  • 关闭托盘:eject -t

.bashrc的简易功能

alias opentray='eject'

弹出驱动器时可能会遇到一些问题。有时候它们不想弹出,因为它们被挂载了等等。你可以使用eject -l /media/mountpoint或者/mnt/mountpoint来覆盖这个问题。我写了一个函数,只需在命令行上输入opentray即可调用。

注意事项

此方法仅在以下情况下有效:

  • 你需要为你的驱动器 /dev/sr0(与符号链接到 /dev/sr0/dev/cdrom 是同一个东西)设置一个永久挂载点
  • 当你插入光盘时,挂载点会自动创建。(如果你删除/注释掉所有包含 rm -r "${mountdir}" 的行,那么挂载点将不会被自动删除,这个可以忽略)
  • 必须以root权限运行,除非你手动更改了挂载函数的权限(我从未尝试过这样做)

function opentray ()
{
    mountdir="/media/DVD"
    if [ -d "${mountdir}" ] # If directory ${mountdir} exists
    then
        if [ $(mount | grep -c "${mountdir}") = 1 ] # If drive is mounted, then
        then
            echo "/dev/sr0 is now mounted to ${mountdir}. I'll try to unmount it first and eject/open the tray."
            umount -l "${mountdir}"
            rm -r "${mountdir}"
            sysctl -w dev.cdrom.autoclose=0 # Ensure drive doesn't auto pull tray back in.  
            eject
            exit
        else
            echo "/dev/sr0 is not mounted. Opening the tray should be easy. Ejecting/opening now."
            rm -r "${mountdir}"
            sysctl -w dev.cdrom.autoclose=0 # Ensure drive doesn't auto pull tray back in.  
            eject
            exit
        fi
    else
        echo 'The directory "${mountdir}" does not exist. Ejecting/opening the tray.'
        sysctl -w dev.cdrom.autoclose=0 # Ensure drive doesn't auto pull tray back in.
        eject
        exit
    fi
}

关闭托盘

为了完整性,您可以将此别名添加到您的.bashrc(或.bash_aliases文件)中,以便从命令行中收回托盘。您不需要使用root权限。

alias closetray='eject -t'

如果eject命令无法识别您的外部光驱,可能会失败。在这种情况下,您将需要手动识别/dev设备并运行明确的命令。如果您有一个外部USB驱动器,那么一个很好的选择是: eject /dev/sr0

Ubuntu上的eject命令的man页面中没有强制选项(-F或--force)。
您可以弹出正在使用的DVD:"busy"。
eject -m

这对我来说很有效,用一个新烧录的DVD替换一个有问题的DVD,以便继续安装。

在应用程序“终端”中输入以下内容之一:
  • eject
  • eject --force

1eject --forceeject: 未识别的选项 '--force' - karel
对于旧的内核:eject -F - Alberto Salvia Novella
1在Ubuntu 18.04上,--force 对我无效,但是 eject -v /dev/sr0 提供了有用的信息。(或者 eject -h - Paul