Tom*_*ale 13 linux filesystems unmounting util-linux
我读过一些umount -l不安全的地方:
如果您关心何时可以安全地拔下外部驱动器,请不要使用
umount's--lazy选项
umount --lazy是不安全的,也不能变得安全。[...]
这util-linux 通过Ruediger迈耶评论:
你应该完全避免使用
umount -l。只需杀死所有正在使用的进程,/tmp/mountpoint然后不带选项 umount 即可-l。
为什么umount -l不安全/危险?
有没有办法让它安全?
Tom*_*ale 14
有一种错误的安全感:看起来文件系统已被卸载,但实际上它只是从文件命名空间/层次结构中隐藏了。
这意味着,如果您umount -l /media/hdd将不再能够访问/media/hdd/dir/file(绝对路径名),但如果您有一个带有工作目录的进程,/media/hdd它仍然可以创建可以读/写./dir/file(相对路径名)的新进程。
如果您尝试卸载设备,您将收到一条令人困惑的消息:
# umount --force --all-targets /dev/sdb2
umount: /dev/sdb2: not mounted
Run Code Online (Sandbox Code Playgroud)
这使得设备看起来像是未安装,但仍然可以有进程写入磁盘。
由于有各种不明显的情况会导致 umount 阻塞,即使没有lsof +f -- /dev/device显示文件系统,文件系统也可能无法卸载。
你永远不会知道文件系统是否真的卸载了。没有办法查到。
如果您umount -l使用可移动磁盘,则您处于不确定状态:您无法确定所有待处理数据都已写入磁盘。
在 a 之后你可以做的最好的事情umount -l是确保所有写入完成并防止未来写入,但你仍然不能保证它已被卸载。
对于可移动设备,如果设备没有正确卸载,下次插入时可能会导致奇怪的行为:
设备将获得一个递增的设备名称,即/dev/sdb变为/dev/sdc。内核日志消息仍可能是指/dev/sdb,即使该设备不再作为下的文件/dev。(我知道解决此问题的唯一方法是重新启动。)
可能会导致 btrfs 损坏。btrfs 期望一次只存在一个具有给定 UUID 的文件系统。内核仍然会在幻像设备和新设备上看到相同的 UUID。(我不得不重建我的 btrfs 备份硬盘)。
systemd 陷阱似乎MNT_DETACH是由于使用x-systemd.mount-timeout=in/etc/fstab或 using TimeoutIdleSec=in a Automount file导致的延迟卸载。
避免上述systemd选项,尤其是使用btrfs. 我从痛苦的经历中吸取了教训(参见上面的 btrfs 参考)。
| 归档时间: |
|
| 查看次数: |
3692 次 |
| 最近记录: |