NTFS卷的特殊文件简介

1/22/2005 8:12:10 AM
NTFS卷的特殊文件
NTFS分区的Master File Table (MFT)中的前60个入口是被保留的,指向一些特殊文件,这些特殊文件在windows下一般是看不见的。Linux下也不行,FreeBSD下可以看见一部分。这里,我简单的介绍一下这些特殊文件吧。
NTFS 3.0中只使用了前12个。
1。\MFT (entry 0)
主文件表 (Master File Table ,MFT)
格式化为 NTFS 的卷上的一个 NTFS 系统文件,包含了该卷上的每个文件和文件夹的信息。MFT 是 NTFS 卷上的第一个文件。 该文件在FreeBSD下也是不显示的。

  1. \MFTMirror (entry 1) MFT的镜像,在FreeBSD下可以直接读取。
  2. \LogFile (entry 2) 卷日志文件,记录了卷的结构的改变。一般默认为65536k,在xp下你可以通过下面的命令查看和修改它的大小 例如 E:\>chkdsk E: /L 文件系统的类型是 NTFS。 目前日志文件大小为 65536 KB。 此卷默认的日志文件大小为 65536 KB。
  3. \Volume (entry 3) 存储整个卷的数据属性。通过打开路径\\.\C:就可以打开这个文件。Volume文件也具有卷名(volume name),卷信息(volume information)和对象标识符(object identifier)属性 5.\AttrDef (entry 4) 里面存储的是这样的数组 typedef struct { WCHAR AttributeName[64]; ULONG AttributeNumber; ULONG Unknown[2]; ULONG Flags; ULONGLONG MinimumSize; ULONGLONG MaximumSize; } ATTRIBUTE_DEFINITION, *PATTRIBUTE_DEFINITION; 6.\ (entry 5) 卷的根目录
  4. \Bitmap (entry 6) 卷上已分配的簇的位图(bitmap),
  5. \Boot (entry 7) 引导文件。 Boot的第一扇区,就是这个卷的第一扇区。如果这个卷是可引导的(bootdable),那么这里面存贮的,毫无疑问,就是引导信息。所以这里面的数据存储是被优化过的,并非按一般的方式对齐的。 Boot文件的大小可以大于一扇区,但是它的第一扇区的数据存贮格式大概是这样的: typedef struct { UCHAR Jump[3]; UCHAR Format[8]; USHORT BytesPerSector; UCHAR SectorsPerCluster; USHORT BootSectors; UCHAR Mbz1; USHORT Mbz2; USHORT Reserved1; UCHAR MediaType; USHORT Mbz3; USHORT SectorsPerTrack; USHORT NumberOfHeads; ULONG PartitionOffset; ULONG Reserved2[2]; ULONGLONG TotalSectors; ULONGLONG MftStartLcn; ULONGLONG Mft2StartLcn; ULONG ClustersPerFileRecord; ULONG ClustersPerIndexBlock; ULONGLONG VolumeSerialNumber; UCHAR Code[0x1AE]; USHORT BootSignature; } BOOT_BLOCK, *PBOOT_BLOCK; 每个参数的具体用途,请查阅相关文档 9.\BadClus (entry 8) 坏簇被扔在这里
  6. \Secure (entry 9) 存储文件的安全描述符
  7. \UpCase (entry 10) 所有65536个Unicode字符的大写格式
  8. \Extend (entry 11) 这个一个目录。 这里面存储的是一些NTFS3.0的扩展函数中所需要用到的特殊文件。比如“ObjId,” “Quota,” “Reparse” and “UsnJrnl.”

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