Как подключить многодисковый RAID / логический диск Windows NTFS на Linux?

у меня есть два жестких диска 500GB от старого ноутбука Windows на моем рабочем месте. Мой босс попросил меня скопировать содержимое на файловый сервер, если это возможно, с оговоркой, что абсолютно никакие данные не могут быть потеряны.

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


Первое, что я сделал, чтобы производить изображения с помощью ddrescue. Диск с таблицей разделов скопирован без ошибок, а другой диск потерял ~150 КБ из-за ошибок. Изображения были смонтированы только для чтения /dev/loop1 и /dev/loop2 используя losetup. fdisk -l показывает следующее:

Disk /dev/loop1: 465.8 GiB, 500107862016 bytes, 976773168 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 /dev/loop2: 465.8 GiB, 500107862016 bytes, 976773168 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
Disklabel type: dos
Disk identifier: 0x87afa6ad

Device       Boot      Start        End    Sectors   Size Id Type
/dev/loop2p1            2048   31459327   31457280    15G 27 Hidden NTFS WinRE
/dev/loop2p2 *      31459328   31664127     204800   100M 27 Hidden NTFS WinRE
/dev/loop2p3        31664128 1191071167 1159407040 552.9G  7 HPFS/NTFS/exFAT
/dev/loop2p4      1191071168 1953533951  762462784 363.6G  7 HPFS/NTFS/exFAT

размеры разделов, казалось, предполагают, что это был массив RAID или логический диск Windows, и быстрая проверка с blkid показала что типы дисков были isw_raid_member. Попытка собрать массив с помощью mdadm -v --assemble /dev/md0 /dev/loop2 /dev/loop1 произвел следующий вывод:

mdadm: looking for devices for /dev/md0
mdadm: Cannot assemble mbr metadata on /dev/loop2
mdadm: /dev/loop2 has no superblock - assembly aborted

другие вещи, которые я пытался либо смонтировать диски или получить больше информации были:

  • mount /dev/loop2 <mount point> не с unknown filesystem type 'isw_raid_member'
  • mount -t С NTFS и exFAT: не удается найти файловую систему
  • mount /dev/loop2p[1234]:Special device <dev> does not exist
  • mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/loop[21]: утверждается, что /dev/loop2 кажется, что будет частью массива raid 0 без устройства и дата создания 00:00:00 1 января 1970
  • mdadm -E /dev/loop[12]: заявляет, что суперблок md не был обнаружен на /dev/loop1 и распечатывает разделы и MBR магическое число aa55 на /dev/loop2
  • file -s /dev/loop1: принты /dev/loop1: data
  • file -s /dev/loop2: выплевывает блок текста, в основном говоря, что это загрузочный сектор DOS/MBR, и дает сырые номера для смещений/размеров разделов.
  • mount -t ntfs -o ro,offset=$((512*2048)) /dev/loop2 /mnt/partition1:

    NTFS signature is missing
    Failed to mount '/dev/loop3': Invalid argument
    The device '/dev/loop3' doesn't seem to have a valid NTFS
    

    Нет, я не ошибся это 3. Понятия не имею, откуда он взялся.

я тоже посмотрел на восстановление программного RAID, но это, кажется, для уже работающих массивов Linux, восстанавливаемых на Linux (не говоря уже о том, что совсем немного идет над моей головой).

есть ли что-нибудь, что я могу сделать, чтобы получить эти образы установлены безопасно?

22
задан awksp
12.04.2023 8:13 Количество просмотров материала 2828
Распечатать страницу

1 ответ

Примечание: я пишу этот ответ после того, как OP получил помощь через комментарии, испытания и ошибки. Имея в виду других пользователей, я делаю ответ более широким и немного более общим.


если эти два диска работали вместе, они могли бы быть

  1. зеркальный, RAID1-стиль;
  2. или сцепленный, в стиле JBOD;
  3. или полосатый, RAID0-стиль.

случаи приказаны старт с самой легкой иметь дело. Я проинструктирую вас, как отличить их друг от друга и как с ними справиться, чтобы в конечном итоге смонтировать разделы.

установка должна быть сделана с -o ro во-первых, пока вы будете уверены, что вы получили это право. В некоторых случаях mount может преуспеть и дать вам доступ к искаженной структуре каталогов и/или зашифрованным файлам. Безумные данные и / или метаданные указывают на то, что вы не получили это право. Установка только для чтения гарантирует, что вы не повредите образам.


1. зеркальный, RAID1-style

в этом случае оба диска должны содержать одинаковые данные, если они здоровы; они оба должны содержать одну и ту же таблицу допустимых разделов. Только изображение у вас как /dev/loop2 сообщает таблицу разделов. Это может быть потому что

  • они не были зеркальными, в первую очередь,
  • или эти ошибки, которые вы упомянули на других дисках, произошли там, где таблица разделов (в случае таблицы разделов DOS это MBR, т. е. в самом начале, номер сектора 0).

однако есть одна большая подсказка, которая делает RAID1 маловероятным в вашем случае:fdisk говорит, что есть точно 976773168 секторов на одном диске, но последний сектор четвертого раздела 1953533951. Это почти в два раза больше, это предполагает, что макет раздела появляется на двух незеркальных дисках.

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

