我使用以下命令创build了/ dev/vda的dd映像:
ssh [email protected]“dd if = / dev / vda”| dd = / home / backup / vda.img
我无法将其安装在我调用它的本地Ubuntu服务器上。
我在dmesg | tail得到这个 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:数据
任何想法可能是什么?
作为斯文build议使用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:version 1.0.3
[73.446574] device-mapper:ioctl:4.22.0-ioctl(2011-10-19)initialised:[email protected]
您可能需要在映像文件中加载分区。 这可以用kpartx来完成。
kpartx -l /path/to/image
将列出文件中的分区和
kpartx -a /path/to/image
将它们添加到/dev/mapper/loopXpY (其中X和Y变化),从那里你可以挂载他们。
看到man kpartx更多的信息。
我已经设法通过以下方式解决问题:
我检查了我希望复制的分区的大小,然后在备份服务器上创build了一个具有该大小的本地文件,并使用以下命令在其中创build了分区:
fallocate -l 85899345920 vda.img
fdisk -H 16 vda.img
kpartx -a vda.img
mount / dev / mapper / loop1p1 / mnt / test / -t ext4
然后我用dd将数据从服务器复制到备份分区。
检查了一切,似乎都很好。