>Вопрос: как вернуть диск из состояния "faulty spare" в рабочее?
mdadm --manage /dev/md2 --fail /dev/sdb4
mdadm --manage /dev/md2 --remove /dev/sdb4
После этого надо убедиться что /dev/sdb живой:
dd if=/dev/sdb of=/dev/null
Если споткнётся на считывании - надо заменить диск. Если всё пройдёт без проблем - тогда рекомендуется затереть ошмётки рейда на /dev/sdb4:
dd if=/dev/zero of=/dev/sdb4
Это не обязательно, но в принципе помагает избежать днекоторых довольно редко пападающихся граблей с синхронизацией членов массива. Рекомендую.
После этого добавляем диск обратно в массив:
mdadm --manage /dev/md2 --add /dev/sdb4
>Помогает перезагрузка в single mode: добавление проходит,
>начинается синхронизация, но после "telinit 3" диск снова оказывается "faulty spare".
>Ждать сутки, пока в single mode закончится синхронизация, не привлекает.
А вот это очень интересно. И весьма непонятно. Рекомендую убрать автоматическое распознавание и сборку массива на старте системы (просто убив соответствующую запись в /etc/mdadm.conf или /etc/mdadm/mdadm.conf - зависит от того какой у Вас Линух). И только после этого - telinit 3.
После того, как система успешно взлетит, проверяем наличие массивов:
mdadm --examine --scan
Далее -- ручная сборка массива:
mdadm --assemble /dev/md2 /dev/sda4
Для начала рекомендую собирать только с 1 диском. Тем, который наверняка живой.
Ну, и контрольный в голову:
mdadm --query --detail /dev/md2
Просто чтоб убедиться, что массив взлетел.
После успешного взлёта массива нужно попытаться добавить второй диск:
mdadm --manage /dev/md2 --add /dev/sdb4
И опять:
mdadm --query --detail /dev/md2
Если всё прошло нормально - массив должен начать ребилдаться.
Когда успешно закончит ребилдаться - обязательно:
fsck /dev/md2
После этого - для очистки совести:
mdadm --stop /dev/md2
и ребут системы (с отключенным автораспознаванием и сборкой массива!).
После ребута - ещё одна ручная сборка, чтоб убедиться что всё пучком, и только после этого
восстанавливать автосборку массива:
mdadm --examine --scan >> /etc/mdadm.conf (или /etc/mdadm/mdadm.conf)
Успехов!
respect,
ronin