Вопрос или проблема
Предыстория:
У меня проблема со сборкой моего аппаратного RAID 1 после замены материнской платы, RaidXpert2 продолжает сканирование и диск не отображается в диспетчере устройств Windows. После нескольких перезагрузок один из членов RAID вышел из строя, и диск все еще не готов, поэтому я хочу подключить диск другим образом, чтобы сначала сделать резервное копирование важных данных.
В BIOS AMD создано 2 диска в режиме RAID 1. Я пытаюсь подключить рабочий, который обозначен как /dev/sdb
mdadm --examine /dev/sdb
/dev/sdb:
MBR Magic : aa55
Partition[0] : 976748544 sectors at 63 (type 82)
Я попробовал собрать RAID с помощью mdadm --assemble
, но не получилось.
# mdadm --assemble /dev/md0 /dev/sdb -v
mdadm: looking for devices for /dev/md0
mdadm: Cannot assemble mbr metadata on /dev/sdb
mdadm: /dev/sdb has no superblock - assembly aborted
Вывод заголовка драйвера показывает номер версии AMD-RAID.
# head /dev/sdb1
�l9.2.0-00127....
# fdisk /dev/sdb1
...
Тип метки диска: dos
Идентификатор диска: ***
Устройство Начало Конец Секторы Размер Id Тип
/dev/sdb1 63 **** **** ****G 82 Linux swap / Solaris
-
Как смонтировать AMD RAID в Linux?
-
Какова структура данных AMD-RAID 1?
-
Я нашел первый раздел после смещения 600 МБ, но есть 600 МБ данных перед первым разделом NTFS. Я использовал binwalk на первых 600 МБ данных и увидел некоторые из моих файлов, это метаданные или кэш, которые можно не учитывать?
Поскольку я не смог найти решение в интернете, оставлю заметку здесь для тех, кто сталкивается с той же проблемой.
Перед спасательной операцией я рекомендую добавить наложенное блочное устройство, чтобы сохранить оригинальное устройство в безопасности.
modprobe nbd
# /dev/sdb - это устройство, которое вы пытаетесь защитить
qemu-img create -f qcow2 -b /dev/sdb -F raw /tmp/target.qcow2
qemu-nbd -c /dev/nbd0 /tmp/target.qcow2
# любые изменения, внесенные в /dev/nbd0, не должны записываться на реальное устройство
Я смог найти заголовок NTFS, используя testdisk /dev/nbd0p1
TestDisk 7.2, Data Recovery Utility, February 2024
Christophe GRENIER <[email protected]>
https://www.cgsecurity.org
Диск /dev/nbd0p1 - **** GB / **** GiB - **** секторов
Раздел Начало Конец Размер в секторах
>* HPFS - NTFS 1331177 ***удалено*** ***удалено*** [***удалено***]
...
Вижу, что раздел NTFS начинается с сектора 1331177,
Я создаю устройство цикла с этим смещением. Поскольку смещение используется в байтах, то смещение равно сектор*размер_сектора
losetup -o $((1331177*512)) /dev/loop0 /dev/nbd0p1
hexdump может увидеть заголовок NTFS
hexdump -n100 -C /dev/loop0
00000000 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
Монтируем его.
mount /dev/loop0 /mnt
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)
Could not mount read-write, trying read-only
Теперь вы можете смонтировать его и сделать резервное копирование ваших важных файлов.
Ответ или решение
Теория
Проблема, описанная вами, касается восстановления доступа к данным RAID 1 массива, созданного с использованием технологии AMD-RAID, после замены материнской платы. AMD-RAID управляется с помощью ПО RaidXpert2, и используется встроенный BIOS для настройки и управления RAID массивами. Когда вы меняете оборудование, такое как материнская плата, поддержка AMD-RAID может быть недоступна, если новая плата не поддерживает данную технологию. Это особенно актуально при использовании других брендов материнских плат или более новых моделей, которые могут не поддерживать старую версию RAID BIOS.
Вот несколько ключевых моментов, относящихся к вашей ситуации:
-
Структура данных AMD-RAID: RAID 1 (зеркало) подразумевает, что данные одновременно пишутся на оба диска, что обеспечивает их дублирование. Это упрощает задачу восстановления данных, поскольку любой из этих дисков может выступать в роли автономного устройства для считывания данных, когда другой диск выходит из строя.
-
Метаданные RAID: в случае с аппаратным RAID, метаданные, описывающие конфигурацию массива, могут храниться в специальной области диска, и использование программного обеспечения других производителей может не распознать такие метаданные. Это объясняет ошибки, которые вы получаете при попытке выполнить команду
mdadm --assemble
. -
Чтение данных напрямую: при невозможности составить RAID массив стандартными средствами, как это происходит в Linux с
mdadm
, логичным шагом становится попытка монтирования разделов напрямую, т.е. без использования метаданных RAID.
Пример
Расскажем подробнее о процессе, который вы описали, и его реализации на практике:
-
Создание защитной копии: первая и наиболее важная задача — создать резервную копию данных для минимизации риска потери информации. Это делается через создание оверлейного блочного устройства:
modprobe nbd qemu-img create -f qcow2 -b /dev/sdb -F raw /tmp/target.qcow2 qemu-nbd -c /dev/nbd0 /tmp/target.qcow2
Это обеспечивает создание помехоустойчивого канала, где изменения не будут записываться на физический диск.
-
Поиск разделов: с помощью программы
testdisk
выполняется поиск начала NTFS раздела:testdisk /dev/nbd0p1
Программа анализирует содержимое диска и обнаруживает начало NTFS раздела на заданном смещении сектора.
-
Создание loop устройства: после нахождения смещения стартового сектора, вы создаете loop устройство, используя найденные данные:
losetup -o $((1331177*512)) /dev/loop0 /dev/nbd0p1
-
Монтирование файловой системы: команда для монтирования файловой системы NTFS в режиме только для чтения:
mount -o ro /dev/loop0 /mnt
Применение
Методология, предложенная вами, является отличным способом восстановления данных в условиях, когда аппаратная поддержка массива недоступна.
-
Универсальность подхода: аналогичные подходы могут применяться в других сценариях, когда необходимо иметь доступ к файловой системе без использования оригинального окружения. Это касается не только RAID массивов, но и любых случаев восстановления данных.
-
Защита данных: благодаря использованию оверлейных блочных устройств, риски повреждения общего диска сведены к минимуму, что особенно ценно при работе с данными, которые нет возможности повторно создать.
-
Интеграция с другими системами восстановления данных: помимо
testdisk
, существуют другие инструменты, такие какphotorec
для восстановления отдельных файлов илиddrescue
для побайтного восстановления диска.
Заключение: описанный вами метод поздравляет своей адаптивностью и эффективностью в решении проблемы чтения данных с RAID диска в условиях невыходного оборудования. Данный подход может быть полезен в различных сценариях для профессионалов IT, работающих с оборудованием, где невозможно восстановление RAID контроллера.