mdadm: hot remove failed for…
My RAID1 is degraded and I need to replace /dev/sdb. However, I could mark /dev/sdb5 (in /dev/md1) as failed and removed it, but I can't do the same with /dev/sdb1 (/dev/md0 which is mounted on /):
root@kes:~# mdadm /dev/md0 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
root@kes:~# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Wed Apr 7 03:00:39 2010
Raid Level : raid1
Array Size : 975185536 (930.01 GiB 998.59 GB)
Used Dev Size : 975185536 (930.01 GiB 998.59 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Mon Feb 13 12:27:41 2012
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
UUID : cdc01e79:774eba08:ade2cb46:d0df0469 (local to host kes)
Events : 0.67569047
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
2 8 17 1 faulty spare rebuilding /dev/sdb1
root@kes:~# mdadm /dev/md0 --remove /dev/sdb1
mdadm: hot remove failed for /dev/sdb1: Device or resource busy
So what am I doing wrong?
Try:
echo "idle" > /sys/block/md0/md/sync_action
mdadm /dev/md0 --remove /dev/sdb1
worked for me.