Как монтировать / восстанавливать данные на диске, который был частью рейда mdadm 1 на другой машине?

Некоторые предпосылки

  • Сам диск был «обработан» другом и, как говорят, остается неповрежденным, неповрежденным и все еще монтируемым / восстанавливаемым
  • Диск был частью программного рейда 1 на Ubuntu 12.04
  • Другой диск в исходном рейде 1 был отформатирован и использован для другой цели, оставив текущий диск (тот, о котором идет речь) по-прежнему технически частью рейда, который больше не существует

То, что я уже пробовал

Где мне нужна помощь / Мои вопросы

  • Есть ли способ конвертировать диск в ext4 без повреждения данных?
  • Есть ли простой способ монтировать диск типа файла Linux 83 и восстановить данные?
  • У меня есть еще один диск, свободный на данный момент, если это возможность как-то перестроить рейд
  • Моя основная цель – восстановить данные с диска. Я открыт для всех вариантов.

Обновить

Вывод некоторых команд

  • fdisk -l / dev / sdc

    $fdisk -l /dev/sdc

    Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0005ed9c

    Device Boot Start End Blocks Id System
    /dev/sdc1 63 1953520064 976760001 83 Linux

  • file -s / dev / sdc1

    $file -s /dev/sdc1
    /dev/sdc1: data

  • hexdump -C -n 32256 / dev / sdc (Не уверен, что это может помочь или нет)

     $hexdump -C -n 32256 /dev/sdc` 00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 9c ed 05 00 00 00 00 fe |................| 000001c0 ff ff 83 fe ff ff 3f 00 00 00 82 59 70 74 00 00 |......?....Ypt..| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00007e00 

  • Как указать команду отключения демона с выскочкой?
  • почему отсутствует apt docs? как его вернуть?
  • Может ли tar узнать формат архива, когда он подключается через wget?
  • perf не работает над действительно большим процессом
  • Как настроить псевдоним в Apache 2.4?
  • Как выполнить скрипт при выходе из системы?
  • Как перезаписать пакет без Debian?
  • Где найти описания пакетов Ubuntu (например, zlib1g, build-essential)?
  • 4 Solutions collect form web for “Как монтировать / восстанавливать данные на диске, который был частью рейда mdadm 1 на другой машине?”

    Linux mdraid имеет несколько форматов метаданных . Форматы 0.9 и 1.0 помещают метаданные в конец содержащего устройства, а полезная нагрузка (файловая система) начинается с начала устройства и может быть доступна напрямую, не пройдя слой рейда. Форматы 1.1 и 1.2 помещают метаданные в середину и в начало содержащего устройства соответственно, поэтому полезная нагрузка находится в смещении.

    Установщик Ubuntu создает тома с форматом метаданных 1.2, поэтому ваши данные начинаются после метаданных, а не в начале устройства.

    Самый простой способ доступа к этим данным – собрать устройство рейда. В томе RAID-1 достаточно одного устройства.

     madadm -A /dev/sdc1 

    (Остановитесь здесь, если вам не нравится боль.)

    Вы также можете получить доступ к данным со смещением. Единственное, что я вижу, это сделать, если вам нужно работать в очень старом ядре, которое не поддерживает форматы 1.x mdraid. Сначала определите смещение mdadm -E /dev/sdc1 : найдите строку Data Offset : SSS sectors . Секция mdadm – 512 байт.

     sectors=$(mdadm -E /dev/sdc1 | awk -F: '$1 ~ /Data offset/ {print $2}') bytes=$(($sectors * 512)) losetup -f -o $bytes /dev/sdc1 

    В отчаянии с форматами 1.x смещение данных сохраняется в байтах 128-135 метаданных little-endian¹. 1.2 метаданных составляет 4096 байт после начала работы устройства.

    Вы также можете изменить таблицу разделов, чтобы начать ее работу. Будьте очень осторожны с вашей арифметикой. Только делайте это, если вы хотите продолжать использовать диск на долгосрочной основе в старой системе, которая не может получить доступ к устройству RAID.

    ¹ Или с понятием платформы? Я не уверен.

    К моему удивлению, я / смог восстановить данные, просто используя передовые возможности .

    Помощь, полученная здесь, была бесценной. Попробовав множество предлагаемых комбинаций, а также мои собственные микширования, идеальный метод (для установки и использования диска в обычном режиме) больше не казался вариантом. Прибегать к восстановлению данных – это мое решение в этом случае.

    Может быть, поздно, но копался в той же проблеме и нашел тему.

    Надеюсь, это тоже будет полезно для кого-то. Отличная работа в Ubuntu 14.04:

     sudo -i mdadm --assemble --scan 

    Ты получишь:

     mdadm: /dev/md/1 has been started with 1 drive (out of 2) 

    Затем смонтируйте и просмотрите файлы:

     cd /mnt && mkdir to-restore-md1 && mount /dev/md1 to-restore-md1 ls -la to-restore-md1 

    Кажется, что вы уже заблокировали суперблок mdadm. Если он был там и был форматом 1.1 или 1.2, то, скорее всего, файловая система находится в смещении 2048 секторов. Вы можете запустить e2fsck /dev/sdc1?offset=2048 чтобы заставить его искать файловую систему, начиная с этого смещения. Если он найдет это, вы можете изменить таблицу разделов, чтобы указать, где фактически начинается файловая система. Вы можете использовать parted /dev/sdc и команду unit s для использования единиц секторов. print таблицу, обратите внимание на начальный и конечный сектор, затем на раздел, затем заново mkpart его с помощью mkpart и используйте mkpart и тот же конечный сектор, но добавьте смещение в начальный сектор.

    Если 2048 не работает, вы также можете попробовать 1985 год.

    Interesting Posts

    Как создать виртуальный интерфейс Ethernet на машине без физического адаптера?

    fstab монтируйте диск как мой / домашний

    systemctl – активный выход неправильного состояния

    Как выполнить автоматическое назначение параметров в соответствии с шаблоном имени файла?

    Ли Linux прекращает обработку, связанную с графическим интерфейсом, когда мы удаляем экран рабочего стола из подключения из шкафа (процессорный блок)?

    как различать пользовательские сервисы и системные службы в systemd?

    Есть ли способ увидеть размеры файла jpeg в linux с помощью командной строки?

    Сопоставление двух разных линий, расположенных по крайней мере на N прямых друг от друга

    Прикосновение к тачпаду при наборе текста прерывания Linux

    Отсутствующие сообщения и файлы защищенных журналов на CentOS

    Нечеткое взаимодействие между функциями fstab auto и пользователем

    Gparted показывает полный диск нераспределенным

    Как мне понизить группу пакетов с помощью pacman?

    псевдонимы параметров

    выполнить файл на сервере более безопасно?

    Linux и Unix - лучшая ОС в мире.