Я сделал резервную копию своего жесткого диска NAS с помощью dd, и теперь я пытаюсь смонтировать образ, чтобы проверить его. Используя kpartx, я получаю следующую ошибку:

# kpartx -av 2018-02-23_dlink_nas.img 
add map loop0p1 (253:0): 0 1060224 linear 7:0 64
device-mapper: resume ioctl on loop0p2 failed: Invalid argument
create/reload failed on loop0p2
add map loop0p4 (253:1): 0 1024080 linear 7:0 1060288

тогда как раздел № 2 содержит фактические данные. Я предполагаю, что эта ошибка происходит из-за странной структуры файловой системы:

# file 2018-02-23_dlink_nas.img 
2018-02-23_dlink_nas.img: DOS/MBR boot sector; partition 1 : ID=0x82, start-CHS (0x0,1,2), end-CHS (0x41,254,61), startsector 64, 1060224 sectors; partition 2 : ID=0x83, start-CHS (0x81,190,14), end-CHS (0x3ff,254,63), startsector 2084368, 3900393296 sectors; partition 4 : ID=0x83, start-CHS (0x44,41,48), end-CHS (0x85,254,59), startsector 1060288, 1024080 sectors

Для исходного жесткого диска я могу смонтировать его с помощью mdadm, поскольку раздел данных представляет собой linux_raid_partition.

Есть ли способ все еще смонтировать образ? Было бы здорово иметь доступ к моим данным в случае их потери.

Обновить:

(1) Размер изображения составляет 1 816 156 778 496 байт.

(2) Размер изображения очень хорошо соответствует оригинальному жесткому диску,

# fdisk -l /dev/sdd
Disk /dev/sdd: 1.8 TiB, 2000398934016 bytes, 3907029168 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: 0x6c640956

Device     Boot   Start        End    Sectors   Size Id Type
/dev/sdd1            64    1060287    1060224 517.7M 82 Linux swap / Solaris
/dev/sdd2       2084368 3902477663 3900393296   1.8T 83 Linux
/dev/sdd4       1060288    2084367    1024080   500M 83 Linux

Partition table entries are not in disk order.# fdisk -l /dev/sdd
Disk /dev/sdd: 1.8 TiB, 2000398934016 bytes, 3907029168 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: 0x6c640956

Device     Boot   Start        End    Sectors   Size Id Type
/dev/sdd1            64    1060287    1060224 517.7M 82 Linux swap / Solaris
/dev/sdd2       2084368 3902477663 3900393296   1.8T 83 Linux
/dev/sdd4       1060288    2084367    1024080   500M 83 Linux

Partition table entries are not in disk order.

(3) Жесткий диск является одним из жестких дисков RAID1, я могу смонтировать его с

mdadm --assemble --run /dev/md0 /dev/sdc2

а затем монтирование /dev/md0

1 ответ1

0

Я воссоздал вашу таблицу разделов и провел несколько тестов. Эта ошибка, которую вы получили:

device-mapper: resume ioctl on loop0p2 failed: Invalid argument
create/reload failed on loop0p2

может указывать на то, что ваше изображение слишком маленькое. Действительно, ваш раздел 2 является последним (разделы расположены не по порядку), и ему нужно, чтобы изображение имело как минимум 3902477664 (= 2084368 + 3900393296) секторов по 512 В, то есть как минимум 1 998 068 563 968 Б. Но ...

Размер изображения 1 816 156 778 496 байт

Это явно слишком мало.

Размер изображения вполне соответствует оригинальному жесткому диску.

Нет. Любой из ваших дисков имеет 2000 398 934 016 В, что достаточно для размещения всех разделов. Правильное изображение всего жесткого диска должно быть одинакового размера.

Возможно, диск был только частично прочитан dd или изображение каким-то образом обрезано, или оно повреждено другими способами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .