从 dd 创建的映像中解压文件和目录?

从 dd 创建的映像中解压文件和目录?

我使用创建了 NTFS 分区的映像dd

我想知道是否可以将镜像中的文件和目录卸载/解压到任何大于镜像大小的分区,这样我就可以像访问原始分区一样访问文件和目录了?

如果是的话我该怎么办?


添加:

刚刚发现一些有用的东西关联:

要从映像文件恢复分区或硬盘,只需交换参数“if”和“of”即可。例如,从镜像文件“disk2.img”恢复/dev/sda的第一个分区:

dd if=disk2.img of=/dev/sda1
  1. 我想知道如果分区of不是创建映像的原始分区,会发生什么?

    • 考虑分区of小于或大于原始分区的情况。
    • of还要考虑分区中已经有一些数据的情况。是否可以从分区中的特定位置进行恢复,以避免覆盖分区上的任何现有数据of
  2. dd可以从其他类似应用程序(甚至 Windows 软件)使用的创建的映像进行恢复吗?换句话说,创建的图像是否dd具有特定于 的某种格式dd

谢谢!

答案1

这并不完全是正确的做法。

您需要做的是将磁盘映像安装为环回设备:

mount -o ro,loop -t ntfs disk.image /mnt/test

图像的内容将在/mnt/test(但您可以选择将其安装在您喜欢的任何地方)。您可以从中复制单个文件(或整个目录树)。用于umount /mnt/test1卸载它。

至于将映像恢复到新磁盘,您需要按照创建映像的相同方式进行恢复。即,如果您创建了整个块设备的映像(例如,sda),则恢复到整个块设备。如果您从分区(例如sda1)创建它,则仅将其恢复到分区。

话虽这么说,如果您要进行分区,则需要在恢复之前在目标设备上创建它们。目标设备的大小还需要等于或大于您创建的映像。

如果您正在处理分区,那么您可以创建完全相同大小的分区,就可以了。您可以使用尚未分配给分区的任何块来创建其他分区。如果您首先处理整个块设备恢复,则使用gparted* 修改分区。


* 我很确定gparted可以直接调整磁盘映像中的分区大小,但我更喜欢保持磁盘映像原始。

答案2

Bahamat 已经就如何从磁盘映像文件中提取文件(即环回安装它然后复制它们)给出了一个很好的答案,因此我将给出有关克隆文件系统的通用答案。

如果您的目的是备份和恢复,或将文件系统从一台计算机克隆到另一台计算机,则:

  1. 对于 Linux 和 unix,进行基于文件的备份几乎总是比磁盘或分区映像备份更好。您可以使用许多工具来执行此操作,包括cpiotar和(我最喜欢的)rsync

    如果您正在备份根文件系统,那么在恢复时您需要将 grub 引导加载程序重新安装到 MBR 中。有关详细信息,尤其是命令,请参阅 grub 文档grub-install

  2. ntfsclone对于 NTFS,请使用软件包中的工具ntfs-3g。它可以克隆 NTFS 分区并调整其大小。

  3. 克隆属是一个很棒的可启动 CD,用于备份/恢复以及克隆磁盘和分区映像。它使用易于使用的文本模式对话框和菜单系统包装了partedddresize2fs和许多其他工具。ntfsclone例如,它可以将一个分区或磁盘克隆到另一个分区或磁盘,或者克隆到网络文件共享(例如NFS 或samba)上的压缩映像文件,并从中恢复。

相关内容