我使用以下命令创建了dd
/ 的图像:dev/vda
远程控制[电子邮件保护]“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:数据
知道它可能是什么吗?
按照 Sven 的建议使用 kpartx 我得到:
kpartx -l /home/backup/vda.img
循环已删除:/dev/loop0
我已重新启动系统并再次尝试该命令:
kpartx -lv /home/backup/vda.img
ioctl: LOOP_CLR_FD: 设备或资源繁忙,
无法删除循环:/dev/loop0
在 dmesg | tail 我得到了
[ 73.445903] 设备映射器:uevent:版本 1.0.3
[ 73.446574] 设备映射器:ioctl:4.22.0-ioctl(2011-10-19)已初始化:[电子邮件保护]
答案1
您可能需要在映像文件内挂载分区。这可以通过 来完成kpartx
。
kpartx -l /path/to/image
将列出文件内的分区并
kpartx -a /path/to/image
将它们添加到/dev/mapper/loopXpY
(其中X
和Y
不同),您可以从那里使用 挂载它们mount
。
请参阅man kpartx
以了解更多信息。
答案2
我已设法通过以下方式解决该问题:
我检查了想要复制的分区的大小,然后在备份服务器上创建了具有该大小的本地文件,并使用以下命令在其中创建了分区:
fallocate -l 85899345920 vda.img
fdisk -H 16 vda.img
kpartx -a vda.img
mount /dev/mapper/loop1p1 /mnt/test/ -t ext4
然后我使用 dd 将数据从服务器复制到备份分区。
检查了周围的一切,一切似乎都很好。