I was actually looking for something else when I noticed that Linux umount has a "-l" option. What that does is solve the problem of "file system busy" (see Why can't I unmount my CDROM?). Well, of course it doesn't really unmount a busy file system, but it does let you say that you want that done as soon as possible, I don't know when this was added, but it works as advertised.
-l Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. (Requires kernel 2.4.11 or later.)
The following was done on a Fedora 9 system:
# create a couple of small filesystems to play with lvcreate -L 2G -n test1fs VolGroup00 lvcreate -L 2G -n test2fs VolGroup00 mkfs -t ext3 /dev/VolGroup00/test1fs mkfs -t ext3 /dev/VolGroup00/test2fs mkdir /testdir mount /dev/VolGroup00/test1fs /testfs cd /testfs
OK, now login on another screen and try to unmount that. Of course we'll be told that it is "busy":
# umount /testfs umount: /testfs: device is busy
No surprise there. To fix, we'd track down the process interfering with our desire by way of lsof or fuser, kill it off and proceed with our unmount. But with -l, we can do it now:
# umount -l /testfs
No complaints, and a check of "mount" shows it is really gone. This doesn't interfere at all with the process that still has it open: you can create new files, delete old ones, move around.. but the moment you cd off the mount, you can't get back.
But while you are there, nothing stops us from mounting something else at the same point:
mount /dev/VolGroup00/test2fs /testfs cd /testfs
In fact, as strange as it sounds, we could have mounted test1fs again.. about the only thing we can't do is "fsck /dev/VolGroup00/test1fs" - that will rightfully tell us that the device really is busy. Unfortunately, neither lsof nor fuser can tell me what process is keeping that unavailable, but there have to be limits somewhere, right?
I wouldn't recommend using this as a matter of course, but there certainly are times when it could be handy. If you know a process will finish up by itself, this can allow you to let it do so while you get on with whatever you need to do. It's a helpful addition.
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2009-11-07 Anthony Lawrence
Anyone who puts a small gloss on a fundamental technology, calls it proprietary, and then tries to keep others from building on it, is a thief. (Tim O'Reilly)