Cannot add device "is mounted" for unmounted drive that used to be in raidset that is mounted
I found out that a drive that used to be part of a raid system that is mounted and running without it, btrfs apparently decides that the drive is part of the mounted raidset and in use.
As a result, I had to eventually dd 0's over it, btrfs device scan, and finally I was able to use it again.
btrfs should probably improve its check to see that the drive is not really used and let me format it.
Longer details:
On a running system, I re-added a drive, it showed up as /dev/sdm1 I decrypted it
cryptsetup luksOpen /dev/sdm1 crypt_sdm1
But I can't add it:
polgara:/mnt/btrfs_backupcopy# btrfs device add -f /dev/mapper/crypt_sdm1 . /dev/mapper/crypt_sdm1 is mounted
however, I can format it as ext4, mount it, write to it, unmount it, and I still get the same error:
polgara:/mnt/btrfs_backupcopy# mke2fs -t ext4 /dev/mapper/crypt_sdm1 polgara:/mnt/btrfs_backupcopy# mount /dev/mapper/crypt_sdm1 /mnt/mnt polgara:/mnt/btrfs_backupcopy# Mar 23 10:48:31 polgara kernel: [38645.955263] EXT4-fs (dm-10): mounted filesystem with ordered data mode. Opts: (null) polgara:/mnt/btrfs_backupcopy# umount /mnt/mnt polgara:/mnt/btrfs_backupcopy# btrfs device add -f /dev/mapper/crypt_sdm1 . /dev/mapper/crypt_sdm1 is mounted
polgara:/mnt/btrfs_backupcopy# fuser -v /dev/mapper/crypt_sdm1 polgara:/mnt/btrfs_backupcopy# lsof -n | grep -E '(dm-10|sdm)' polgara:/mnt/btrfs_backupcopy# mkfs.btrfs -f /dev/mapper/crypt_sdm1 Error: /dev/mapper/crypt_sdm1 is mounted polgara:/mnt/btrfs_backupcopy#
In the end, I had to run
dd if=/dev/zero of=/dev/mapper/crypt_sdm1 bs=1M for btrfs to stop telling me the filesystem was mounted.
Marc
Signature · 4 lines
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/ | PGP 1024R/763BE901Quoted 5 lines · Marc MERLIN
I found out that a drive that used to be part of a raid system that is mounted and running without it, btrfs apparently decides that the drive is part of the mounted raidset and in use.
As a result, I had to eventually dd 0's over it, btrfs device scan, and finally I was able to use it again.
I filed a bug for this, it's a bit more minor, but worth fixing eventually
https://bugzilla.kernel.org/show_bug.cgi?id=72771
Marc
Signature · 4 lines
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/ Marc MERLIN posted on Sun, 23 Mar 2014 11:58:16 -0700 as excerpted:
Quoted 9 lines · Marc MERLIN
Quoted 5 lines
I found out that a drive that used to be part of a raid system that is mounted and running without it, btrfs apparently decides that the drive is part of the mounted raidset and in use.
As a result, I had to eventually dd 0's over it, btrfs device scan, and finally I was able to use it again.I filed a bug for this, it's a bit more minor, but worth fixing eventually https://bugzilla.kernel.org/show_bug.cgi?id=72771
The reason for this is the device-scanning that btrfs does, detecting btrfs superblocks in ordered to assemble filesystems from multiple devices, etc.
The canonical method for wiping such superblocks and thus avoiding btrfs detecting it as a btrfs filesystem component is to use wipefs, part of the util-linux package. I think it's covered somewhere on the wiki; let me see if I can find it...
Yes. See the problem-FAQ:
https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#How_to_clean_up_old_superblock_.3F
As you'll note, however, it mentions the dd method as a workaround if wipefs isn't available, but all you need to wipe is the 8-byte magic string. =:^) (Tho there's three superblocks and while wiping the first is generally enough and is all wipefs does, you can wipe the others too if you like as well. There are also instructions for restoring the magic string using dd, if it should be come necessary.)
Signature · 3 lines
Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman
Quoted 9 lines · Duncan
Marc MERLIN posted on Sun, 23 Mar 2014 11:58:16 -0700 as excerpted:
Quoted 7 lines · Marc MERLIN
Quoted 5 lines
I found out that a drive that used to be part of a raid system that is mounted and running without it, btrfs apparently decides that the drive is part of the mounted raidset and in use.
As a result, I had to eventually dd 0's over it, btrfs device scan, and finally I was able to use it again.
Quoted 6 lines
Quoted 2 lines
I filed a bug for this, it's a bit more minor, but worth fixing eventually https://bugzilla.kernel.org/show_bug.cgi?id=72771
The reason for this is the device-scanning that btrfs does, detecting btrfs superblocks in ordered to assemble filesystems from multiple devices, etc.
Yep, and thanks for reminding me of wipefs.
However this was still a bug to say that a device was mounted when it sure wasn't :)
I'm ok using -f because I didn't use wipefs, but being told "no you can't reformat this because it's mounted", spending too long looking what in the kernel would make it think so, and then realizing the check is wrong, isn't as user friendly :)
Marc
Signature · 4 lines
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/ Quoted 3 lines · Marc MERLIN
I found out that a drive that used to be part of a raid system that is mounted and running without it, btrfs apparently decides that the drive is part of the mounted raidset and in use.
yes. A known issue its in the list to fix.
-Anand