Linux 用的越多,便越想使用命令行解决所有的事情(虽然很大程度上是不可能的)。笔者经常使用移动存储介质如 U盘、移动硬盘之类的,关于如何弹出一直存在一些疑惑。

当初初学 Linux 形成的概念是 mount 挂载和 umount 卸载,按道理只要 umount 了就可以拔了吧。对于 U 盘而言,感觉没啥毛病;但对于移动硬盘,即使卸载掉所有的挂载点,它还在飞速旋转。但是如果使用 Gnome-disk 这种 GUI 工具,会明显有停止设备的选项(相当于 Windows 的弹出磁盘)。

Gnome-disk

点击之后,移动硬盘不一会就停止运转了,直接拔出感觉心里踏实多了。于是就顺手找了找有没有这种命令,还真有几种:

gio

这里我们要停止并弹出的设备为 /dev/sdbgio 也是我找到的最简洁的命令了,当然 gio 的功能远远不止此。mount 子命令控制磁盘的挂载和卸载,-t 代表停止设备:

1
gio mount -t /dev/sdb

umount 有什么差别呢,执行一个很简单的操作就明白了,相信用过 umount 的朋友都懂:

{% blockquote %}

1
ls /dev/sdb*

ls: cannot access ‘/dev/sdb*': No such file or directory

{% endblockquote %}

udisksctl

使用该命令需要先卸载挂载点,然后停止设备。使用 unmount 子命令卸载挂载点,使用 power-off 子命令可以设备:

1
2
3
4
udisksctl unmount -b /dev/sdb1
udisksctl unmount -b /dev/sdb2
udisksctl unmount -b /dev/sdb3
udisksctl power-off -b /dev/sdb

大家应该明白我想表达的意思了,这个命令没有 gio 来得方便。