Я пытаюсь восстановиться после аварии, связанной с рейдом mdadm, которая произошла при переходе с сервера Ubuntu 10.04 на 12.04. Я знаю правильный порядок устройств из журнала dmesg, но, учитывая эту информацию, я все еще не могу получить доступ к данным.
Суперблоки выглядят неаккуратно; mdadm --examine для каждого диска включен этот вопрос на askubuntu
Изучив необработанное содержимое резервного хранилища, я обнаружил, что начало моих данных (контейнер LUKS в моем случае) находится в позиции 0x22000 относительно начала первого раздела в рейде.
Вопрос: Какая комбинация опций выдана команде "mdadm --create" для воссоздания mdadm, который начинается с заданного смещения? Размер растрового изображения?
PS. Соответствующая информация из системного журнала, когда система была исправна, вставлена Вот.
Оказывается, нет необходимости в каком-либо инструменте для установки начала полезной нагрузки 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», чтобы установить размер блока равным 64 КБ.После того, как вы их настроите и fsck покажет чистый, вы можете повторно добавить растровые изображения, используя
mdadm -G /dev/mdX --bitmap=internal
.Прочтите сначала сообщение в блоге Нила, так как может быть что-то я пропустил.
Итак, после загрузки с Live CD XUbuntu 10.04 я смог успешно воссоздать массив с заданными командами и получить доступ ко всем моим данным.
Важно отметить, что старый mdadm был нужен только для воссоздание массив. Доступ к массиву обычно возможен с 12.04 live CD (используя обычный mdadm --assemble --scan
).
Если нужно сменить раскладку рейда на более новую (со смещением 2048 секторов) путь длинный:
Единственный известный мне способ обновить местоположение смещения в существующем массиве - это поочередно отказывать диски, обнулять суперблоки, а затем добавлять их обратно в массив с помощью нового mdadm. Когда он будет добавлен обратно, он будет использовать новое местоположение смещения. Если у вас есть запасной диск и достаточно новая версия ядра, вы можете использовать опцию упреждающей замены, которая предотвратит необходимость запуска без доступной полной четности.
... В надежде, что этот пост поможет хотя бы одному системному администратору обновиться с 10.04 до 12.04 от сердечного приступа ;-)
См. Также связанную проблему на askubuntu: mdadm не работает после обновления 10.04 -> 12.04.