CentOS thinks Disk is busy, can't mount or fsck

Solution 1:

It's probably in use by device-mapper.

Check your device-mapper table using dmsetup table. If it's in there, clear the mapping with dmsetup remove <name>.

If not, look for errors in dmesg as well.


# dmsetup table
mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 
mpath0p1: 0 3516162552 linear 253:0 63

Ahah! multipath has claimed the disk. You can see by running multipath -ll.

Run: multipath -F to flush all unused maps then multipath -ll should output nothing.

Or, just use /dev/mapper/mpath0p1 instead of /dev/cciss/c0d0p1.

Solution 2:

In relation to the troubleshooting process, when trying lsof or fuser, don't only check against the relevant partition - check against the disk directly. This quickly would have directed you to the correct solution:


Bad:

fuser /dev/cciss/c0d0p1

Good:

fuser /dev/cciss/c0d0

Bad:

lsof /dev/c0d0p1

Good:

lsof /dev/ | grep c0d0