Вопрос или проблема
У меня есть массив RAID1 из двух жестких дисков, один из которых недавно вышел из строя, но я не могу просто заменить сломанный диск. mdadm --detail
сообщила, что первый слот диска sda был удален (что физически так и есть), а второй слот диска sdb – это тот, который все еще работает (активен, синхронизирован). sdb был недавно заменен, поэтому данные в безопасности. Но когда я пытаюсь добавить диск с помощью mdadm /dev/md127 --add /dev/sdx
, возвращается ошибка:
$ sudo mdadm /dev/md127 --add /dev/sdx1
mdadm: добавление нового устройства для /dev/sdx1 не удалось, ошибка 3: Неверный аргумент
dmesg показывает следующее:
[ xx.xx] md: sdx1 не имеет действительного суперблока v1.2, не импортируется!
[ xx.xx] md: md_import_device вернул -22
Я подтвердил с помощью parted, что размер раздела sdx1 точно такой же, как и у sdb1 (сектора и байты). Также после --add
диск, хотя возникает ошибка, lsblk показывает, что для массива на sda1 уже имеются метаданные.
Переведено с помощью DeepL
Ответ или решение
Проблема с заменой диска в RAID1 массиве с помощью mdadm: хроника неудачи и пути решения
В рамках работы с RAID1 массивами в среде Linux, вы столкнулись с распространенной ситуацией, когда один из жестких дисков вышел из строя, а попытка его замены вызывает серию ошибок. Давайте разберем причины неудачи и возможные шаги для решения этой проблемы.
1. Анализ возникшей ситуации
На данный момент у вас есть массив RAID1, состоящий из двух дисков, где один был заменен. Команда mdadm --detail /dev/md127
показывает, что диск /dev/sda был удален, а /dev/sdb активен и синхронизирован.
При попытке добавить новый диск (в вашем случае /dev/sdx1) в массив возникла ошибка:
mdadm: add new device failed for /dev/sdx1 as 3: Invalid argument
Кроме того, сообщения в журнале dmesg указывают на то, что новый диск не имеет действительного суперблока v1.2, что также подтверждает такие ошибки.
2. Возможные причины ошибки
-
Отсутствие суперблока: Комплексный RAID массив использует специальные метаданные или суперблоки для управления состоянием дисков. Если на новом диске не настроены вспомогательные данные, то система его не распознает.
-
Ошибки в разделах: Необходимо удостовериться, что структура и размер разделов на новом диске соответствуют исходному массиву.
-
Проблемы с совместимостью: Использование неподходящего или устаревшего формата для суперблоков может также повлиять на успешное добавление диска.
3. Решения и рекомендации
3.1 Восстановление суперблока
Если вы уверены, что диск физически исправен, вам может понадобиться инициализировать его для работы с mdadm. Выполните следующие шаги:
-
Создание нового суперблока: Вы можете попытаться создать новый суперблок на новом диске, используя следующую команду:
sudo mdadm --examine --scan > /tmp/mdadm.conf sudo mdadm --zero-superblock /dev/sdx1
Это обнулит старый суперблок и позволит начать с чистого листа.
-
Добавление диска в массив: Теперь, когда суперблок удален, попробуйте снова добавить диск:
sudo mdadm /dev/md127 --add /dev/sdx1
3.2 Убедитесь в состоянии разделов
Проверьте, что разделы нового диска соответствуют оригинальному диску:
sudo fdisk -l /dev/sdx
sudo fdisk -l /dev/sdb
Если ваши разделы не совпадают, создайте новые разделы с помощью fdisk
или parted
, чтобы они точно соответствовали оригиналу.
3.3 Проверка версии суперблока
Если новый диск изначально создан в другом формате или версии mdadm, это может повлиять на его добавление. Проверьте версию суперблока:
sudo mdadm --examine /dev/sdx1
Если он не соответствует версии v1.2, попробуйте преобразовать его в правильный формат.
4. Заключение
Работа с RAID-массивами требует внимательного подхода и понимания работы системных инструментов. Убедившись, что новый диск правильно инициализирован и соответствует требованиям массива, вы сможете успешно восстановить его. Если проблема не решается после выполнения всех советов, возможно, стоит обратиться к специализированным форумам или техническим специалистам для получения дополнительной помощи.