我读到过,可以使用“lazy”选项“卸载”原本繁忙的磁盘。手册页对此有如下说明:
umount—卸载文件系统
-l 延迟卸载。立即将文件系统从文件系统层次结构中分离出来,并在文件系统不再繁忙时立即清除对文件系统的所有引用。此选项允许卸载“繁忙”的文件系统。(需要内核 2.4.11 或更高版本。)
但这有什么意义呢?我考虑了一下为什么要卸载分区:
- 删除硬件
- 在文件系统上执行挂载时不安全的操作
在任何一种情况下,在我看来,“懒惰”卸载所做的一切就是让确定磁盘是否真的被卸载变得更加困难,并且您实际上可以继续执行这些操作。唯一的应用似乎umount -l
是让没有经验的用户“感觉”他们已经完成了他们没有完成的事情。
为什么要使用延迟卸载?
答案1
假设您确实需要更改软件正在写入日志的卷,例如 Web 服务器,但其流量很大,无法关闭该操作,也无法更改日志记录路径。
使用延迟卸载,您可以在软件仍在运行时安全地卸载卷,将另一个卷安装到同一安装点并命令软件重新打开文件。
理想情况下,由于您不需要关闭软件,因此不会丢失任何请求,并且基本上也不会丢失任何日志条目,因为它们仍被写入旧的挂载,直到文件重新打开(软件如何处理重新打开文件取决于软件)。
解释手册页,这意味着如果卷在延迟卸载时有打开的文件,实际上它仍然处于挂载状态,但无法通过文件系统访问,并且只有在关闭最后一个打开的文件时才会真正卸载。
答案2
因为您很懒——您想在磁盘操作完成后卸载。
这是一个可能的情况:
您使用rsync
它来执行备份,然后就可以离开了。您可以使用umount -l
驱动器,一旦完成复制和同步,它就会卸载,这样当您休息一段时间后回来时(您知道这会比备份花费更长的时间),您可以拔下驱动器,而不必再次摆弄键盘。
答案3
这样做其实是为了在行政任务上获得更多的时间来完成后续工作。
如果与此任务无关的进一步任务正在管道中等待,那么您可以延迟卸载并继续批处理中的其他任务。
例子:任务 1 和任务 2 是两个连续安排的管理任务。
任务1每日备份
它将大量文件从项目分区复制到备份分区,例如 /mnt/backupProj,该分区将在运行中挂载,并在任务结束时卸载。复制过程需要花费大量时间。
任务 2更新 SQL 视图
在专用服务器上执行一系列数据库视图更新。
任务 2 显然完全独立于任务 1,因此我们可以延迟卸载 /mnt/backupProj,而无需等待备份任务完成。
答案4
考虑使用绑定挂载,正如您在使用时可能会看到的那样chroot
:
mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc
如果你的系统上有一个守护进程不断询问/proc
(我正在看着你ksysguardd
),那么你将无法。在这种情况下,umount /mnt/proc
Lazy 会让你。umount