Как смонтировать дд образ цифрового океана?

8

Я создал ddобраз / dev/vdaиспользуя следующую команду:

ssh root@1.2.3.4 "dd if = / dev / vda" | dd of = / home / backup / vda.img

и я не могу смонтировать его на свой локальный сервер Ubuntu, куда я его перенес.

Я получаю это в dmesg | tail:

[763158.222159] EXT4-fs error (device loop0): ext4_map_blocks:504: inode #8:block 10541546: comm mount: lblock 23018 mapped to illegal pblock (length 1)
[763158.222299] jbd2_journal_bmap: journal block not found at offset 23018 on loop0-8
[763158.222367] JBD2: bad block at offset 23018
[763158.222581] JBD2: recovery failed
[763158.222588] EXT4-fs (loop0): error loading journal

Если я попытаюсь проверить это с помощью file:

vda.img: данные

Есть идеи, что это может быть?

Используя kpartx, как предложил Свен, я получаю:

kpartx -l /home/backup/vda.img
петля удалена: / dev / loop0

Я перезагрузил систему и повторил команду:

kpartx -lv /home/backup/vda.img
ioctl: LOOP_CLR_FD: занятое устройство или ресурс
не может выполнить цикл: / dev / loop0

И в dmesg | хвост я получаю

[73.445903] device-mapper: uevent: версия 1.0.3
[73.446574] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) инициализировано: dm-devel@redhat.com

Debrian
источник
Забавно, если мы научимся использовать hexedit ... проверка реальных байтов диска очень полезна в подобных ситуациях.
Петер - Восстановить Монику
Как именно вы создали этот образ?
Майкл Хэмптон
@MichaelHampton добавить команду в вопросе
Debrian
@Debrian: ddмаловероятно, что использование живого диска приведет к чему-либо полезному, это работает надежно только на несмонтированных (или, по крайней мере, на смонтированных ro) дисках.
Свен
@Sven Как бы вы предложили сделать такое изображение на капле Digital Ocean?
Дебриан,

Ответы:

6

Скорее всего, вам нужно смонтировать разделы внутри файла образа. Это можно сделать с помощью kpartx.

kpartx -l /path/to/image

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

kpartx -a /path/to/image

добавит их в /dev/mapper/loopXpY(где Xи Yменяется), откуда вы можете установить их mount.

Смотрите man kpartxдля получения дополнительной информации.

Свен
источник
Когда я пытаюсь перечислить их, я получаю следующий вывод: петля kpartx -l /home/backup/vda.img удалена: / dev / loop0
Debrian
@Debrian: отредактируйте любой вывод в свой вопрос, не публикуйте его как комментарий.
Свен
1

Мне удалось решить эту проблему следующим образом:

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

fallocate -l 85899345920 vda.img
fdisk -H 16 vda.img
kpartx -a vda.img
mount / dev / mapper / loop1p1 / mnt / test / -t ext4

Затем я использовал dd для копирования данных с сервера в резервный раздел.

Проверено все вокруг и все вроде нормально.

Debrian
источник