如何创建没有未分配空间的 HDD 映像?

如何创建没有未分配空间的 HDD 映像?

我需要将这个包含 Windows 安装的 HDD 转换为 *.vdi,以便创建没有未分配空间的可启动 *.img。

这个硬盘

Device     Boot  Start       End   Sectors  Size Id Type
/dev/sdb1  *      2048    718847    716800  350M  7 HPFS/NTFS/exFAT    
/dev/sdb2       718848 105582591 104863744   50G  7 HPFS/NTFS/exFAT

但是使用VBoxManage convertfromraw /dev/sdb2会创建一个动态大小的 vdi,但其最大值不可更改,为 223 GB。VBoxManage modifyhd --resize根本无法减小大小,VBoxManage modifymedium --compact也无法更改它。经常使用 sdelete 写入零(如建议的那样)是不适用的,因为它是未分配的空间。

dd按建议使用在 Server Fault 上的这个主题中通过创建两个图像并在稍后合并它们,会产生不可启动的图像。

那么如何排除源硬盘的未分配空间呢?

答案1

由于这两个分区均位于磁盘的前部,因此您只需对磁盘的该部分进行映像即可。

尝试使用dd

dd if=/dev/sdb of=image.dd bs=4M count=54058286592 iflag=count_bytes

这里,count等于要映像的字节数 - 分区 2 的末尾,×512(扇区的大小)。

为了允许更大的块大小(增加传输速率),您必须指出您的count论点是“字节“ 并不是 ”输入块“ (默认情况下) - 使用iflag=count_bytes

相关内容