.img 文件还原到磁盘分区

.img 文件还原到磁盘分区

我从一个有两个分区的硬盘上创建了一个 backup.img 文件。现在我想将这些分区写入另一个硬盘。但问题是我不知道怎么做?如果我使用 dd,它会将完整的 backup.img 文件写入一个分区,然后我什么也看不到。请帮忙。

编辑 1 dd if = /XXX/backup.img of = /dev/sdb1

实际上 sdb 有许多分区,所以我无法将 backup.img 写入完整的磁盘。

答案1

  • 例如,如果您制作了整个驱动器的映像,/dev/sdb那么您应该将其恢复为整个驱动器。

  • 但是如果您制作了分区的映像 /dev/sdb1,那么您应该将其恢复到分区。

您可以使用 检查镜像文件的内容kpartx。它可以看到目录结构(如果有的话)(而不仅仅是位于镜像头端的文件系统)。请参阅此示例,

地图:

$ sudo kpartx -av t-3.5g.img
add map loop0p1 (253:0): 0 6293372 linear 7:0 503907
add map loop0p2 (253:1): 0 1954 linear 7:0 1953
add map loop0p3 (253:2): 0 500000 linear 7:0 3907

删除地图:

$ sudo kpartx -d template-3.5GB.img

请注意,当其他工具看到时,分区的设备可能看起来像这样:

/dev/mapper/loop0p1
...

另一个例子,

$ sudo kpartx -av lubuntu-18.04.5-desktop-amd64.iso
add map loop0p1 (253:0): 0 2345472 linear 7:0 0
add map loop0p2 (253:1): 0 4928 linear 7:0 2314176

$ lsblk -f /dev/loop0
NAME      FSTYPE  LABEL                     UUID                                 MOUNTPOINT
loop0     iso9660 Lubuntu 18.04.5 LTS amd64 2020-08-06-23-08-05-00               
├─loop0p1 iso9660 Lubuntu 18.04.5 LTS amd64 2020-08-06-23-08-05-00               
└─loop0p2 vfat                              EC34-71CF                            

$ lsblk -f /dev/mapper/loop0p1
NAME    FSTYPE  LABEL                     UUID                                 MOUNTPOINT
loop0p1 iso9660 Lubuntu 18.04.5 LTS amd64 2020-08-06-23-08-05-00               

当您知道自己拥有什么时,您也会知道如何克隆内容。但也可以挂载映射的源分区和目标分区并提取文件(使用rsync或其他程序复制它们)。

相关内容