Люди, пожалуйста, помогите - я новичок с большой головной болью под рукой (идеальный штормовой ситуации).
У меня на жестком диске 3 1 ТБ на Ubuntu 11.04 настроен как программный рейд 5. Данные еженедельно копировались на другой отдельный жесткий диск компьютера, пока тот полностью не вышел из строя и не был удален. Несколько дней назад у нас было отключение электричества, и после перезагрузки моя коробка не смонтировала рейд. В моей бесконечной мудрости я вошел
mdadm --create -f...
команда вместо
mdadm --assemble
и не заметил пародии, которую я совершил, до и после. Он начал разрушать массив и приступил к его сборке и синхронизации, что заняло ~ 10 часов. После того, как я вернулся, я увидел, что массив успешно запущен и работает, но рейд не
Я имею в виду отдельные диски разделены (тип раздела f8
), но md0
устройство нет. С ужасом осознавая, что я сделал, я пытаюсь найти какие-то решения. Я просто молюсь, чтобы --create
не переписать все содержимое жесткого драйвера.
Может кто-нибудь ПОЖАЛУЙСТА, помогите мне с этим - данные на диске очень важны и уникальны ~ 10 лет фотографий, документов и т. Д.
Возможно ли, что, указав участвующие жесткие диски в неправильном порядке, можно mdadm
перезаписать их? когда я делаю
mdadm --examine --scan
Я получаю что-то вроде ARRAY /dev/md/0 metadata=1.2 UUID=f1b4084a:720b5712:6d03b9e9:43afe51b name=<hostname>:0
Достаточно интересно, что раньше имя было «рейд», а не «хозяин» с добавленным: 0.
Вот «очищенные» записи конфигурации:
DEVICE /dev/sdf1 /dev/sde1 /dev/sdd1
CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>
MAILADDR root
ARRAY /dev/md0 metadata=1.2 name=tanserv:0 UUID=f1b4084a:720b5712:6d03b9e9:43afe51b
Here is the output from mdstat
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[0] sdf1[3] sde1[1]
1953517568 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
fdisk shows the following:
fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bf62e
Device Boot Start End Blocks Id System
/dev/sda1 * 1 9443 75846656 83 Linux
/dev/sda2 9443 9730 2301953 5 Extended
/dev/sda5 9443 9730 2301952 82 Linux swap / Solaris
Disk /dev/sdb: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000de8dd
Device Boot Start End Blocks Id System
/dev/sdb1 1 91201 732572001 8e Linux LVM
Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00056a17
Device Boot Start End Blocks Id System
/dev/sdc1 1 60801 488384001 8e Linux LVM
Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ca948
Device Boot Start End Blocks Id System
/dev/sdd1 1 121601 976760001 fd Linux raid autodetect
Disk /dev/dm-0: 1250.3 GB, 1250254913536 bytes
255 heads, 63 sectors/track, 152001 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/sde: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x93a66687
Device Boot Start End Blocks Id System
/dev/sde1 1 121601 976760001 fd Linux raid autodetect
Disk /dev/sdf: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe6edc059
Device Boot Start End Blocks Id System
/dev/sdf1 1 121601 976760001 fd Linux raid autodetect
Disk /dev/md0: 2000.4 GB, 2000401989632 bytes
2 heads, 4 sectors/track, 488379392 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000
Disk /dev/md0 doesn't contain a valid partition table
В соответствии с предложениями я очистил суперблоки и заново создал массив с --assume-clean
опцией, но безуспешно.
Есть ли инструмент, который поможет мне восстановить хотя бы некоторые данные? Может кто-нибудь сказать мне, что и как делает mdadm --create при синхронизации, чтобы уничтожить данные, чтобы я мог написать инструмент для отмены того, что было сделано?
После повторного создания рейда я запускаю fsck.ext4 / dev / md0 и вот результат
root @ tanserv: / etc / mdadm # fsck.ext4 / dev / md0 e2fsck 1.41.14 (22 декабря 2010 г.) fsck.ext4: неверный суперблок, пробуются резервные блоки ... fsck.ext4: неверное магическое число в супер- блокировать при попытке открыть / dev / md0
Суперблок не может быть прочитан или не описывает правильную файловую систему ext2. Если устройство действительно и оно действительно содержит файловую систему ext2 (а не swap или ufs или что-то еще), то суперблок поврежден, и вы можете попробовать запустить e2fsck с альтернативным суперблоком: e2fsck -b 8193
По предложению Шейна я попробовал
root@tanserv:/home/mushegh# mkfs.ext4 -n /dev/md0
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
122101760 inodes, 488379392 blocks
24418969 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
14905 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
и запустите fsck.ext4 с каждым резервным блоком, но все вернули следующее:
root@tanserv:/home/mushegh# fsck.ext4 -b 214990848 /dev/md0
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Invalid argument while trying to open /dev/md0
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
Какие-либо предложения?
С уважением!
источник
Ответы:
Хорошо, что-то беспокоило меня по поводу вашей проблемы, поэтому я запустил виртуальную машину, чтобы погрузиться в поведение, которое следует ожидать. Я доберусь до того, что беспокоило меня через минуту; Сначала позвольте мне сказать это:
Сделайте резервную копию этих дисков, прежде чем пытаться что-либо !!
Возможно, вы уже нанесли ущерб сверх того, что сделал ресинк; Можете ли вы уточнить, что вы имели в виду, когда сказали:
Если ты пробежал
mdadm --misc --zero-superblock
, то у тебя все будет хорошо.В любом случае, очистите несколько новых дисков и получите их точные текущие образы, прежде чем делать что-либо, что могло бы сделать больше для записи на эти диски.
При этом ... похоже, что данные, хранящиеся на этих вещах, шокирующе устойчивы к своенравной повторной синхронизации. Читайте дальше, есть надежда, и это может быть день, когда я достиг предела длины ответа.
Сценарий лучшего случая
Я собрал виртуальную машину, чтобы воссоздать ваш сценарий. Диски занимают всего 100 МБ, поэтому я не буду ждать вечно при каждой повторной синхронизации, но в противном случае это должно быть довольно точное представление.
Построил массив как можно более универсально и по умолчанию - 512 тыс. Блоков, левосимметричное расположение, диски в алфавитном порядке ... ничего особенного.
Все идет нормально; давайте создадим файловую систему и поместим в нее некоторые данные.
Хорошо. У нас есть файловая система и некоторые данные («данные»
datafile
и 5 МБ случайных данных с этим хешем SHA1randomdata
); давайте посмотрим, что произойдет, когда мы сделаем воссоздание.Ресинхронизация очень быстро закончилась с этими крошечными дисками, но это произошло. Итак, вот что беспокоило меня раньше; ваш
fdisk -l
вывод. Отсутствие таблицы разделов наmd
устройстве вовсе не является проблемой, как ожидается. Ваша файловая система находится непосредственно на поддельном блочном устройстве без таблицы разделов.Да, нет таблицы разделов. Но...
Совершенно допустимая файловая система, после повторной синхронизации. Так что это хорошо; давайте проверим наши файлы данных:
Твердый - нет повреждения данных на всех! Но это с точно такими же настройками, поэтому ничто не было сопоставлено по-разному между двумя группами RAID. Давайте бросим эту штуку, прежде чем попытаемся ее сломать.
Делая шаг назад
Прежде чем мы попытаемся сломать это, давайте поговорим о том, почему это трудно сломать. RAID 5 работает с использованием блока контроля четности, который защищает область того же размера, что и блок на каждом другом диске в массиве. Четность не только на одном конкретном диске, она равномерно вращается вокруг дисков, чтобы лучше распределить нагрузку чтения между дисками при нормальной работе.
Операция XOR для вычисления четности выглядит следующим образом:
Итак, паритет распределяется по дискам.
Повторная синхронизация обычно выполняется при замене поврежденного или отсутствующего диска; это также делается
mdadm create
для того, чтобы данные на дисках совпадали с тем, как должна выглядеть геометрия RAID. В этом случае последний диск в спецификации массива является тем, который «синхронизируется» - все существующие данные на других дисках используются для синхронизации.Итак, все данные на «новом» диске стираются и восстанавливаются; либо создание свежих блоков данных из блоков четности для того, что должно было быть там, либо создание новых блоков четности.
Что здорово, так это то, что процедура для обеих этих вещей одна и та же: операция XOR для данных с остальных дисков. Процесс повторной синхронизации в этом случае может иметь в своем макете, что определенный блок должен быть блоком контроля четности, и думать, что он создает новый блок контроля четности, тогда как фактически он воссоздает старый блок данных. Так что, даже если он думает, что строит это:
... это может быть просто восстановление
DISK5
из макета выше.Таким образом, данные могут оставаться согласованными, даже если массив построен неправильно.
Бросать обезьяну в творчестве
(не гаечный ключ; вся обезьяна)
Тест 1:
Давайте сделаем массив в неправильном порядке!
sdc
тогдаsdd
, тогдаsdb
..Хорошо, это все хорошо. Есть ли у нас файловая система?
Нет! Почему это? Потому что, хотя все данные там, они в неправильном порядке; то, что когда-то составляло 512 КБ A, затем 512 КБ B, A, B и т. д., теперь было перетасовано в B, A, B, A. Диск теперь выглядит как бред для проверки файловой системы, он не будет работать. Вывод
mdadm --misc -D /dev/md1
дает нам больше деталей; Это выглядит так:Когда это должно выглядеть так:
Итак, это все хорошо. На этот раз мы перезаписали целую кучу блоков данных новыми блоками четности. Пересоздать, с правильным заказом сейчас:
Опрятно, там все еще есть файловая система! Все еще есть данные?
Успех!
Тест 2
Ладно, давайте изменим размер чанка и посмотрим, не получится ли это у нас.
Да, да, это шланг, когда настроен так. Но мы можем выздороветь?
Снова успех!
Тест 3
Это тот, который, я думал, убьет данные наверняка - давайте сделаем другой алгоритм компоновки!
Страшно и плохо - думает, что нашел что-то и хочет исправить! Ctrl+ C!
Хорошо, кризис предотвращен. Давайте посмотрим, остались ли данные нетронутыми после повторной синхронизации с неправильным макетом:
Успех!
Тест 4
Давайте также докажем, что обнуление суперблока не очень быстро:
Да, ничего страшного.
Тест 5
Давайте просто бросим все, что у нас есть на это. Все 4 предыдущих теста, вместе взятые.
Вперед!
Вердикт?
Вау.
Таким образом, похоже, что ни одно из этих действий не повредило данные в любом случае. Откровенно говоря, я был весьма удивлен этим результатом; Я ожидал умеренных шансов потери данных при изменении размера чанка и некоторой определенной потери при изменении макета. Я кое-что узнал сегодня.
Итак ... Как я могу получить свои данные ??
Любая информация о старой системе будет чрезвычайно полезна для вас. Если вы знаете тип файловой системы, если у вас есть какие-либо старые копии
/proc/mdstat
с информацией о порядке дисков, алгоритме, размере чанка и версии метаданных. У вас настроены почтовые оповещения mdadm? Если так, найдите старый; если нет, проверьте/var/spool/mail/root
. Проверьте ваш,~/.bash_history
чтобы увидеть, если ваша оригинальная сборка там.Итак, список вещей, которые вы должны сделать:
dd
прежде чем делать что-нибудь !!fsck
текущий активный md - возможно, вы только что построили в том же порядке, что и раньше. Если вы знаете тип файловой системы, это полезно; использовать этот конкретныйfsck
инструмент. Если какой-либо из инструментов предлагает что-то исправить, не позволяйте им, если вы не уверены, что они действительно нашли действительную файловую систему! Если кто-тоfsck
предлагает что-то исправить для вас, не стесняйтесь оставить комментарий, чтобы спросить, действительно ли это помогает или просто собирает данные./proc/mdstat
, то вы можете просто подражать тому, что он показывает; если нет, то вы как бы в неведении - пробовать все разные порядки дисков разумно, но проверка каждого возможного размера чанка с каждым возможным порядком бесполезна. Для каждого,fsck
чтобы увидеть, если вы получаете что-то многообещающее.Так вот и все. Извините за роман, не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы, и удачи!
сноска: до 22 тысяч знаков; 8к + стесняется ограничения по длине
источник
Если вам повезет, вы, возможно, добьетесь определенных успехов в восстановлении файлов с помощью программного обеспечения для восстановления, которое может считывать поврежденный массив RAID-5. Восстановление с нулевым допущением - это то, с чем я имел успех раньше.
Однако я не уверен, что процесс создания нового массива пошел и уничтожил все данные, так что это может быть последний шанс.
источник
У меня была похожая проблема:
после сбоя в программном массиве RAID5 я запустил
mdadm --create
его--assume-clean
, но не смог его смонтировать. После двух недель копания я наконец восстановил все данные. Я надеюсь, что приведенная ниже процедура сэкономит кому-то время.Короче говоря
Проблема была вызвана тем, что
mdadm --create
сделали новый массив, который отличался от оригинала в двух аспектах:Как было показано в блестящем ответе Шейна Мэддена ,
mdadm --create
в большинстве случаев данные не уничтожаются! После определения порядка разбиения и смещения данных я смог восстановить массив и извлечь из него все данные.Предпосылки
У меня не было резервных копий суперблоков RAID, поэтому я знал только то, что это был массив RAID5 на 8 разделах, созданный во время установки Xubuntu 12.04.0. У него была файловая система ext4. Еще одним важным знанием была копия файла, который также был сохранен в массиве RAID.
инструменты
Xubuntu 12.04.1 live CD использовался, чтобы сделать всю работу. В зависимости от вашей ситуации вам могут потребоваться некоторые из следующих инструментов:
версия mdadm, позволяющая указать смещение данных
bgrep - поиск двоичных данных
hexdump, e2fsck, mount и шестнадцатеричный калькулятор - стандартные инструменты из репозиториев
Начните с полной резервной копии
Имена файлов устройств, например,
/dev/sda2
/dev/sdb2
и т. Д., Не являются постоянными, поэтому лучше записать серийные номера ваших дисков, заданныеЗатем подключите внешний жесткий диск и создайте резервную копию каждого раздела вашего RAID-массива следующим образом:
Определить оригинальное расположение RAID5
Различные макеты описаны здесь: http://www.accs.com/p_and_p/RAID/LinuxRAID.html
Чтобы узнать, как полосы данных были организованы в исходном массиве, вам нужна копия файла случайного вида, который, как вы знаете, был хранится в массиве. Размер порции по умолчанию, используемый в настоящее время,
mdadm
составляет 512 КБ. Для массива из N разделов вам нужен файл размером не менее (N + 1) * 512 КБ. JPEG или видео хорошо, поскольку они обеспечивают относительно уникальные подстроки двоичных данных. Предположим, наш файл называетсяpicture.jpg
. Мы читаем 32 байта данных в позициях N + 1, начиная с 100 КБ и увеличивая на 512 КБ:Затем мы ищем вхождения всех этих строк байтов во всех наших необработанных разделах, таким образом, всего (N + 1) * N команд, например так:
Эти команды могут выполняться параллельно для разных дисков. Сканирование раздела на 38 ГБ заняло около 12 минут. В моем случае каждая 32-байтовая строка была найдена только один раз среди всех восьми дисков. Сравнивая смещения, возвращаемые bgrep, вы получаете такую картинку:
Мы видим нормальную левосимметричную разметку, которая используется по умолчанию
mdadm
. Что еще более важно, теперь мы знаем порядок разделов. Однако мы не знаем, какой раздел является первым в массиве, поскольку они могут циклически сдвигаться.Обратите внимание также на расстояние между найденными смещениями. В моем случае это было 512 КБ. Размер куска может фактически быть меньше, чем это расстояние, и в этом случае фактическое расположение будет другим.
Найти оригинальный размер куска
Мы используем один и тот же файл
picture.jpg
для чтения 32 байтов данных с разными интервалами. Из вышеизложенного мы знаем, что данные со смещением 100k лежат/dev/sdh2
, со смещением 612k равны/dev/sdb2
, а на 1124k равны/dev/sdd2
. Это показывает, что размер чанка не превышает 512 КБ. Мы проверяем, что он не меньше 512 КБ. Для этого мы сбрасываем строку байта со смещением 356k и смотрим, на каком разделе она расположена:Он находится в том же разделе, что и смещение 612 КБ, что указывает на то, что размер фрагмента не равен 256 КБ. Мы исключаем меньшие размеры блоков аналогичным образом. Я закончил с кусками 512 КБ, являющимися единственной возможностью.
Найти первый раздел в макете
Теперь мы знаем порядок разделов, но мы не знаем, какой раздел должен быть первым, и какое смещение данных RAID было использовано. Чтобы найти эти два неизвестных, мы создадим массив RAID5 с правильной компоновкой чанка и небольшим смещением данных, и найдем начало нашей файловой системы в этом новом массиве.
Для начала мы создадим массив с правильным порядком разбиений, который мы нашли ранее:
Мы проверяем, что заказ выполняется
Теперь мы определяем смещения N + 1 известных байтов в массиве RAID. Я запускаю скрипт на ночь (Live CD не запрашивает пароль на sudo :):
Вывод с комментариями:
На основании этих данных мы видим, что 3-я строка не была найдена. Это означает, что кусок в
/dev/sdd2
используется для паритета. Вот иллюстрация позиций четности в новом массиве:Наша цель - определить, с какого раздела начать массив, чтобы сдвинуть блоки четности в нужное место. Поскольку четность должна быть смещена на две части влево, последовательность разбиения должна быть смещена на два шага вправо. Таким образом, правильное расположение для этого смещения данных
ahbdcefg
:На данный момент наш RAID-массив содержит данные в правильной форме. Возможно, вам повезет, что смещение данных RAID будет таким же, как и в исходном массиве, и тогда вы, скорее всего, сможете смонтировать раздел. К сожалению, это был не мой случай.
Проверьте согласованность данных
Мы проверяем, что данные согласованы по полосе фрагментов, извлекая копию
picture.jpg
из массива. Для этого мы находим смещение для 32-байтовой строки в 100k:Затем мы вычтем 100 * 1024 из результата и используем полученное десятичное значение в
skip=
параметре дляdd
.count=
Имеет размерpicture.jpg
в байтах:Проверьте это так
extract.jpg
же, какpicture.jpg
.Найти смещение данных RAID
Примечание: смещение данных по умолчанию для
mdadm
версии 3.2.3 составляет 2048 секторов. Но это значение было изменено с течением времени. Если исходный массив использовал меньшее смещение данных, чем ваш текущийmdadm
, тоmdadm --create
без него--assume-clean
можно перезаписать начало файловой системы.В предыдущем разделе мы создали массив RAID. Проверьте, какое смещение данных RAID имело место, выдав для некоторых отдельных разделов:
2048 512-байтовых секторов - 1 МБ. Поскольку размер фрагмента составляет 512 КБ, текущее смещение данных составляет два фрагмента.
Если в этот момент у вас есть сдвиг из двух частей, он, вероятно, достаточно мал, и вы можете пропустить этот абзац.
Мы создаем массив RAID5 со смещением данных в один 512 КБ-чанк. Начиная с одного фрагмента раньше, мы смещаем четность на один шаг влево, поэтому мы компенсируем это, сдвигая последовательность разбиения на один шаг влево. Следовательно, для смещения данных 512 КБ правильное расположение
hbdcefga
. Мы используем версию,mdadm
которая поддерживает смещение данных (см. Раздел «Инструменты»). Смещается в килобайтах:Теперь мы ищем действительный суперблок ext4. Структуру суперблока можно найти здесь: https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#The_Super_Block.
Мы сканируем начало массива на наличие вхождений магического числа,
s_magic
за которым следуютs_state
иs_errors
. Следующие строки для поиска:Пример команды:
Магическое число начинается с 0x38 байт в суперблок, поэтому мы вычитаем 0x38, чтобы вычислить смещение и изучить весь суперблок:
Это кажется правильным суперблоком.
s_log_block_size
поле в 0x18 равно 0002, что означает, что размер блока составляет 2 ^ (10 + 2) = 4096 байт.s_blocks_count_lo
в 0x4 - блоки 03f81480, что составляет 254 ГБ. Выглядит хорошо.Теперь мы просматриваем вхождения первых байтов суперблока, чтобы найти его копии. Обратите внимание на переворачивание байта по сравнению с выводом hexdump:
Это идеально согласуется с ожидаемыми позициями резервных суперблоков:
Следовательно, файловая система начинается со смещения 0xdc80000, то есть 225792KB от начала раздела. Поскольку у нас есть 8 разделов, из которых один для контроля четности, мы делим смещение на 7. Это дает смещение 33030144 байта на каждый раздел, что составляет ровно 63 фрагмента RAID. А поскольку текущее смещение данных RAID составляет один фрагмент, мы заключаем, что исходное смещение данных составляло 64 фрагмента или 32768 КБ. Сдвиг
hbdcefga
63 раза вправо дает расположениеbdcefgah
.Наконец, мы построим правильный массив RAID:
Вуаля!
источник
У меня была похожая проблема. Я отформатировал и переустановил мой OS / загрузочный диск с чистой установкой Ubuntu 12.04, затем запустил команду mdadm --create ... и не смог ее смонтировать.
Он сказал, что не имеет действительного суперблока или раздела.
Более того, когда я остановил рейд mdadm, я больше не мог монтировать обычное устройство.
Я смог восстановить суперблок с помощью mke2fs и e2fsck:
Затем побежал:
Это восстановило суперблок, чтобы я мог смонтировать и прочитать диск.
Чтобы заставить массив работать без разрушения суперблока или разделов, я использовал build:
После проверки данных я добавлю другой диск:
источник
Я просто обновляю часть информации, приведенной ранее. Когда умерла моя материнская плата, у меня был трехдисковый массив raid5, работающий нормально. Массив содержит / dev / md2 в качестве раздела / home размером 1,2 ТБ и / dev / md3 в качестве раздела / var 300 ГБ.
У меня было две резервные копии «важных» вещей и куча случайных вещей, которые я взял из разных частей интернета, которые я действительно должен был пройти и выборочно выбросить. Большинство резервных копий были разбиты на файлы .tar.gz размером 25 ГБ или менее, а также была скопирована отдельная копия / etc.
Остальная часть файловой системы содержалась на двух маленьких дисках raid0 объемом 38 ГБ.
Моя новая машина была похожа на старое оборудование, и я запустил машину и включил ее, просто подключив все пять дисков и выбрав старое общее ядро. Таким образом, у меня было пять дисков с чистыми файловыми системами, хотя я не мог быть уверен, что диски были в правильном порядке, и мне нужно было установить новую версию Debian Jessie, чтобы быть уверенным, что я смогу обновить машину при необходимости и разобраться с другими проблемы.
С новой универсальной системой, установленной на двух дисках Raid0, я начал собирать массивы обратно. Я хотел быть уверен, что у меня были диски в правильном порядке. Что я должен был сделать, это выдать:
Но я не сделал. Кажется, что mdadm довольно умен и, имея uuid, может выяснить, какие диски куда идут. Даже если bios назначит / dev / sdc как / sda, mdadm соберет его правильно (хотя YMMV).
Вместо этого я
mdadm --create /dev/md2 without the --assume-clean
ввел : и разрешил повторную синхронизацию в / dev / sde1. Следующая ошибка, которую я допустил, заключалась в том, чтобы работать с / dev / sdc1 вместо последнего диска в / dev / md2, / sde1. Каждый раз, когда mdadm думает, что есть проблема, это последний диск, который выгружается или повторно синхронизируется.После этого mdadm не смог найти ни одного суперблока, и e2fsck -n тоже не смог.
После того, как я нашел эту страницу, я прошел процедуру, пытаясь найти последовательность для дисков (сделано), проверить правильность данных (проверено 6 МБ файла 9 МБ), получил диски в правильной последовательности, cde, взял uuid / md2 и / md3 из старого /etc/mdadm.conf и попытался собрать.
Ну что ж,
/dev/md3
запустил иmdadm --misc -D /dev/md3
показал три здоровых раздела и диски в правильном порядке./dev/md2
также выглядел хорошо, пока я не попытался смонтировать файловую систему.Файловая система отказалась монтироваться, и e2fsck не смог найти никаких суперблоков. Кроме того, при проверке на наличие суперблоков, как описано выше, общее число блоков, найденное как a880 0076 или a880 0076 или 5500 1176, не соответствовало размеру дискового пространства 1199,79, сообщило мой mdadm. Также ни одно из мест расположения «суперблоков» не выровнено с данными в постах выше.
Я скопировал все / var и приготовился стереть диски. Чтобы увидеть, можно ли было просто стереть / md2 (мне больше нечего было терять на этом этапе), я обнаружил следующее:
Казалось, все в порядке, за исключением изменения в uuid. Поэтому после еще нескольких проверок я записал 600 ГБ резервных копий данных в / dev / md2. Затем размонтировали и попытались снова смонтировать диск:
Ты шутишь, что ли? как насчет моих 600 ГБ в файле?
Ах, это легко исправить. раскомментированная строка в /etc/mdadm.conf
Yippie!
источник