如何挂载数字海洋的dd图像?


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:数据

知道会是什么吗?

使用Spart建议的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


如果我们学会使用hexedit,这是一件有趣的事。在类似情况下,检查磁盘的实际字节非常有用。
peterh-恢复莫妮卡

您究竟是如何创建此图像的?
迈克尔·汉普顿

@MichaelHampton在问题中添加命令
Debrian

@Debrian:启用dd活动磁盘不太可能会产生任何有用的结果,这仅在未安装(或至少在Ro-mount)磁盘上可靠运行。
Sven

@Sven您如何建议在Digital Ocean液滴上制作这样的图像?
Debrian

Answers:


6

您可能需要在映像文件中装入分区。可以使用来完成kpartx

kpartx -l /path/to/image

将列出文件内的分区,并

kpartx -a /path/to/image

会将它们添加到/dev/mapper/loopXpY(在何处XY不同处),您可以从那里将它们安装到该位置mount

请参阅man kpartx以获取更多信息。


当我尝试列出它们时,我得到以下输出:kpartx -l /home/backup/vda.img循环删除:/ dev / loop0
Debrian 2015年

@Debrian:在您的问题中编辑任何输出,请勿将其发布为评论。
Sven

1

我设法通过以下方式解决了该问题:

我检查了要复制的分区的大小,然后在备份服务器上创建了具有该大小的本地文件,并使用以下命令在其中创建了分区:

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

然后,我使用dd将数据从服务器复制到备份分区。

检查了周围的一切,一切似乎很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.