安全移除USB设备

此页由Linux Wiki用户Chenxing于2012年6月23日 (星期六) 00:46的最后更改。

出自Linux Wiki

提示:此文已超过 12 年(4566 天)未更新,如发现内容过时或有误,欢迎改进:)

Linux中没有像Windows一样的“安全删除设备”的图标,但在Linux中安全删除硬件并不复杂。

目录

图形界面

使用图形界面时,一般只需要在相应的磁盘图标上点右键,选择“卸载”即可。如果卸载失败,请确保已没有程序访问该磁盘,再试一次。[1]如果仍然失败,可以参考命令行界面的处理方法(使用sync部分)。

只要卸载成功,这种方法就是安全的,因为缓冲内容会写入磁盘,不会造成数据丢失。此时设备的工作指示灯一般不会熄灭,这与Windows XP/2003的行为有所不同,如果你一定希望此类指示灯也熄灭,请参见命令行界面的卸载方法。

命令行界面

使用eject命令

eject命令[2]曾被广泛应用于弹出光驱,实际上它也可以用于“弹出”USB、磁带等设备。只要为其指明设备名,就可以完成卸载分区等操作。使用eject通常可以让USB设备的工作指示灯熄灭。

eject的使用方法为:

eject 设备名

eject sdb

注意到eject允许用户省略设备名前如/dev,/mnt,/media之类的前缀。另外如果要卸载有多个分区的移动硬盘,这种方法也较为简便(只要给出设备名即可)。

Hint.gif
提示:
有关Linux中对设备命名的具体规则,请参见设备文件
Note.gif
TODO:
Ubuntu中使用eject命令卸载的分区会被再次自动挂载,如何解决这一问题?

使用umount卸载

使用umount命令卸载分区实现的行为与图形界面点“卸载”类似,命令格式为:

# umount 设备名或挂载点

设备名为具体的USB磁盘上分区的设备名,如/dev/sda/dev/sdb1等。

如果umount命令失败,一般是由于还在访问相应分区所导致的。注意即便是当前的工作目录在USB分区的目录内,也会导致umount失败。如果umount命令实在不能成功,请参考以下解决方法。

使用sync同步文件

系统一般会为USB设备建立缓冲区,对USB设备的读写一般都经过缓冲区,如果拔下USB设备时有缓冲区中的内容未写入USB设备,就可能导致数据丢失。umount命令执行成功时可以保证缓冲区被处理,但如果umount失败,你可以选择手动执行同步命令:[3]

sync

当umount不成功时,执行这一命令后再拔出USB设备可以大大减小丢失数据的可能性。

参考资料

  1. Ubuntu 英文论坛上的讨论
  2. et8.net上的讨论
  3. LinuxSir.org上的讨论

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换