使用命令行安全删除

使用命令行安全删除

我有一个外部希捷 1TB USB 硬盘。每次我将其连接到计算机时,它都会自动安装。移除时我选择safely remove选项,而不是unmount因为我在某处读到推荐它。

我有两个问题:-

  1. 确实如此卸载可能会损坏我的硬盘。我应该总是选择选项吗?(我知道和safely remove之间的区别,我还注意到卸载会将其从文件表条目中删除,但安全删除实际上会停止使用它。unmountsafely remove电源 LED安全移除后熄灭(卸载时不会发生这种情况)。

  2. 第一个问题引导我想到了这一点! 如何从命令行安全地删除我的硬盘?

(我知道怎么umount做...但即使我卸载它,它仍然显示fdiks -l 我不想要那个)

答案1

试试这个。只需按下键盘上的Ctrl+ Alt+T即可打开终端。打开后,运行以下命令:

sudo umount /dev/<device_id> 

添加/更正(如果你想按设备唯一标识即不是像“ sda3”这样的内容,而是像“ 366A52F225612...”这样的独特的长数字/十六进制字符串)使用

sudo umount /dev/disk/by-uuid/<device_id>

或者您可以使用 udisks。

sudo udisksctl unmount /dev/<device_id>

sudo fdisk -l您可以使用命令获取设备ID

如果尚未安装 udisks,请执行

sudo apt-get install udisks

更多信息请参见 udisks手册页

答案2

Ubuntu 附带 Udisks 守护程序,它允许挂载/卸载,以及对块设备(又称驱动器)执行其他一些操作,而无需sudo像命令那样mount。特别有趣的是用于拆卸/关闭驱动器的选项。

对于较新的版本,请使用udisksctl命令,特别是以下序列:

udisksctl unmount -b /dev/sdc1 && udisksctl power-off -b /dev/sdc                                                                                  

较旧版本的 Ubuntu(13.10 及更早版本)可以使用以下内容

udisks --unmount /dev/sdb1 && udisks --detach /dev/sdb

这两个命令的理念是相同的:该命令都会卸载设备然后关闭设备(如果您的 USB 设备有 LED,则不会有 LED 闪烁,也不会显示在udisksctl status或中df)。

为了方便起见,这两个命令都可以在 中制成函数~/.bashrc,例如:

drive_off(){
    # Function that unmounts and powers off a USB drive
    # Usage example: drive_off /dev/sdc1
    device=$(awk '{print substr($0,0,length($0)-1)}' <<< "$1")
    udisksctl unmount -b "$1" && udisksctl power-off -b "$device"
}

参考:ubuntuforums.org

另外,通过终端参阅 udisks 手册页以获取更多信息:man udisks

答案3

  1. 卸载不会损坏您的磁盘或数据。在磁盘仍在使用时将其拔出可能会损坏数据。卸载通常还会同步文件系统,这样就可以安全地弹出磁盘。检查 LED 是否有活动。如果您想完全确定,可以使用命令 sync,根据手册页,该命令会强制将更改的块写入磁盘并更新超级块。

  2. 显然,对于某些设备来说,在它们处于开启状态时将其拔掉是不安全的。因此,为了绝对安全,某些文件管理器提供了将设备从系统中完全移除的选项。

答案4

这些也有效(14.04):

$ udisks --mount /dev/sdi1
$ udisks --unmount /dev/sdi1

注意:不需要“sudo”,并且

$ udisks--卸载
$ udisksctl 卸载

使我的 Sandisk Imagemate(USB3.0 读卡器)上的 LED 亮起。

查找设备的其他方法

blkid-o 列表
ls -lR /dev/磁盘/

相关内容