2010-05-28 58 views
0

我想开发一个程序,仅将分区的“数据”复制到另一个分区。我想这样做,程序从源分区的第一个扇区开始,并检查是否使用扇区。开发一个基于扇区的分区复制程序?

如果使用 将其复制到目标parition。 其他 请勿复制。

换句话说,就像只将分区的内容复制到另一个扇区。

问题: 有没有办法检查硬盘上的特定扇区是否被使用?

我正在使用的编程语言是C++和NTFS中的底层文件系统。

非常感谢。

+0

重新标记,因为(1)NTFS实际上并未在部门级别上工作,(2)标签应该与问题和组类似问题相关。 – MSalters 2010-05-28 08:55:49

+0

感谢您的信息。我应该先检查ntfs是如何工作的。 – baltoro 2010-05-30 14:50:16

回答

1

你的问题根本上有缺陷。 NTS可以将数据和元数据存储在同一个群集中。两者都作为文件属性处理。

我也想知道重点是什么。没有元数据,原始数据就毫无用处。你甚至无法知道一个文件的结尾和另一个文件的开始。

+0

你说得对。我的问题是错误的。我不应该寻找原始数据。我只是认为每个扇区都必须有一些属性,告诉操作系统某个扇区是否可用于存储数据或已被占用。无论如何,我的错误。 :) 谢谢 – baltoro 2010-05-30 14:49:35

+1

不,自由列表在群集级别进行管理。但从那里开始相当简单。有一个特殊的'$ Bitmap'文件,每个群集有一位告诉操作系统群集是否空闲。请注意,您不应该依赖_running_系统上此文件的内容。 – MSalters 2010-05-31 08:24:02

+0

非常感谢。这很有帮助。我如何查看MFT和$ Bitmap? – baltoro 2010-06-01 09:27:24

1

IIRC扇区只存储原始字节和低级错误特定数据。您需要的信息是一种只有文件系统可以提供给您的元信息。

+0

好的,谢谢Nick。我会看看我是否可以通过您提到的元信息来找到实现我想要的内容的方法。 – baltoro 2010-05-30 14:47:32

0

ntfsclone就像刚刚描述的那样。

它可以在复制时跳过未分配的块。