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

Создание точки монтирования устранило проблему:

mkdir /mnt/Machintosh

Также, если Вы хотите избежать предупреждений, смонтировать объем как только для чтения, потому что запись не поддерживается на HFS + журналируемые системы (или можно отключить журналирование, но это не рекомендуется).

18
17.02.2013, 14:31
4 ответа

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

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

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

madadm -A /dev/sdc1

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

Можно также получить доступ к данным при смещении. Единственная точка I видит к выполнению, это - то, если необходимо работать в очень старом ядре, которое не поддерживает 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 из метаданных, прямой порядок байтов ¹. 1,2 метаданных составляют 4 096 байтов с начала устройства.

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

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

7
27.01.2020, 19:46
  • 1
    , который данные могут запустить при различных смещениях (см. mdadm -E /dev/sdc1 поскольку, где точно), но конечно не в 4k для 1,2 метаданных, так как 4k точно, где метаданные хранятся. См. также unix.stackexchange.com/q/57477/22565 –  Stéphane Chazelas 16.02.2013, 01:41
  • 2
    @StephaneChazelas ой, да, заскок.Спасибо. –  Gilles 'SO- stop being evil' 16.02.2013, 01:50
  • 3
    mdadm -A /dev/sdc1 выводы mdadm: device /dev/sdc1 exists but is not an md array. Я пошел немного далее, чтобы использовать mdadm и видеть, существует ли какая-либо дополнительная информация... mdadm --misc --examine /dev/sdc1 выводы mdadm: No md superblock detected on /dev/sdc1.. Существует ли способ, которым я могу переписать суперблоки на этом диске для маркировки его как доступный диск для блока RAID? –  Adam 16.02.2013, 19:12
  • 4
    @Gilles A mdadm -E /dev/sdc возвращает следующее для меня: /dev/sdc: MBR Magic : aa55 Partition[0] : 1953520002 sectors at 63 (type 83) но никакая информация для/dev/sdc1, хотя –  Adam 16.02.2013, 21:05
  • 5
    @Adam спасибо, Если mdadm не может найти свои метаданные, нет ничего, что можно сделать там: Вы не можете вынудить это сделать что-то, так как это не знает, что сделать. Необходимо искать файловую систему, и если совет psusi не ведет никуда, перспектива холодна. Возможно, hexdump первых нескольких килобайтов диска мог вдохновить кого-то (остерегайтесь этого, он мог выставить некоторые конфиденциальные данные). –  Gilles 'SO- stop being evil' 17.02.2013, 13:57

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

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

5
27.01.2020, 19:46

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

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

3
27.01.2020, 19:46
  • 1
    Выполнение e2fsck /dev/sdc1?offset=2048 (Я также выполнил offset=1985), выводы Bad magic number..Superblock invalid... а также предполагая, что суперблок поврежден и пытается выполнить e2fsck с альтернативным суперблоком. Кажется, что я должен предоставить ему альтернативный суперблок для продвижения. –  Adam 16.02.2013, 22:16
  • 2
    @Adam, нет, просто необходимо получить корректное смещение. testdisk должен смочь сделать подробное сканирование и исправить таблицу разделов для Вас. –  psusi 16.02.2013, 22:44
  • 3
    testdisk абсолютно новая территория для меня. Основное выполнение (Анализирует) шоу No ext2, JFS, Reiser.. marker. Bad relative sector. No partition is bootable. Это также обеспечивает следующее: 1 P Linux 0 1 1 121600 254 63 1953520002 Как я могу понять это для помощи ситуации? –  Adam 16.02.2013, 23:30
  • 4
    @Adam, я никогда не использовал его сам, я просто знаю, что это, как предполагается, может просканировать для и найти суперблок. Вы действительно выполняли его на целом диске, не праве раздела? –  psusi 16.02.2013, 23:46
  • 5
    После выполнения анализа полного диска это не подняло разделов. В настоящее время выполняя глубокое сканирование теперь. Если это ничего не поднимает, я не уверен, куда пойти отсюда. –  Adam 17.02.2013, 00:12

Это отлично работает в 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
12
27.01.2020, 19:46

Теги

Похожие вопросы