将FAT转换为NTFS所需的可用空间 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
http://www.sina.com.cn 2004年11月08日 14:36 新浪科技 | ||||||||||||||||||
文/Microsoft China 从FAT文件系统到NTFS的磁盘分区转换需要一定的可用磁盘空间,以用于建立NTFS磁盘结构。本文介绍使用 Convert.exe 将FAT转换为NTFS的步骤并讨论转换所需要的空间。 FAT 和NTFS使用不同的磁盘结构表示文件的空间分配。这些结构通常被称作图元数据或文件系统的开销。
FAT 文件系统的图元数据由下列各项组成:即引导扇区、一个或多个文件分配列表、一定大小的根目录结构以及与子目录中的文件数目相关的每个子目录的可变空间。 与FAT和NTFS相关的另一种开销与两种文件系统按一定大小的簇分配磁盘空间有关。这些分配单元或簇的实际大小是在格式化时确定的,默认大小取决于卷的大小。对于大小相近的卷而言,NTFS所默认的簇的大小小于FAT的默认大小。 由于文件数据的空间仅可以按整个簇的数量进行分配,所以在FAT卷上即使一个字节文件最后也将使用相当于一个簇的磁盘空间。NTFS的情况与FAT类似,但是相比FAT稍微复杂一些,在本文中将不做详细介绍。 与FAT一样,NTFS有一定数量的容量开销与一定数量的各个文件的开销。为了支持NTFS的高级功能(如可恢复性、安全性、大容量支持等等),NTFS图元数据开销稍大于FAT图元数据开销。另一方面,由于NTFS簇开销小于FAT簇开销,即使不使用NTFS文件压缩,NTFS卷上通常也能存储不多于但至少也会等同于FAT卷上的数据量。 为避免在转换过程中由于转换失败而使文件受到破坏的可能性,Convert.exe 必须使用FAT文件系统所认可的可用空间建立NTFS图元数据。这样,如果转换无法完成,用户文件的FAT表示仍旧有效。使得该方法复杂化的原因在于其中一个NTFS数据扇区必须占用磁盘上的指定位置,同时数量有限的某些其它结构必须占用临接扇区。 转换过程的一般概述如下: 1. 为固定位置的NTFS结构与其它临接数据(如有必要)创建一些空位(即重新分配FAT簇)并保存新的 FAT。例如,如果由于不可读的原因,必要的扇区无法使用,转换过程会失败且FAT卷与试图转换前的状态将保持一致。 由于在任何时候均有可能发生崩溃,上述过程最大限度减小了磁盘破坏的可能性。 备注:几乎所有写操作是到FAT可用空间的,因此转换失败会使FAT保持原样。 例如,只有当转换失败可能会引起问题时,我们才写入非可用空间,这些情况包括: · 在步骤 1 的最后,当“转换”覆盖FAT时。重新分配簇的算法可以保证:如果在该过程中出现转换失败,CHKDSK 将可以修复磁盘而不丢失任何数据。 · 在步骤 5,写引导扇区时。如果在该步骤中出现故障,且正在转换的卷是系统分区(用于引导系统的活动主分区),就有可能使系统停留在它无法开始的状态。发生这种情况(一般不可能发生)时,仍有可能使用启动软盘启动系统。 Convert.exe 根据在FAT卷上预先存在文件的个数以及卷的大小进行计算以统计出在开始转换之前需要多少可用空间。对于标准硬件(每个扇区有 512 字节的硬盘),计算方法为: 1. 开始时,将卷的大小(以字节为单位)除以 100。如果该值小于 1,048,576,则取 1,048,576。如果该值大于 4,194,304,则取 4,194,304。 除上述算法之外,如果在FAT卷上有扩展属性信息,Convert.exe 将考虑所需要的额外空间。扩展属性信息通常不提供,而且在系统已运行 OS/2 且使用扩展属性时才考虑提供。 上述算法基本上反映了由 Convert.exe 所执行的算法。在给定系统上所获得的实际结果可能会稍微有所不同。 备注:这是在尝试转换之前 Convert.exe 所需要的可用空间。该算法考虑了在FAT可用空间中可能遇到坏扇区的可能性。但是,在卷有足够可用空间可以开始转换且发现磁盘空间的重要碎片不可用的情况下,转换过程可能会失败。如上所述,这将不会导致磁盘损坏。卷应自动退回为FAT的状态。 这篇文章中的信息适用于:
|