我如何才能获取在一个大小的驱动器上使用 dd 制作的 NTFS 分区的图像,并将其写入另一个不同大小的驱动器?

我如何才能获取在一个大小的驱动器上使用 dd 制作的 NTFS 分区的图像,并将其写入另一个不同大小的驱动器?

我从 USB 驱动器运行 ubuntu 来制作硬盘分区的映像,我使用了 GNU ddrescue,它实际上类似于 dd。源驱动器(我制作映像的驱动器)为 160GB。

我如何才能获取使用 dd 在一个大小的驱动器上创建的 NTFS 分区的映像,并将其写入另一个不同大小的驱动器?我想要将图像写入的驱动器是 1TB。

我担心将分区写入另一个驱动器的分区,然后发现大小不匹配,甚至调整大小也可能不起作用,此外,无论如何我都不想调整分区大小。

我认为也许有一种方法可以将 dd 映像转换为 macrium 映像,因此我尝试使用 OSFmount 挂载映像,然后右键单击已挂载的分区并单击以在 macrium reflect 中创建映像,但 macrium 没有看到它,因为 macrium 似乎仅在存在实际的物理磁盘驱动器并从中创建映像时才有效,而不仅仅是在虚拟分区上。

那么如何将由 dd 制作的原始图像写入另一个驱动器的分区?

答案1

上次我做了类似的事情,我用一个定制的 Linux LiveCD 启动了 PC,其中包含一份分区.
在目标驱动器上安装了新的 MBR 和分区表(使用分区)。
对于源驱动器上的每个分区:

  • 在目标驱动器上创建一个至少与原始驱动器大小相同的新分区(使用分区或者磁盘管理)。
    扇区数越接近原始扇区数越好,也就是说,移植的文件系统出现问题的可能性就越小。

  • 使用以下命令将原始驱动器的分区(或分区映像)复制到目标驱动器

  • 根据新要求调整目标分区的大小(使用分区)。
    分区内的文件系统将相应调整。
    增加大小应该相当快。

  • 对下一个分区重复上述操作。


附录

但是 Gparted 没有选项可以隐藏分区。

您的断言是错误的。
首先选择一个分区。
然后从菜单栏中选择Partition,并Manage Flags从下拉菜单中选择。
从那里您可以启用/禁用各种分区标志,包括“隐藏”。

它也没有将主要内容转换为逻辑内容的选项......

这是一个值得怀疑的转换,最好通过基本操作来完成
逻辑分区要求它存在于延长分区。
自动创建扩展分区确实会产生影响,包括可用大小和对后续操作的影响。

注意,创建多个扩展分区的能力取决于工具,并且需要可移植。为了与 Windows 兼容,只能有一个扩展分区。

...因此,如果将图像复制到分区上,然后想要将分区从主分区更改为逻辑分区,则他们必须删除该分区并将其重新创建为逻辑分区,然后再次复制

我上面描述的步骤明确指出,在写入/复制映像之前应创建目标分区。
如果目标分区需要是逻辑分区,则首先确保已有一个扩展分区,然后创建逻辑分区。
如果在原始分区是逻辑分区时创建主分区,那么您只是在破坏复制过程。

将主分区转换为逻辑分区是一种虚假操作。


附录 2

假设我不知道原始硬盘是主硬盘还是逻辑硬盘,因为例如原始硬盘已损坏。
那么您是否仍会说,如果您创建主硬盘而不是逻辑硬盘,那么这是一个拙劣的复制过程,因此可以理解必须再次复制?

在什么时候以及如何确定目标分区应该是逻辑分区?

鉴于这些答案,那么为什么在将目标分区创建为主分区之前无法做出这一决定呢?


实际上,复制过程与创建分区是分开的,并且......

在我的程序中不是这样。
每个目标分区都按其原始大小创建。将
文件系统(即分区映像)写入新分区后,将调整其(分区和文件系统)的大小。
此过程依赖于 GParted 知道如何调整分区中包含的文件系统的大小。
我不必查找/学习任何文件系统命令来了解如何将文件系统适合其分区。该任务已分配给 GParted。


如果有转换选项,那么就不必再次复制 -

从主分区到逻辑分区的转换并不像您想象的那么简单(或方便)。

网页描述了一种只需单击一两下鼠标即可实现“主分区到逻辑分区”的实用程序。
文章末尾的这条突出的评论揭示了其中的陷阱:

The location and the size of the primary partition will be slightly different after 
converting due to the fact that the logical partition is 63 sectors bigger 
than primary partition.

(措辞不当,因为很难判断“大 63 个扇区”是指位置还是指逻辑分区的大小(或两者兼而有之?)。“位置”的变化当然是有道理的。所以我很确定,如果作者指的是大小,那么他得到的是大小差异,否则就意味着转换比原始磁盘空间消耗更多。根本没有理由增加结果分区的大小。)

