The live CD advice is sound and is probably the easiest route.
If a filesystem is open (a long running program is resident there, someone has cd'd into a directory in that file system, etc.) then you can't unmount it.
(You appear to be aware of this, as you gave us your 'fsck', but for the benefit of others: as almost all commands require root access, you'll either need to proceed each command with "sudo", or switch to the root account with 'su -l root'. You'll need to open a terminal session to enter "line mode" commands. Be extremely careful when root.)
If you do a 'mount' command (with no options) it'll show you what device is mounted at what mountpoint in the file system.
E.g. the root filesystem ('/') shown with the 'mount' command
Code:
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
The /etc/fstab entry that caused the device to be mounted at boot time...
Code:
/dev/sda5 / ext4 errors=remount-ro 0 1
To see if a filesystem has open files on it use the 'lsof' command.
E.g.
If open files you can't 'umount' it. It'd say
Code:
umount: /: device is busy.
The easiest way to force a fsck of a filesystem that cannot be unmounted on Ubuntu, you can set the "mount count" to a value higher than the "max-mount-counts" then reboot. When the system comes back up, it will do an fsck on that filesystem as part of the reboot.
So on my little Ubuntu netbook, I can do
Code:
tune2ef -C 10000 /dev/sda5
(do a 'man tune2fs' for an explanation.)
Then reboot.
There may be an easier way to do this as I'm not terribly Debian or Ubuntu literate, but what I described should work. I invite comment from those better versed in Ubuntu than I. And as I mentioned, the live CD is a good option.