[Pkg-sysvinit-devel] Unexpected problem with
/etc/mtab -> /proc/mounts
jdthood at yahoo.co.uk
Mon Jan 23 09:14:10 UTC 2006
Miquel van Smoorenburg wrote:
> In this case mount does the
> losetup for you, and it records that fact in /etc/mtab. When you
> umount /mnt/loop it also losetup -d's for you. You don't have that info
> in /proc/mounts.
> root at laptop:/mnt# mount -o loop /mnt/foo /mnt
> root at laptop:/mnt# grep /mnt /etc/mtab
> /mnt/foo /mnt ext3 rw,loop=/dev/loop0 0 0
> root at laptop:/mnt# grep /mnt /proc/mounts
> /dev/loop0 /mnt ext3 rw 0 0
> See the difference ?
Note, however, that in changing umountfs to read /proc/mounts instead of /etc/mtab
to get the list of mounts we aren't ignoring the information in mtab.
Look at umountfs in 2.86.ds1-11. A while loop reads through /proc/mounts to compile
a list of DIRS to unmount; then the script does this:
umount -f -r -d $DIRS
Now (I presume) umount will still consult /etc/mtab for each directory named and will
use any information in there that's available.
(/me now worries about what happens when a loopback mount is _not_ listed in mtab.)
I just tested the case where a loopback mount is listed in /proc/mounts but
not in /etc/mtab. The above command _does_ still unmount the loop fs.
Anyway, it's good to discuss these points.
More information about the Pkg-sysvinit-devel