md: superblock update failed on device — Исправление ошибок mdadm в Linux
Архитектура ошибки и симптомы сбоя
Сообщение «md: superblock update failed on device» регистрируется драйвером ядра md (Multiple Device). При каждом изменении состояния массива (синхронизация блоков, добавление/удаление диска, смена счётчика событий Event Counter) ядро обязано обновить служебный суперблок (Superblock v0.90 / v1.x) на каждом физическом носителе. Ошибка указывает на то, что операция записи суперблока завершилась аппаратным отказом (EIO/EROFS), что приводит к рассинхронизации метаданных между участниками RAID.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| md superblock | v0.90 / v1.0 / v1.2 | Служебная структура в начале или конце диска, хранящая геометрию RAID и счетчик событий. |
| Event Counter | 64-bit Integer | Счетчик транзакций; при несовпадении счетчиков диск исключается из сборки. |
| Failure Cause | Write I/O Drop / Bad Sector | Физический бэд-блок в области размещения суперблока накопителя. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Проверка и сверка суперблоков всех участников массива
# Чтение метаданных суперблока с каждого физического раздела:
sudo mdadm --examine /dev/sda1
sudo mdadm --examine /dev/sdb1Сравните значения полей Events и Checksum. Диск с меньшим числом событий отстал от актуального состояния массива.
Сценарий 2: Принудительное обновление суперблока и пересборка массива
Если диск аппаратно исправен, но суперблок поврежден, пересоберите массив с обновлением метаданных:
# Остановка массива:
sudo mdadm --stop /dev/md0
# Принудительная сборка с обновлением суперблока:
sudo mdadm --assemble --force --update=super-minor /dev/md0 /dev/sda1 /dev/sdb1Сценарий 3: Замена сбойного накопителя при физическом разрушении сектора
Если запись суперблока невозможна из-за бэд-блоков в начале/конце диска:
# Полное зануление поврежденного суперблока на сбойном диске:
sudo mdadm --zero-superblock /dev/sda1
# Замена диска и повторное добавление в массив:
sudo mdadm /dev/md0 --add /dev/sda1ITSTM выполнит ручную реконструкцию RAID-метаданных без потери файловых систем и восстановит консистентность разделов.
Частые вопросы (FAQ)
Где физически располагается суперблок mdadm на диске?
Это зависит от версии метаданных: версия 0.90 располагается в конце раздела (с выравниванием на 64KB), версия 1.0 — в конце устройства, 1.1 — в начале устройства, а версия 1.2 (стандарт по умолчанию) — со смещением 4KB от начала раздела.
Что произойдет, если счетчики Events на дисках отличаются на 1-2 единицы?
Драйвер mdadm откажется собирать массив автоматически, посчитав диск с меньшим значением Events устаревшим. Для запуска потребуется флаг --force при сборке.
Опасно ли выполнять команду --zero-superblock?
Команда стирает только сигнатуру RAID-метаданных (размером несколько килобайт), не затрагивая сами пользовательские данные внутри файловой системы, но делает диск невидимым для автосборки mdadm.
Как создать резервную копию конфигурации mdadm?
Выполните: sudo mdadm --detail --scan | sudo tee /etc/mdadm/mdadm.conf и обновите образ initramfs командой update-initramfs -u.