除了分区大小的变化(?)之外,这句话的后果证实了分区的复制将非常耗时。
执行此复制所需的时间大约是重新创建逻辑分区和写入映像所需时间的两倍。

你可能会问,这是为什么?

您从主分区开始。
逻辑分区必须包含在扩展分区内。
因此,必须将原始(主)分区的起始位置推回,以便为新扩展分区(起始位置)腾出空间。
理论上,一个扇区就足够了,但惯例是一条磁道,或 63 个扇区的假硬盘几何形状。

为了创建这个可用空间,原始(主)分区(及其文件系统)首先必须在分区末尾减少 63 个扇区(假设此转换消耗零新的磁盘空间)。
然后必须将原始(主)分区(及其文件系统)向后移动 63 个扇区。
此移动需要耗时读取和写入分区的每个扇区。
移动完成后,可以在新释放的区域中创建扩展分区,并且可以将原始分区重新定义为逻辑分区。

当您已经有要写入的图像时,此分区转换过程不会节省您的任何时间。

避免转换过程中耗时的复制的唯一方法是使用“作弊”程序并要求未分配的轨道现有的主分区,例如此实用程序

Note: ... there should be at least 63 free sectors in front of the primary partition 
when changing it to logical.

另外,您写道“您获得的扇区数越接近原始扇区数越好,也就是说,移植的文件系统出现问题的可能性就越小。”<-- 您能详细说明一下吗?

这只是我复制原始分区的尝试。
可能存在分配舍入,并且您无法创建具有与原始分区(或映像大小)完全相同的扇区数的分区。
因此,将扇区数舍入到下一个分配步骤。

就像如果我没有将其关闭然后我调整其大小,这意味着什么,会发生什么?
这是否意味着调整大小后的分区仍然会保持与文件系统不同的大小?

当分区大小和文件系统之间存在微小差异时,GParted 不会发出任何抱怨。
使用 GParted 调整大小后,文件系统似乎完全占据了分区。
我还没有尝试过您描述的场景,所以我没有答案。

答案2

对于 Windowsdd和其他第三方工具来说不是对分区进行映像的有效方法。

  • Windows 有总是本机支持分区或单个目录的映像。
    • 系统分区只能从 WinPE/WinRE 进行映像,而所有其他分区都可以在启动到 Windows 时进行映像。
    • 工作记忆模块西窗口我是年龄)可以捕获整个分区或单个文件夹/文件。
      创建WimScript.ini配置文件来指定排除或例外。

  • 所有 WinPE/WinRE 工作记忆模块ImageXDISM包含在其中。

    • 温控器: 道斯重新安装环境

      • 例如 Windows 安装启动媒体 (SHIFT+F10访问终端)
    • 温瑞: 道斯R生态恢复环境


命令

WinPE 默认只有 32MB 的暂存 [临时] 空间,因此/ScratchDir是必需的

  • Windows >=8:DISM用于捕获图像:

    DISM /Capture-Image /ImageFile:"Z:\Base.wim" /CaptureDir:"C:" /Name:"Windows Backup" /Description:"Base Image 2019.08.24 @ 08:30" /Compress:Max /CheckIntegrity /Verify /NoRpFix /ScratchDir:"Z:\"
    
  • Windows <=7:ImageX代替 DISM:

    ImageX /Capture "C:" "Z:\Base.esd" "Windows Backup" "Base Image 2019.08.24 @ 08:30" /Compress:Recovery /Check /Verify /NoRpFix /ScratchDir:"Z:\"
    



笔记:

  • 它是不可能的ESD/WIM 映像损坏
    • 提供的成像命令是总是发行:
      • 故障诊断管理: /CheckIntegrity&/Verify
      • 图像X: /Check&/Verify

  • ESD 只能采取系统分割
    • /Compress:Recovery是唯一可用的压缩算法。
      • ESD 压缩比比 WIM 压缩比高出约 33%。
      • 在 Windows 10 中,Microsoft 仅允许通过 ESD 按钮重置导出图像

  • ESD/WIM 是智能压缩图像格式
    • 当将新图像附加到图像时,仅将更改的文件添加到图像中
      • 新附加的图像利用先前图像中已包含的未更改文件的相同副本。
        • 这使得图像相对于其中包含的数据来说保持较小。



DISM 和 ImageX 先决条件


例如:/Get-WIMinfo||/Info

PS $  ls -file

  Directory: Z:\WIM

    Mode                LastWriteTime            Length  Name
    ----                -------------            ------  ----
    -a----        2018.12.24 03:34:13   95,019,530,773B  Base.wim
    -a----        2016.06.14 22:32:36              568B  DISM.cmd
    -a----        2016.05.17 05:36:10               97B  wimscript.ini

