有一段时间我脑子里有一个问题:
我有一个外部硬盘驱动器,当我想卸载它时,我只需在 Nautilus 中输入“安全删除单元”的图标(在Debian 8中使用Gnome 3.14中的Nautilus),但实际上背后的过程是什么?这是一种看看到底发生了什么的方法?某种日志?
我想第一个过程是umount /wherever/its/mount
,但我注意到当我使用umount
外部硬盘驱动器的 LED 卸载它时(当 Windows 操作系统关闭 LED 时),所以:该umount
命令也应该切断 USB 端口的电源硬盘连接在哪里?或者是另一个命令这样做?
谢谢
umount
命令本身不会切断驱动器的电源,挂载实际上意味着将驱动器上的文件系统与目录链接,所以卸载只是这样做 - 从特定目录取消挂载;就 Nautilus 文件管理器而言,这并不是它在后台使用的东西,实际上它使用标准 Gio API 中的GMount对象进行所有与 GNOME 相关的开发类型。在不给你太多困惑的情况下,让我从源代码和文档的角度来解释它。对源代码的简要搜索发现,在nautilus-file-operations.c文件中,
nautilus_file_operations_unmount_mount_full
函数调用do_unmount
,它调用g_mount_eject_with_operation
函数。最后一个属于API 的 GMount 部分。弹出将涉及同步需要写入安装、unmounting
卷或驱动器的剩余数据,然后在 USB 驱动器或光盘的情况下将其关闭。如果您期望一个可以像 Nautilus 中一样关闭驱动器的 shell 命令
udisks
,那么有一个 via orudisksctl
,如果我没记错的话udisksctl
,它带有使用的操作系统systemd
(但不要在最后一句话中引用我的话,那就是仅供参考)。这利用了UDisks2,它实际上是另一个通过D-Bus接口处理驱动器和卷的 API;它实际上非常好,我已经用于在 Ubuntu 上开发我自己的指标。所以TL;DR :
udisks
您始终可以使用 Gio API、UDisks API 或调用外部或udisksctl
命令编写自己的。也可以看看:
在 gnome 中,在 nautilus 中模拟弹出 MYUSB 驱动器的最佳方法是
它不需要 root 权限。