Имеется RAID1, сделан через mdadm, рассыпался при сбое питания:
# mdadm -D /dev/md2
/dev/md2:
Version : 00.90.03
Creation Time : Mon Jun 30 15:30:22 2008
Raid Level : raid1
Array Size : 204796544 (195.31 GiB 209.71 GB)
Used Dev Size : 204796544 (195.31 GiB 209.71 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Fri Jul 3 22:15:39 2009
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
UUID : ad1a23ec:d3e5f6c4:2bb9068d:214a3c20
Events : 0.452106
Number Major Minor RaidDevice State
0 8 4 0 active sync /dev/sda4
1 0 0 1 removed
2 8 20 - faulty spare /dev/sdb4
Вопрос: как вернуть диск из состояния "faulty spare" в рабочее?
"mdadm /dev/md2 -r /dev/sdb4" отрабатывает,
но "mdadm /dev/md2 -a /dev/sdb4" или "--re-add" ругаются:
mdadm: add new device failed for /dev/sdb4 as 2: Invalid argument
По strace видно, что ошибка происходит при выполнении
ioctl(3, 0x40140921, 0x7fffe26586f0) на /dev/md2.
Помогает перезагрузка в single mode: добавление проходит,
начинается синхронизация, но после "telinit 3" диск снова оказывается "faulty spare".
Ждать сутки, пока в single mode закончится синхронизация, не привлекает.