弹出/安全删除与卸载


42

我正在使用Ubuntu 12.04,当我右键单击我的闪存驱动器图标(在Unity左栏中)时,我有两个让我感到困惑的选项:弹出安全删除
我最接近答案的是该论坛线程,该线程得出的结论是(对于闪存驱动器)它们既相等,又等同于使用该umount命令。但是,最后一个断言似乎是错误的。
如果我umount从控制台使用来卸载我的Flash lsblkDive,然后使用命令,我仍然会看到我的设备(当然,在MOUNTPOINT下没有任何内容)。另一方面,如果我弹出安全移除了闪存驱动器,lsblk则不再列出它。

因此,我的问题是,将真正重现弹出安全删除行为的控制台命令是什么?


3
您也许可以在其下找到图标的.desktop文件/usr/share/applications/或类似的文件。如果在文本编辑器中将其打开,则Exec = ...字段对应于单击该命令时运行的命令。
spelufo 2015年

Answers:


64

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

断电

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

我建议首先卸载该USB上的所有文件系统。也可以使用完成此操作udisksctl,因此步骤如下:

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

如果您不使用旧货,systemdudisks应该可以使用:

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

哦,老兄-我现在才意识到问题是如何从命令行执行此操作-而不是一件事和另一件事之间的区别是什么。我不会删除我的答案,因为我认为它提供了一些观点-但我认为,您的答案是linux系统的正确答案(甚至不知道这是否是与bsd相关的问题...)
mikeserv

4
udisksctl power-off在我看来,这并不等同于“安全删除”。在我的内部读卡器device /dev/sdd上安装了micro-SD卡,没有安装的文件系统,当我使用该命令时udisksctl power-off -b /dev/sdd,读卡器的LED熄灭,但是随后整个设备将无法使用,我想是因为它确实完全断电了。我必须重新启动系统才能再次使用。
2016年

1
对于@ack:您可以禁用/启用连接阅读器的(可能是内部)集线器。因为它是集线器,所以它也将掉落,然后重新枚举所有内容,包括丢失的设备。希望您可以阅读以下示例:udisksctl power-off -b /dev/mmcblk0mmc0:删除了aaaa的卡usb 3-1.8:USB断开连接,设备编号41 cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorized集线器3-1:1.0:找到了USB集线器usb 3-1:被授权连接usb 3-1.8:找到了新的USB设备,idVendor = 0bda,idProduct = 0129 mmc0:地址为aaaa的新超高速SDR50 SDHC卡
AB于2009年

14

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

1
谢谢。经过umount一个外部硬盘驱动器,它安全删除从计算机外部硬盘驱动器?
2015年

1
我认为这不umount等同于“安全删除”,也不是udisksctl power-off,请参阅我对其他答案的评论。例如,与Windows中的行为进行比较。我的猜测是Windows所做的不只是“卸载”设备上的文件系统。我观察到它停转外部硬盘驱动器,关闭上读卡器的LED(没有随后使该装置无法使用,除非重新插上或系统重启)等
的ack

2
@ack-Windows与这有什么关系?为什么要猜?而且您不必重新启动它即可再次使用。你umount呢。然后关闭电源。而且我从不建议任何udiskctl一种方式。
mikeserv '16

1
@mikeserv“安全删除硬件”是Windows中使用的表达式。由于用户的熟悉,其他系统很可能会复制该短语。将其与仅文件系统卸载区分开来很重要。当操作系统不确定存储设备的写缓存时,这很重要。仅卸载和拔出外部硬盘后,我个人经历了相当大的数据丢失(超级块和文件损坏)。后来我发现Linux对此发出了警告:“未找到缓存模式页面”,“假设驱动器缓存:直写”。
2016年

1
@ack-不,那并不重要。您的问题可能是您的acpi。它与操作系统没有任何关系,只是您的电路板制造商只为一个操作系统编写了驱动程序。那些小型的多卡设备需要对卡目标的较低级别的访问权限-它们必须能够执行诸如Eye-Fi之类的工作。它们不是阻止设备-它们是字符设备。它们一点都不像USB磁盘。board-rom必须单独处理它们,并且如果您的供应商对它的支持不佳(这很常见-尝试从其中一个引导),那么您很不幸。但它不是linux的问题。
mikeserv '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.