Какие параметры для mdadm, чтобы воссоздать устройство md с полезной нагрузкой, начиная с позиции 0x22000 на резервном хранилище?
Я пытаюсь восстановиться после аварии с mdadm raid, которая произошла при переходе с сервера Ubuntu 10.04 на 12.04. Я знаю правильный порядок устройств из журнала dmesg, но, учитывая эту информацию, я все еще не могу получить доступ к данным.
Суперблоки выглядят грязно; mdadm - исследуйте для каждого диска по этому вопросу на askubuntu
Изучив исходное содержимое резервного хранилища, я нашел начало моих данных (в моем случае контейнер LUKS) в позиции 0x22000 относительно начала первого раздела в рейде.
Вопрос: Какая комбинация опций, выданных "mdadm --create" для повторного создания mdadm, который начинается с заданным смещением? Размер растрового изображения?
PS. Соответствующая информация из системного журнала, когда система была исправна, вставлена здесь.
1 ответ
Похоже, что нет необходимости в каком-либо инструменте для настройки запуска полезной нагрузки RAID при любом заданном смещении. Проблема возникла из-за изменения смещения между версиями mdadm выше 3.00 и ниже. Похоже, что в настоящий момент из-за различных смещений mdadm из версии выше 3.00 (я пробовал 3.24) не может воссоздать макет, созданный более старым mdadm. Нужно использовать более старый.
Проблема возникла в первую очередь из-за известной ошибки в ядре Ubuntu 12.04, которая при определенных обстоятельствах (например, обнаруживается при обновлении дистрибутива...) перезаписывает суперблоки. Решение состоит в том, чтобы избежать использования ядер от 3.2.0-22.35 до 3.2.0-24.37, которые, среди прочего, включают в себя ядро, используемое в установщике Ubuntu 12.04 Mini-cd.
Это разговор в списке рассылки linux-raid@kernel.org, в котором мистер Робин Хилл дал мне решение:
Похоже, вы пострадали от ошибки, упомянутой здесь: http://neil.brown.name/blog/20120615073245
У вас есть большая часть необходимых данных для воссоздания массива. Я думаю, это просто отсутствие размера куска. Вероятно, это 512 КБ, поскольку массивы используют суперблоки 1.2, но это может быть 64 КБ, если вы использовали старую версию mdadm.
Ваше смещение данных составляет 272 сектора, что означает, что вам нужно будет использовать более старую версию mdadm для повторного создания массива. Более новые версии используют 2048 секторов, но похоже, что версия 3.0 использует 272, поэтому возьмите копию этого, если это возможно.
Предполагая, что ваши диски нумеруются в том же порядке, что и ранее, команды создания будут:
mdadm -C /dev/md5 -e 1.2 -l 5 -n 5 /dev/sd{b,f,c,e,d}6 \ --assume-clean --uuid=a3945c40:73237cd6:3d61998e:8f773d03
а также
mdadm -C /dev/md6 -e 1.2 -l 6 -n 5 /dev/sd{b,f,c,e,d}5 \ --assume-clean --uuid=2a8fd2df:3ad53552:e8b80ecf:a46d93a2
Убедитесь, что вы используете формат фигурных скобок, чтобы перечислить диски, а не квадратные скобки - это обеспечит поддержание порядка. Также убедитесь, что
--assume-clean
используется, чтобы предотвратить восстановление и потерю данных.После воссоздания массива, запустите
fsck -n
в массиве, чтобы проверить, правильны ли детали. Если нет, остановите массив и попробуйте воссоздать его снова, добавив "-c 64", чтобы установить размер куска 64K.После того, как вы установили их и fsck показывает чистоту, вы можете повторно добавить растровые изображения, используя
mdadm -G /dev/mdX --bitmap=internal
,Прочтите сначала сообщение в блоге Нейла, поскольку я могу что-то пропустить.
Поэтому после загрузки с XUbuntu 10.04 live CD я смог успешно воссоздать массив с помощью заданных команд и получить доступ ко всем моим данным.
Важно отметить, что старый mdadm был нужен только для пересоздания массива. Доступ к массиву обычно осуществляется с 12.04 live CD (используя обычный mdadm --assemble --scan
).
Если кто-то хочет изменить макет рейда на более новый (со смещением 2048 секторов), путь будет длинным:
Единственный известный мне способ обновления местоположения смещения в существующем массиве - это сбой дисков по одному, обнуление суперблоков, а затем добавление их обратно в массив с использованием нового mdadm. Когда он будет добавлен обратно, он будет использовать новое местоположение смещения. Если у вас есть запасной диск и достаточно новая версия ядра, вы можете использовать опцию преимущественной замены, которая предотвратит необходимость запуска без полной четности.
... В надежде, что в этом посте хотя бы один системный администратор обновится с 10.04 до 12.04 от инфаркта;-)
См. Также связанную проблему на askubuntu: mdadm не работает после обновления 10.04 -> 12.04.