mount -o ro,offset=$((512*2048)) /dev/loop2 /mnt/partition1
mount -o ro,offset=$((512*31459328)) /dev/loop2 /mnt/partition2
mount -o ro,offset=$((512*31664128)) /dev/loop2 /mnt/partition3

etc. Вы можете даже не использовать losetup и /dev/loop2 но укажите путь к файлу напрямую, mount должно создать прибор петли на своих и отрегулировать это как раз точное:

mount -o ro,offset=$((512*2048)) /path/to/the/image2.raw /mnt/partition1

2. конкатенированный, в стиле JBOD

если диски JBOD используют MBR для хранения таблицы разделов,fdisk найдет его только на самом первом диске. Другие диски могут не сообщать ничего или некоторые безумные таблицы разделов; вероятность получения таблицы разделов, которая выглядит здравомыслящей с не первого диска, очень низка, но даже тогда эта таблица разделов ничего не значит.

если диски, строящие JBOD, используют GPT для хранения таблицы разделов, такие инструменты, как gdisk найдет первичную таблицу на самом первом диске, вторичную (резервную) таблицу на самом последнем.

у вас есть два образа, один из них сообщает о разделе DOS таблица (т. е. таблица разделов в MBR), другие отчеты нет таблицы разделов. Если они создают JBOD, вы знаете тот, который соответствует /dev/loop2 идет первым.

в вашем случае разделы 1 и 2 достаточно малы, чтобы полностью вписаться в первый диск JBOD. Вы можете попробовать смонтировать их с соответствующим смещением от подошвы /dev/loop2. Если это дает вам доступ к здравомыслящим файловым системам, то вы будете знать, JBOD, вероятно, правильная установка. Для доступа ко всем разделам необходимо объединить изображения.

вот мой ответ обеспечивает способ объединения изображений без записи результата на диск. В вашем случае процедура может быть:

  1. dmsetup create mydisk
  2. тип 0 976773168 linear /path/to/the/image2.raw 0 Enter
  3. тип 976773168 976773168 linear /path/to/the/image1.raw 0 Enter
  4. нажмите Ctrl+D

результирующее устройство должно быть /dev/mapper/mydisk. Попробуйте смонтировать из него любой раздел уместно offset=….

уничтожить устройство вызова dmsetup remove mydisk.


3. полосатый, RAID0-style

аналогично JBOD, если диски RAID0 используют MBR для хранения таблицы разделов,fdisk найдет его только на самом первом диске. Другие диски могут не сообщать ничего или некоторые безумные таблицы разделов; вероятность получения таблицы разделов, которая выглядит здравомыслящей с не первого диска, очень низка, но даже тогда эта таблица разделов ничего не значить.

если диски RAID0 используют GPT для хранения таблицы разделов, ситуация усложняется. В зависимости от того, насколько велик размер полосы, вы можете или не можете получить первичную таблицу разделов с самого первого диска, вы можете или не можете получить вторичную (резервную) таблицу разделов с самого последнего диска. Вы должны получить устаревшую MBR с самого первого диска (если не возникает ошибка чтения).

у вас есть два образа, один из них сообщает таблицу разделов DOS (т. е. таблица разделов в MBR), другие отчеты нет таблицы разделов. Если они создают RAID0, вы знаете, что соответствует /dev/loop2 идет первым. Что вы не знаете размер полосы. В общем, нет твердого способа узнать это, вы должны попробовать общие ценности и проанализировать результаты.

процедура чередования изображений и создания виртуального устройства выглядит следующим образом:

  1. dmsetup create mydisk
  2. тип 0 1953546336 striped 2 256 /dev/loop2 0 /dev/loop1 0 Enter
  3. нажмите Ctrl+D

результирующее устройство должно быть /dev/mapper/mydisk. Число 256 означает размер полосы 128 Кб, и его нужно угадать правильно. В общем, невзирая на возможные неприятности с GPT раньше dmsetup, теперь gdisk -l /dev/mapper/mydisk должен вернуть допустимую таблицу разделов, если вы угадаете размер полосы вправо. Если вы ошибаетесь, таблица разделов может быть или не быть допустимой. Если он выглядит допустимым, попробуйте смонтировать все разделы с соответствующей offset=… значения.

в вашем случае таблица разделов, безусловно, будет тот, который вы получили от /dev/loop2.

остерегайтесь, что даже при неправильном предположении вы можете быть в состоянии смонтировать, но файлы будут зашифрованы. В этом случае umount вызвать dmsetup remove mydisk и повторить dmsetup create… С другим значением вместо 256. Числа, чтобы попробовать: 8, 16, 32, 64, 128, 256, возможно, другие силы 2. По возможности читайте файлы с проверяемым содержимым (например MP3, они играют без дрожания?) или формальная структура (например, PDF-файлы, открываются ли они без ошибок? чтобы сказать, верно ли ваше предположение. Файлы меньше, чем право размер полосы не может показать, что ваше предположение неверно, поэтому вы должны использовать avi 700 МБ, а не только текстовый файл размером в несколько КБ.

уничтожить устройство вызова dmsetup remove mydisk.

3
отвечен Kamil Maciorowski 2023-04-13 16:01

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх