今天我发现主文件表本身就是一个文件。但是,我猜那个文件没有路径,你无法打开、删除或修改它。所以如果那是一个文件,那么分区可能也是文件吗?NTFS 文件的定义是什么?
答案1
MFT 的路径是\$Mft
- 镜像是\$MftMirr
。Windows 会阻止您在运行时列出、打开或修改它们,但如果您在某些工具(例如 EnCase)下查看卷,它们是可见的。
NTFS 文档将它们称为“元文件”。对于 Windows 来说,它们的名称不如它们在文件表中占据的位置重要(即,$Mft
是否是磁盘上的文件 1)——这是有道理的,因为如果没有元文件的内容,Windows 就无法通过名称来定位文件,因此,在 NTFS API 深处可能存在一种仅通过文件编号来访问文件的方法(有点像在 Linux 中通过“inode”编号而不是名称来打开文件)。
答案2
但是,我猜测该文件没有路径,您无法打开、删除或修改它。
您可以调用 ReadFile() 并为其指定文件名$MFT. 哦
NTFS 文件的定义是什么?
从技术上讲,它是一串比特流。因此,磁盘上的所有内容(包括引导扇区)都是文件。分区实际上并不是文件。您实际上并不是打开分区本身,而是打开分区中的文件。
我在这里引用微软的话:
所有文件系统数据,包括系统引导代码和目录,都由 NTFS 文件系统存储在文件中。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364056(v=vs.85).aspx
答案3
下面是一个非常简单的视图,因为 NTFS 已经扩展了日志功能等。
分区是定义磁盘中用于卷的区域的表中的条目。它们是存在于外部文件系统,并被 BIOS 和 OS 用来构建数据在磁盘上的存储方式。
NTFS 卷NTFS 文件系统的核心包含一个主文件表。它是操作系统打开并用来构造存储和存储有关卷所含文件的元数据的文件。磁盘上的每个文件在主文件表中都有一个记录条目,如果足够小,则完全存在于 MFT 中。
较大的文件是文件记录条目指向的范围。
目录是包含有关文件记录条目的索引信息的文件,如果足够小,则也完全存在于 MFT 中。
由于小文件可能完全存在于 MFT 中,并且卷中可能有许多文件和目录,因此 MFT 也可能被分割以增加其存储空间(与 FAT 不同,FAT 仅限于某个预设区域)。