弹出/安全删除与卸载

弹出/安全删除与卸载

我使用的是 Ubuntu 12.04,当我右键单击闪存驱动器图标(在 Unity 左侧栏中)时,我看到两个让我感到困惑的选项:喷射安全移除
我越接近答案这个论坛主题,得出的结论是(对于闪存驱动器)它们都是相等的,并且也相当于使用该umount命令。然而,最后的断言似乎是错误的。
如果我umount从控制台使用卸载 flash div,然后使用命令lsblk,我仍然会看到我的设备(当然,MOUNTPOINT 下没有任何内容)。另一方面,如果我喷射或者安全移除我的闪存驱动器,lsblk不再列出。

所以,我的问题是,真正能重现行为的控制台命令是什么喷射安全移除

答案1

如果您正在使用systemd,请使用udisksctl带有选项的实用程序power-off

关闭电源

安排安全移除驱动器并关闭电源。在操作系统方面,这包括确保没有进程正在使用驱动器,然后请求将运行中的缓冲区和缓存提交到稳定的存储。

我建议首先卸载该 USB 上的所有文件系统。这也可以通过 来完成udisksctl,因此步骤是:

udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda

如果你不使用systemd那么旧的好udisks应该工作:

udisks --unmount /dev/sda1
udisks --detach /dev/sda

答案2

umount对于磁盘来说是完全安全的。一旦完成,您就成功卸载了文件系统,您不必担心这些问题。之间的主要区别喷射根本umount不关心磁盘 - 而是关心 USB 端口的 5v 电源输出。

之后umount您仍然可以看到列出的磁盘,lsblk因为它仍然处于打开状态并已连接。umount内部硬盘的文件系统,您会因为相同的原因看到相同的行为。但是当你喷射一个 USB 设备,你把它断电,它就不再像通常那样汲取 5v 电压 - 我认为它会逐渐下降到 0.5v,但这种情况发生在很久以前。

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
NAME   FSTYPE LABEL   UUID                                 MOUNTPOINT
sdd                                                        
├─sdd1 vfat   USBESP  3AD6-C7CC                            
└─sdd2 ext4   USBROOT 5afbfe93-6955-44ec-8c4f-cf381f8ef174 

这是它的 USB 总线路径...

cat /sys/bus/usb/devices/5-3/manufacturer 
SanDisk

尽管我几乎从未安装过它,但它已经插入并闪烁了很长一段时间,我猜......

cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440

我应该为此做点什么:

echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove                                      

现在我再看一遍...

cat /sys/bus/usb/devices/5-3/power/level                            
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory

嗯...

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
lsblk: /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0: not a block device

相关内容