LGe*_*lis 53 command-line power-management unmounting eject disk
我使用的是 Ubuntu 12.04,当我右键单击我的闪存驱动器图标(在 Unity 左侧栏中)时,我得到两个让我感到困惑的选项:弹出和安全删除.
我越接近答案是这个论坛帖子,它得出的结论是(对于闪存驱动器)它们既相同又等效于使用umount命令。然而,这最后的断言似乎是错误的。
如果我使用umount从控制台卸载我的闪现潜水,然后我使用命令lsblk,我仍然可以看到我的设备(当然,MOUNTPOINT 下没有任何内容)。另一方面,如果我弹出或安全移除我的闪存驱动器,lsblk则不再列出它。
所以,我的问题是,真正重现弹出和安全删除行为的控制台命令/命令是什么?
jim*_*mij 81
如果您正在使用,systemd则使用udisksctl带有power-off选项的实用程序:
关机
安排驱动器安全移除和断电。在操作系统方面,这包括确保没有进程正在使用驱动器,然后请求将动态缓冲区和缓存提交到稳定存储。
我建议首先卸载该 USB 上的所有文件系统。这也可以用 来完成udisksctl,所以步骤是:
udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda
Run Code Online (Sandbox Code Playgroud)
如果您不使用,systemd那么旧货udisks应该可以工作:
udisks --unmount /dev/sda1
udisks --detach /dev/sda
Run Code Online (Sandbox Code Playgroud)
mik*_*erv 17
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
Run Code Online (Sandbox Code Playgroud)
这是它的USB总线路径...
cat /sys/bus/usb/devices/5-3/manufacturer
SanDisk
Run Code Online (Sandbox Code Playgroud)
尽管我几乎从不安装它,但它已经插入并闪烁了很长时间,我想......
cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440
Run Code Online (Sandbox Code Playgroud)
我应该为此做些什么:
echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove
Run Code Online (Sandbox Code Playgroud)
现在我再看一遍……
cat /sys/bus/usb/devices/5-3/power/level
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory
Run Code Online (Sandbox Code Playgroud)
嗯...
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
Run Code Online (Sandbox Code Playgroud)