Вопрос или проблема
RAID работал, когда я случайно записал (с помощью dd) iso-образ на один из дисков RAID. Всего три диска, и один из них был частично перезаписан. Я ожидал восстановить массив, отправляя ‘repair’ в sync_action (в sys/block/md126/md). Ремонт нашел миллионы несоответствий (в mismatch_cnt) и завершился, следующий ‘check’ нашел 72 несоответствия.
После ремонта, но перед проверкой, я пытался перенастроить, перезапустить, перезагрузить и так далее. Результат остался тем же – часть данных (md126) активная, но в режиме только чтения, когда контейнерная часть (md127) неактивна. Опции с –assemble не помогают, –force, –run, –readwrite и подобное ничего не дают. /proc/mdstat по-прежнему сообщает, что контейнер неактивен. Редактирование mdadm.conf тоже не помогает.
Изначально RAID был собран под Windows с Intel Rapid Storage. Далее была попытка запустить его под Linux с случайным повреждением одного из трех дисков. Как я понимаю, повреждение похоже на плохие блоки, которые должны легко восстанавливаться с помощью команды ‘repair’, но, несмотря на наличие двух здоровых дисков, это не работает, как ожидалось.
lsblk показывает подозрительно много разделов на sdb (который был поврежден), можно предположить, что они из ISO-файла. Но по какой-то причине один из здоровых дисков (sde) также имеет аналогичную разметку, тогда как третий диск (sdc) имеет только один раздел. Возможно, это следствие моей неудачной попытки запустить диски под Windows? Но он даже не загрузился, хотя возможно, что еще до загрузки он пытался сделать диски RAID “дружественными для Windows” и записал туда какую-то ерунду.
Я очень ценю любую помощь, даже если она потребует сброса необработанного образа дисков и как-то прочитать содержимое, конечно, если mdadm здесь не поможет. Информация достаточно ценна для меня. Заранее спасибо!
После некоторых исследований я решил опубликовать здесь некоторые результаты для тех несчастных, кто повторил мои ошибки.
Во-первых, после того как вы перестанете записывать мусор на ваш диск (нажав Ctrl+C), проверьте, доступны ли данные. В моем случае я совершил большую ошибку – я решил перезагрузиться в надежде, что драйвер md восстановит мой RAID массив. Надежда была бесплодной.
В моем случае массив работал в тот момент, когда я нажал Ctrl+C, так что все, что мне нужно было сделать, это просто создать резервную копию самого важного, включая структуру папок, что важно во многих случаях.
Но я надеялся на магию RAID. И она не сработала. Я не знаю как, но, кажется, запись только на один из трех дисков с помощью dd каким-то образом вносит изменения во весь массив, так что я обнаружил несколько сотен мегабайт, уничтоженных с префиксом моего iso-образа.
Однако даже тогда массив был совершенно читаемым. Моя другая ошибка заключалась в попытке использовать mdadm для восстановления данных. Он проверял, ремонтировал, снова проверял, затем восстанавливал и так далее, но безрезультатно. Возможно, это были усилия, которые на самом деле распределили неверные данные по всему массиву. Так что – не делайте этого!
Если вы видите, что массив RAID активен, хотя бы частично, как в моем случае, когда была активна часть данных и неактивна контейнерная часть, значит, он совершенно читаем с помощью dd!
Просто считайте все байты в какой-нибудь файл или непосредственно на новое устройство с большим объемом. И только после резервного копирования массива можно экспериментировать с восстановлением.
В моем случае таблица разделов была повреждена, как и таблица размещения файлов NTFS.
Я загрузил TestDisk отсюда – страница документации – и он где-то нашел данные таблицы разделов и восстановил их (надеюсь, правильно). Но у меня все еще нет структуры для моих файлов и каталогов.
Затем есть еще один инструмент с того же сайта – PhotoRec. Он может находить многие типы файлов, просто используя сигнатуры типов. В моем случае он нашел много файлов, содержащих текст, изображения, архивы и так далее.
Наконец, всё еще есть надежда найти данные о размещении файлов на одном из трех дисков RAID, возможно, мне повезет восстановить хотя бы частичную структуру моих каталогов, что важно во многих случаях из-за их организационного характера данных.
.
Ответ или решение
В сложившейся ситуации с RAID массивом под Ubuntu, который не запускается (контейнер неактивен, в то время как диски данных активны), важно понимать техническую сторону проблемы, чтобы принять обоснованные меры для ее решения. Эта ситуация требует внимательного и деликатного подхода, учитывая, насколько критична ценность данных для пользователя.
Теория
RAID (массив избыточных независимых дисков) представляет собой метод хранения данных на нескольких жестких дисках для достижения избыточности, повышения производительности и/или защиты данных. В вашем случае, RAID изначально был собран под Windows с помощью Intel Rapid Storage и впоследствии перенесен на Linux систему. Проблемы начались после того, как случайно был записан ISO-образ на один из дисков RAID. Это привело к повреждению данных и проблемам с контейнером RAID (md127), который неактивен.
Примеры
Случай с повреждением RAID далее усугубился попытками восстановления, что привело к увеличению числа несоответствий, зафиксированных при операциях "repair" и "check". В результате, несмотря на активность части данных (md126), она доступна только в режиме чтения, а контейнерная часть остается неактивной. Попытки использовать команды mdadm, такие как –assemble, –force, –run, и редакции mdadm.conf не привели к результату.
Применение
-
Сразу остановитесь, чтобы не вносить дальнейшие изменения. Если вы заметили повреждение, немедленно прекратите все операции записи. Это предотвратит дальнейшее распространение повреждений. Даже если RAID в момент остановки еще функционировал, любые последующие действия могут ухудшить ситуацию.
-
Создание резервной копии всех доступных данных. Используйте утилиту dd для создания образа доступных байтов на отдельный носитель или файл. Хотя повреждения уже имеются, может быть доступна значительная часть данных. Это критический шаг, поскольку любые действия по восстановлению могут дополнительно повредить данные.
-
Анализ состояния дисков. В вашем случае:
lsblk
показал множество подозрительных разделов на поврежденном диске (sdb
), возможно, из-за записанной туда ISO-образа. Проверьте состояние всех дисков RAID с точки зрения целостности разделов. -
Использование специализированных утилит по восстановлению. После резервирования данных можно воспользоваться программами, такими как TestDisk для восстановления таблицы разделов и PhotoRec для восстановления файловых данных на основе сигнатур типов файлов. TestDisk может помочь восстановить таблицу разделов, если она была повреждена, а PhotoRec — извлечь файлы без учета их прежнего расположения.
-
Понимание и исправление повреждений файловой системы. Если потеряна файловая структура, восстановление будет зависеть от оставшихся данных на других дисках массива. Повреждению могла поддаться таблица распределения файлов NTFS, что иногда поддается частичному восстановлению, если на одном из дисков сохранилась резервная копия этой таблицы.
-
Исследование возможности восстановления файловой структуры. Если файловая структура важна, учитывая, что она обладает организующей ролью, попытка найти сопоставимую таблицу аллокации на любом из дисков может быть целесообразной.
-
Поиск профессиональной помощи при необходимости. Если операции с данными RAID выходят за рамки ваших возможностей, обращение к специалистам по восстановлению данных может быть правильным решением.
Заключение
Эта ситуация потребовала тщательного взвешивания всех шагов, предпринимаемых для защиты и восстановления данных. Опыт указывает, что лучше всего действовать осторожно, минимизируя дальнейшие операции с дисками до полноценного резервирования всего доступного объема данных. Использование специализированных инструментов в сочетании с резервными копиями может обеспечить максимальный шанс на восстановление данных.