7

I'm trying to stop a RAID disk in order to replace it by a new one, as this one is not working properly.

I'm typing mdadm --stop /dev/md1, and I'm getting an error message:

mdadm: fail to stop array /dev/md1: Device or resource busy

I'm getting this message even if I reboot the server, and I can't see a process that could cause this.

The server is working under a Debian with a 2.6.18-4-amd64 kernel. Could you help?

Edit: More details about what my colleague tried out.

After unmounting sda1, the command mdadm --remove /dev/md0 /dev/sda1 worked. But now, we still have an error message after mdadm --remove /dev/md1 /dev/sda5:

mdadm: hot remove failed for /dev/sda5: Device or resource busy

I still don't understand completly how the different partitions are mounted, so I suppose there is something I don't understand in the currenct situation...

5
  • What type of RAID is that (0, 1, 5)? In any case, I ust modified my answer.
    – Sunny
    Jul 1, 2011 at 15:16
  • It's RAID 1 array. Jul 1, 2011 at 15:30
  • You can not stop both devices at the same time, while in use. If you can not stop the array itself by unmounting whatever partitions are mounted on it and then stopping it, you will need to migrate device by device.
    – Sunny
    Jul 1, 2011 at 15:33
  • Some more infos. Jul 1, 2011 at 15:47
  • Surprisingly, many tutorials or how-to pages indicate to remove both disks form the array, which is very misleading. Thank you again, Sunny. Jul 1, 2011 at 16:06

5 Answers 5

7

/dev/md1 is the RAID array itself. You need to stop a particular participant in that array. Try:

mdadm --fail /dev/md0 /dev/sda1
mdadm --remove /dev/md0 /dev/sda1

This is a good resource: http://www.excaliburtech.net/archives/19

If you need to move all the participating devices, then you need to do this one by one, waiting for the array to rebuild after each device swap.

2
  • Thank you. But I'm still not able to remove sda5. I edited the question... Jul 1, 2011 at 15:07
  • Ok, we changed the sdb, which is the one who is broken, and the recovery is in process. Everything back on track. Thank you! Jul 1, 2011 at 16:04
1

I delete partition table:

dd if=/dev/zero of=/dev/md0 bs=512 count=1024

then reboot then it works.

1

In my case i have to do some more tricks for XEN Server

Step # 1 dd if=/dev/zero of=/dev/md0 bs=512 count=1024

Step # 2 -- Reboot the server

Step # 3

[root@localhost ~]# mdadm --stop /dev/md0 --force

and then

[root@localhost ~]# mdadm --remove /dev/md0 --force
0

In my case the problem solved with the above commands.

mdadm --manage --fail /dev/md0
mdadm --manage --remove /dev/md0

Before executing them I wipe the /dev/md0 area using the dd command,

dd if=/dev/zero of=/dev/md0
-1

I had the same problem and after trying zillion things, this worked for me:

mdadm --manage --stop /dev/md0

That totally removed md0 from the array.

1
  • 5
    ? "--manage --stop" is the exact same thing as "--stop", so I fail to see how that would fix the problem. Feb 25, 2015 at 0:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .