Unmounting seemingly busy filesystem

Sometimes when you try to unmount a file system, Solaris refuses to do so.

bash-3.00$ fuser -c /export/home
/export/home: 20954om 19824o 16084o 11216om 11196om 10625om 4233om 4230om 1670om 915om 895om 871om 779om 740om 669o 667o 664om 657om

The output show process ID’s that are currently using filesystem and prevent you from unmounting it. You can kill all the processes and then try to unmount the filesystem. Sometimes that does not work unless -f option is used:

umount -f /export/home

When trying to mount the filesystem again, often you might get the following error:

bash-3.00# mount /export/home
mount: /dev/dsk/c0t0d0s3 is already mounted or /export/home is busy

There is a way around it and usually it seems to work. First consult /etc/mnttab and make sure the filesystem is really not mounted. Then cd to the mountpoint and make sure the mount point does not contain any files that would normally reside on that mounted filesystem. Then simply remove the mountpoint using rm and recreate it. Afterwards you should be able to mount the filesystem just fine.

I came across this somewhere on Sun site. Don’t remember where. Of course exercise caution. You are responsible for your data.