flummoxed why I can't umount my md device. fuser and lsof show no files locked
hi all,
A colleague of mine questioned the fact that I created my raid array using the command 'mkfs -t ext4 -v -m .1 -b 4096 -E stride=16,stripe-width=144 /dev/md0'. He said that "When creating file systems on lvm or md volumes, |mkfs.ext4| chooses an optimal geometry."
I wanted to run 'mkfs.ext4 -n /dev/md0' to see what settings it would choose that were different to mine but it keeps saying:
"/dev/md0 is apparently in use by the system; will not make a filesystem here!".
I also can't stop the array using 'mdadm --stop /dev/md0' as it says mdadm: failed to stop array /dev/md0: Device or resource busy. pretty much the same error occurs when trying lvchange -an /media/local/Raid
I've no problem with any of this except I can't find out what process has a handle on the mount and/or why. so I can't stop/kill it.
I tried lsof | grep /media/local/Raid and fuser -m /media/local/Raid to no avail. I also tried ps aux | grep Raid. I've stopped pretty much everything in init.d including samba,nfs,mediatomb,squeezebox and anything I can think of that I've installed.
Any advice/ideas please ?
cheers
Simon
Quoted 12 lines · On Mon, 20 Jun 2011 18:48:40 +0100 Simon McNair <[email protected]> wrote:
I wanted to run 'mkfs.ext4 -n
/dev/md0' to see what settings it would choose that were different to mine but it keeps saying:
"/dev/md0is apparently in use by the system; will not make a filesystem here!".I also can't stop the array using 'mdadm --stop
/dev/md0' as it says
mdadm: failed to stop array/dev/md0: Device or resource busy. pretty much the same error occurs when trying lvchange -an /media/local/RaidI've no problem with any of this except I can't find out what process has a handle on the mount and/or why. so I can't stop/kill it.
Quoted 6 lines
I tried lsof | grep /media/local/Raid and fuser -m /media/local/Raid to no avail. I also tried ps aux | grep Raid. I've stopped pretty much everything in init.d including samba,nfs,mediatomb,squeezebox and anything I can think of that I've installed.
Any advice/ideas please ?
I don't see you mention actually running "umount /media/local/Raid" (and perhaps listing the error messages you get after that). Perhaps it goes without saying and you did this, but in case not, remember that "mdadm --stop" will not try to auto-unmount the filesystem for you first.
Other ideas, AFAIK lsof and fuser won't show you a process that holds the filesystem mounted in case it doesn't have any files open there, but instead just has its *current directory* on the FS. So if you launched something while cd'ed somewhere in /media/local/Raid, and it's still running (maybe the superuser shell you currently work in?), that'd be your reason.
-
With respect,
Roman
Hi Roman,
Sorry for the stupid omission, I did try running umount /media/local/Raid to no avail. The other thing I also tried was the lazy dismount option, but it never unmounted, I did a force, then remount and dismount, but it didn't make any difference to the errors. none of the processes have a working directory in the Raid folder as it is just for storage, the OS and apps are on a separate drive entirely. I also ensured that my ssh session was not in the /media/local folder either.
I am pretty sure that I actually want the array running in order to run a mkfs against it (obviously) I just tried that as a last ditch attempt. I'm really just trying to figure out how I can find out what process has the folder locked if lsof and fuser can't tell me :-)
cheers
Simon
Quoted 35 lines · Roman Mamedov
Quoted 12 lines · On Mon, 20 Jun 2011 18:48:40 +0100 Simon McNair<[email protected]> wrote:
I wanted to run 'mkfs.ext4 -n
/dev/md0' to see what settings it would choose that were different to mine but it keeps saying:
"/dev/md0is apparently in use by the system; will not make a filesystem here!".I also can't stop the array using 'mdadm --stop
/dev/md0' as it says
mdadm: failed to stop array/dev/md0: Device or resource busy. pretty much the same error occurs when trying lvchange -an /media/local/RaidI've no problem with any of this except I can't find out what process has a handle on the mount and/or why. so I can't stop/kill it.
Quoted 6 lines
I tried lsof | grep /media/local/Raid and fuser -m /media/local/Raid to no avail. I also tried ps aux | grep Raid. I've stopped pretty much everything in init.d including samba,nfs,mediatomb,squeezebox and anything I can think of that I've installed.
Any advice/ideas please ?
I don't see you mention actually running "umount /media/local/Raid" (and perhaps listing the error messages you get after that). Perhaps it goes without saying and you did this, but in case not, remember that "mdadm --stop" will not try to auto-unmount the filesystem for you first.
Other ideas, AFAIK lsof and fuser won't show you a process that holds the filesystem mounted in case it doesn't have any files open there, but instead just has its *current directory* on the FS. So if you launched something while cd'ed somewhere in /media/local/Raid, and it's still running (maybe the superuser shell you currently work in?), that'd be your reason.
-
With respect,
Roman
Hi Simon,
Quoted 4 lines · Simon McNair
Hi Roman,
Sorry for the stupid omission, I did try running umount /media/local/Raid to no avail. The other thing I also tried was the lazy dismount option, but it never unmounted, I did a force, then remount and dismount, but it didn't make any difference to the errors. none of the processes have a working directory in the Raid folder as it is just for storage, the OS and apps are on a separate drive entirely. I also ensured that my ssh session was not in the /media/local folder either.I am pretty sure that I actually want the array running in order to run a mkfs against it (obviously) I just tried that as a last ditch attempt. I'm really just trying to figure out how I can find out what process has the folder locked if lsof and fuser can't tell me :-)
You have to consider that the kernel itself may be holding it open. The most common cause in my experience is a loop mounted file, or stacked userspace filesystem. What does lsdrv[1] say? If a loop device is active, run "losetup -a".
Phil