This is not a problem which anyone else (using Fedora, Debian, etc) has complained about. Nor have I ever seen the problem on Lucid on my Goobuntu laptop running Lucid or Precise.
What I would suggest is that you download the e2fsprogs sources, and then after you build it, build lib/ext2fs/tst_ismounted
cd lib/ext2fs
make tst_ismounted
This is a debugging program which uses the mechanism used by e2fsprogrs to determine whether a device is busy or not:
# ./tst_ismounted /dev/closure/u1
Device /dev/closure/u1 reports flags 00
# mount /dev/closure/u1
# ./tst_ismounted /dev/closure/u1
Device /dev/closure/u1 reports flags 11
/dev/closure/u1 is apparently in use.
/dev/closure/u1 is mounted.
/dev/closure/u1 is mounted on /u1.
# umount /dev/closure/u1
# e2fsck -f /dev/closure/u1
e2fsck 1.43-WIP (21-Sep-2012)
Pass 1: Checking inodes, blocks, and sizes
^Z
[1]+ Stopped e2fsck -f /dev/closure/u1
# ./tst_ismounted /dev/closure/u1
Device /dev/closure/u1 reports flags 10
/dev/closure/u1 is apparently in use.
# ./tst_ismounted /dev/sdb1
Device /dev/sdb1 reports flags 13
/dev/sdb1 is apparently in use.
/dev/sdb1 is mounted.
/dev/sdb1 is the root filesystem.
/dev/sdb1 is mounted on /.
# ./tst_ismounted /dev/sdb5
Device /dev/sdb5 reports flags 19
/dev/sdb5 is apparently in use.
/dev/sdb5 is mounted.
/dev/sdb5 is a swap device.
/dev/sdb5 is mounted on <swap>.
This is not a problem which anyone else (using Fedora, Debian, etc) has complained about. Nor have I ever seen the problem on Lucid on my Goobuntu laptop running Lucid or Precise.
What I would suggest is that you download the e2fsprogs sources, and then after you build it, build lib/ext2fs/ tst_ismounted
cd lib/ext2fs
make tst_ismounted
This is a debugging program which uses the mechanism used by e2fsprogrs to determine whether a device is busy or not:
# ./tst_ismounted /dev/closure/u1
Device /dev/closure/u1 reports flags 00
# mount /dev/closure/u1
# ./tst_ismounted /dev/closure/u1
Device /dev/closure/u1 reports flags 11
/dev/closure/u1 is apparently in use.
/dev/closure/u1 is mounted.
/dev/closure/u1 is mounted on /u1.
# umount /dev/closure/u1
# e2fsck -f /dev/closure/u1
e2fsck 1.43-WIP (21-Sep-2012)
Pass 1: Checking inodes, blocks, and sizes
^Z
[1]+ Stopped e2fsck -f /dev/closure/u1
# ./tst_ismounted /dev/closure/u1
Device /dev/closure/u1 reports flags 10
/dev/closure/u1 is apparently in use.
# ./tst_ismounted /dev/sdb1
Device /dev/sdb1 reports flags 13
/dev/sdb1 is apparently in use.
/dev/sdb1 is mounted.
/dev/sdb1 is the root filesystem.
/dev/sdb1 is mounted on /.
# ./tst_ismounted /dev/sdb5
Device /dev/sdb5 reports flags 19
/dev/sdb5 is apparently in use.
/dev/sdb5 is mounted.
/dev/sdb5 is a swap device.
/dev/sdb5 is mounted on <swap>.