在Linux中延迟卸载或卸载繁忙的磁盘


19

我已经读过,可以通过使用“懒惰”选项来“卸载”原本繁忙的磁盘。联机帮助页上有这样的说法:

umount-卸载文件系统

-l懒惰卸载。现在,从文件系统层次结构中分离文件系统,并在不再繁忙时清除对文件系统的所有引用。该选项允许卸载“繁忙”文件系统。(需要内核2.4.11或更高版本。)

但是,这有什么意义呢?我考虑了为什么我们要卸下所有分区:

  1. 卸下硬件
  2. 在文件系统上执行在挂载时不安全的操作

在这两种情况下,恕我直言,“懒惰”卸载的全部目的是使确定磁盘是否真正卸除变得更加困难,并且您可以实际执行这些操作。唯一的应用程序umount -l似乎是为没有经验的用户提供“感觉”,就像他们已经实现了自己没有的成就。

为什么要使用懒惰卸载?

Answers:


10

因为您很懒-您想在磁盘操作完成后卸载。

这是一个可行的方案:

您正在rsync用来执行备份并离开。您可以umount -l驱动器,并且一旦完成复制和同步,它便会卸载,因此,当您在休息后回来时(您将花费比备份更长的时间),只需拔下驱动器即可,而不必再次摆弄键盘。


如果您很懒惰,那么您肯定希望通过不必使用该参数来节省更多时间,因为一旦您回来了,您知道可以立即将其卸除,因此备份已完成?还是将驱动器卸下作为备份后操作的一部分?
deed02392

这样想:磁盘不再忙-现在将其卸载。它不再挂载,因此没有其他写入内容。这是“尽您所能”,而不是出错。
Broam 2012年


5

实际上,这样做是为了获得更多时间来执行管理任务中的后续任务。

如果正在与其他任务无关地在管道中等待,那么您可以延迟卸载并继续进行其他任务。

示例:任务1和任务2是两个连续安排的管理任务。

任务1每日备份

这一个将大量文件从项目分区复制到备份分区,例如/ mnt / backupProj,该文件将即时安装并在此任务结束时卸载。.复制需要大量时间。

任务2更新SQL视图

在专用服务器上执行一系列数据库视图更新。

任务2显然完全独立于任务1,因此我们可以延迟卸载/ mnt / backupProj,而无需等待备份任务完成。


1
你能举个例子吗?在什么情况下会“节省/节省时间”?
deed02392

4

在明显由于各种原因(例如nfs服务器关闭)而被卡住的情况下,以及当我需要查看由挂载挂载的目录的原始内容时,我会使用惰性挂载。在这两种情况下,挂载都很忙。我认为还有其他情况,但这是我使用该选项的最常见原因。


--force对于NFS情况的建议。
汤姆·黑尔

3

考虑使用绑定绑定时,您可能会看到chroot

mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc

如果您的系统上有一个不断在询问的守护程序/proc(我在看着您ksysguardd),那么您将无法执行umount /mnt/procumount在这种情况下,懒惰会允许您。


为什么不在--force这里使用呢?
汤姆·黑尔

2

USB驱动器有时会由于硬件故障而停顿。即使您物理上重新连接驱动器,也会获得另一个设备名称。旧设备名称无法正常卸载。-l强制死掉的条目消失。


1

假设您确实需要更改用于编写日志的软件(例如Web服务器)的容量,但是它具有大量流量,无法为该操作而关闭,也无法更改日志记录路径。

使用延迟卸载,您可以在软件仍在运行时安全地卸载该卷,将另一个卷安装到同一安装点上,并命令该软件重新打开文件。

理想情况下,由于您不需要关闭软件,因此也不会丢失任何请求,并且基本上也不会丢失日志条目,因为在重新打开文件之前,它们仍被写入旧的挂载中(软件处理重新打开文件的能力如何)。文件取决于软件)。

解释联机帮助页,这意味着如果在延迟卸载时该卷具有打开的文件,则实际上该卷保持安装状态,但不能通过文件系统访问,并且仅在最后一个打开的文件关闭时才真正卸载。


1
谢谢,这听起来像是一个有用的应用程序。将lsof在旧的安装点上显示打开的文件吗?我也想知道如何区分旧卷和新卷上的打开文件?
deed02392

0

我使用encfs加密部分敏感数据。

装入磁盘后,鹦鹉螺会建立预览(我想我不确定),并锁定文件。当我要卸载它时,它说它已被另一个进程锁定。

通过懒惰地卸载它,文件夹从我的层次结构中消失了,并且被隐藏了。并且当后台进程结束时,它已成功卸载。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.