PS $  dism /get-wiminfo /wimfile:Base.wim

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

    Index : 1
      Name : Alienware 18: Windows 10
      Description : v1803: Base (Drivers Only)
      Size : 22,710,283,446 bytes

    Index : 2
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (No Customizations)
      Size : 45,591,850,754 bytes

    Index : 3
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (Customized)
      Size : 94,958,267,312 bytes

    Index : 4
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 1 Installed (Customized)
      Size : 101,588,267,910 bytes

    Index : 5
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 2 Installed (Customized)
      Size : 101,905,314,237 bytes

    Index : 6
      Name : Alienware 18: Windows 10
      Description : v1809: Updated Applications
      Size : 114,959,954,040 bytes

  The operation completed successfully.
PS $  dism /get-wiminfo /wimfile:Base.wim /index:1

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 1
      Name : Alienware 18: Windows 10
      Description : v1803: Base (Drivers Only)
      Size : 22,710,283,446 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 1
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 24288
      Files : 112665
      Created : 2018.05.05 - 13:56:47
      Modified : 2018.05.05 - 13:56:47
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:2

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 2
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (No Customizations)
      Size : 45,591,850,754 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 1
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 45803
      Files : 203058
      Created : 2018.05.06 - 01:55:47
      Modified : 2018.05.06 - 01:55:48
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:3

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 3
      Name : Alienware 18: Windows 10
      Description : v1803: Software Installed (Customized)
      Size : 94,958,267,312 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 81
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 62409
      Files : 350446
      Created : 2018.06.01 - 19:09:51
      Modified : 2018.06.19 - 21:26:18
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:4

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 4
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 1 Installed (Customized)
      Size : 101,588,267,910 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 81
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 61908
      Files : 346074
      Created : 2018.06.08 - 21:54:02
      Modified : 2018.06.19 - 21:26:18
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:5

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 5
      Name : Alienware 18: Windows 10
      Description : v1803: Software Group 2 Installed (Customized)
      Size : 101,905,314,237 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17134
      ServicePack Build : 1
      ServicePack Level : 81
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 76113
      Files : 423408
      Created : 2018.06.09 - 20:38:36
      Modified : 2018.06.19 - 21:26:18
      Languages :
              en-US (Default)

  The operation completed successfully.


PS $  dism /get-wiminfo /wimfile:Base.wim /index:6

  Deployment Image Servicing and Management tool
  Version: 10.0.18362.1

    Details for image : Base.wim

      Index : 6
      Name : Alienware 18: Windows 10
      Description : v1809: Updated Applications
      Size : 114,959,954,040 bytes
      WIM Bootable : No
      Architecture : x64
      Hal : acpiapic
      Version : 10.0.17763
      ServicePack Build : 195
      ServicePack Level : 0
      Edition : Professional
      Installation : Client
      ProductType : WinNT
      ProductSuite : Terminal Server
      System Root : WINDOWS
      Directories : 87659
      Files : 452028
      Created : 2018.12.24 - 04:27:13
      Modified : 2018.12.24 - 04:27:15
      Languages :
              en-US (Default)

  The operation completed successfully.

答案3

Gparted 使用命令 ntfsresize 和...我看到在 Gparted 中执行此操作的两种方法..

方法 1

gparted 中的一个选项,gparted 调用该选项‘check’!

一种方法是,Gparted 实际上会识别文件系统何时小于分区,并在那里放置一个感叹号

在此处输入图片描述

您可以右键单击该分区(即 gparted 显示的该分区的行)并转到信息,它会说存在不匹配以及修复它的选项。

在此处输入图片描述

修复该问题的方法是右键单击分区,然后单击“检查”

根据 gparted 给出的命令信息,它运行的命令是一些相当简单的 ntfsresize 命令,简单到甚至不需要向 ntfssize 指定多少 MB 或 MiB。

在此处输入图片描述

方法 2

这个方法和锯末说的差不多。

每次您在 Gparted 中调整分区大小时,它都会调整文件系统大小以填满整个分区。

如果在 gparted 中您将分区的大小增加哪怕很小的量(例如 1MB),那么 gparted 也会扩展文件系统。


注意 - 无论是 gparted“检查”还是 gparted 调整大小这两种方法,如果分区中有 Windows,则需要考虑一些事项。因为硬盘上需要有一个系统保留分区,如果不存在,则根本无法加载 Windows 7/10。而且它将是活动分区。

注 2- 另一种方法是使用 fdisk,而不是调整分区大小。这涉及删除分区并使用相同的起点但不同的大小重新创建它。并使用​​ ntfsresize 调整文件系统大小。并考虑是处理 MB 还是 MiB。

Gparted 有“启动”选项(一个关键选项,使分区处于活动状态),以及在所谓“标志”下的“隐藏”选项。

相关链接- 如何调整 NTFS 卷的大小以填充分区? 这里有很多有关相关方法的有用信息。

相关内容