RAW写入未安装的vhd

问题描述 投票:1回答:1

我知道,如果您挂载了vhd(或其他虚拟磁盘格式),则可以对其进行写入。但是如何在不挂载的情况下写入vhd?有没有好的软件可以使用?

原始,指硬盘原始复制工具提供的内容。您可以只获取一个文本文件或另一个文件,然后将其中的字节精确地写入磁盘。

mount vhd
1个回答
0
投票

对于“固定的” VHD,您可以按照您所说的:“只要获取一个文本文件或另一个文件,然后将其中的字节精确地写入磁盘即可。”固定VHD只是磁盘映像,最后是512页脚。只要您不触摸此尾注脚,原始块级别的编辑就可以了。

对于动态VHD或物理磁盘的稀疏表示,该任务归结为将逻辑磁盘偏移转换为“容器”文件偏移。具体来说,对于动态VHD,整个磁盘长度分为逻辑2MB窗口。动态VHD本质上是2MB块的序列;没有特别的顺序。含义:在动态VHD映像中,可能会有2MB磁盘窗口出现在2MB磁盘窗口之后,而实际物理磁盘中的2MB磁盘窗口实际上在前2MB窗口之前。在块分配表中维护哪个VHD块对应于哪个物理磁盘窗口的映射。 BAT条目(与如何潜在地不按顺序放置数据块不同)是有序的,并且包含相应容器数据块的动态VHD文件偏移。

因此,我们要做的就是:使用BAT中2MB逻辑窗口的条目找到我们需要写入的逻辑块的“ VHD文件偏移”。然后,向其添加512(即跳过每个块之前的扇区位图)。此时获得的VHD文件偏移量是您需要在给定输入逻辑磁盘偏移量的情况下写入的偏移量。 BAT很可能没有您需要写入的逻辑磁盘块的条目。在这种情况下,您需要向动态VHD附加新的[512 Bytes + 2MB]数据块,更新BAT条目以指向该块的开始(512扇区),然后更新动态标头和页脚的CRC字段由于我们已经更新了BAT(CRC已结束)。请记住,此方案仅对未链接的动态VHD有效。意思是,如果存在一个链接的差分子VHD,那么我们应该对子而不是基础应用以上过程。动态VHD的标头中再次显示了谁是父母和谁是孩子的关系。写入子进程还需要更新512字节扇区位图。

每个虚拟图像容器都有相似的方案,以稀疏方式表示磁盘块。如果我们采用这种格式,则可以进行读取和写入(在块级别)。此外,在大多数情况下,原则上,我们可以通过将卷级别偏移量转换为磁盘级别,然后运行上面的查找,来进行粒度卷级别读取]

© www.soinside.com 2019 - 2024. All rights reserved.