“安全删除驱动器”的命令行等效项是什么?

H2O*_*aCl 60 command-line nautilus usb-drive

与名为“安全删除驱动器”的 Nautilus 功能等效的命令行是什么。具体来说,我正在移除 USB 闪存驱动器。

dab*_*oss 62

udisks命令很可能是您要查找的内容。

虽然sudo unmount /dev/sdXY可行,但 udisks 可以在没有根级别 (sudo) 权限的情况下执行此操作。

如果您安装了一个驱动/dev/sdXY器,其中 X 是代表您的 USB 磁盘的字母,Y 是分​​区号(通常为 1),您可以使用以下命令安全地移除驱动器:

udisks --unmount /dev/sdXY
udisks --detach /dev/sdX
Run Code Online (Sandbox Code Playgroud)

举个实际的例子,如果我安装了分区/dev/sdb1,我会运行它来卸载和分离它:

udisks --unmount /dev/sdb1
udisks --detach /dev/sdb
Run Code Online (Sandbox Code Playgroud)

我最初是通过这个问题发现的:https : //superuser.com/a/430470/176493

使用 udisks2:

在较新的 ubuntu 发行版中(我不确定切换发生的时间),安装的是 udisks2 而不是 udisks。

镜像上述命令,使用 udisks2 卸载和分离磁盘:

udisksctl unmount -b /dev/sdXY
udisksctl power-off -b /dev/sdX
Run Code Online (Sandbox Code Playgroud)

例如,如果我的驱动器是/dev/sdb1

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb
Run Code Online (Sandbox Code Playgroud)

  • 是的,我用 `sudo` 挂载,但在尝试 `--detach` 之前我也 `umount` ed。这是一个可靠的 ubuntu 服务器版本。 (2认同)
  • @morhook 查看支持 udisks2 的更新答案! (2认同)

Bra*_*iam 24

Nautilus 装载/卸载操作的实际等效项是gvfs-mount -m -d /dev/ice /some/directorygvfs-mount -u /some/directory。这使用了 Nautilus 使用的相同 API,GIO 虚拟文件系统 (gvfs),它提供了不同的工具来使用多个服务作为挂载点,例如 smb、NFS、FTP、块设备等。

要确定您需要卸载哪个设备,只需使用gvfs-mount -l哪个就足够了。

该解决方案的特点是不需要提升权限,因为一切都由 umount/gvfsd/polkit 服务管理,这进一步类似于与 Nautilus 行为的相似性。

  • 这似乎是最正确的答案。尽管我们中的许多人习惯于将 `udisks`(在其他答案中建议)视为非 root 用户在桌面上安装和卸载可移动磁盘的“方式”,但正如此处所述,`gvfs-mount` 可能使用其他机制。(在我的 Ubuntu MATE Utopic 系统上,甚至没有安装 udisks 包。) (3认同)
  • Ubuntu 18.40 有 `gio`,它是 gvfs-mount 的替代品。 (3认同)

Rma*_*ano 14

一旦您知道设备,可能使用@rcpao answer 中df信息,“弹出”磁盘的最佳方法是,恕我直言,使用与图形界面使用的命令相同的命令:

udisksctl unmount --block-device /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

我有一个脚本可以备份到我知道将安装在 下的磁盘,/media/romano/movlin备份后我做:

sync
udisksctl unmount -b $(mount | grep movlin   | cut -d" "  -f1)
Run Code Online (Sandbox Code Playgroud)

在这里,mount | grep movlin | cut -d" " -f1将提取安装在标签“movlin”下的设备(/dev/sdc1在这种情况下),然后卸载它。


rcp*_*pa0 8

  1. df 找到您的闪存驱动器的安装点。

    rcpao@bun:~$ df
    Filesystem                   1K-blocks       Used  Available Use% Mounted on
    /dev/mapper/ubuntu--vg-root 1916153032  658404668 1160390336  37% /
    none                                 4          0          4   0% /sys/fs/cgroup
    udev                          16438692          4   16438688   1% /dev
    tmpfs                          3289976       2156    3287820   1% /run
    none                              5120          0       5120   0% /run/lock
    none                          16449860      18768   16431092   1% /run/shm
    none                            102400         48     102352   1% /run/user
    /dev/sda1                       240972      98990     129541  44% /boot
    /dev/sdc1                     60915712      20992   60894720   1% /media/rcpao/SD024-64GB
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用 /dev/sdc1 或 /media/rcpao/SD024-64GB 卸载。

    rcpao@bun:~$ sudo umount /dev/sdc1
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
    Run Code Online (Sandbox Code Playgroud)

    或者

    rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
    Run Code Online (Sandbox Code Playgroud)
  3. 卸载完成后,您应该能够在 nautilus 中看到闪存驱动器的弹出图标消失。

  • 是的,`udisks --detach` 有助于在卸载后完全分离驱动器。 (3认同)
  • `df` 看起来对于识别设备的位置非常有用。 (2认同)
  • 对于闪存驱动器,这是合理的。对于磁盘驱动器,“安全移除”也会使其减速,而此解决方案不会这样做(请参阅 DaboRoss 的答案)。 (2认同)
  • @NateEldredge:_“对于闪存驱动器来说,这是合理的......”_ – 实际上,事实并非如此,我因此而投了反对票:去年我不得不进行应用程序质量保证部署,并天真地使用了快速命令`cp /path/to /drive && umountdrive` 行。这使得 2 个闪存驱动器(暂时)无法写入,直到我意识到这是导致它的命令。在 Windows 计算机上运行“扫描和修复”修复了驱动器。DaboRoss 下面的回答要安全得多。 (2认同)

Cir*_*郝海东 5

eject弹出包中:

sudo eject /dev/sdX
Run Code Online (Sandbox Code Playgroud)

出现在umount所有分区上,并将设备置于必须删除并重新连接才能重新安装的状态。