1.      NTFS 中所有都是文件,包括无数据,都是以文件形式进行访问。

元数据文件包括:

$Mft  $MftMirr  $LogFile $Volume  $AttrDef  $BitMap $Boot  $BadClus  $Quota $UpCase  $Cairo。

2.      普通文件(目录)的信息都是通过属性/值对来表示的。

3.      $MFT 中记录了所有文件的文件记录,文件记录大小一般为 1K。也就是每个文件都会在 $MFT 文件中存放一份记录,且这个文件记录一般为 1K 大小。

文件记录里一般也是属性-值对来组织。

4.      文件属性包括

#define$UNUSED                          (0X0)

#define$STANDARD_INFORMATION            (0x10)

#define$ATTRIBUTE_LIST                  (0x20)

#define$FILE_NAME                       (0x30)

#define$OBJECT_ID                       (0x40)

#define$SECURITY_DESCRIPTOR             (0x50)

#define$VOLUME_NAME                     (0x60)

#define$VOLUME_INFORMATION              (0x70)

#define$DATA                            (0x80)

#define$INDEX_ROOT                      (0x90)

#define$INDEX_ALLOCATION                (0xA0)

#define$BITMAP                          (0xB0)

#define$SYMBOLIC_LINK                   (0xC0)

#define$EA_INFORMATION                  (0xD0)

#define$EA                              (0xE0)

#ifdef_CAIRO_

#define$PROPERTY_SET                    (0xF0)

#endif  // _CAIRO_

#define$FIRST_USER_DEFINED_ATTRIBUTE    (0x100)

#define $END                             (0xFFFFFFFF)

5.      如果一个数据属性太大而导致一个文件记录不够存储,则会使用行串(run)来组织,一般一个文件的数据就是由这些行串表来组织起来的。对于非数据属性,也可以这么做。

其实准确地说,并不一定是一个数据属性,而是一个非驻留属性,即文件记录并不能记录一个属性的所有内容时,那么文件记录中只会保留属性头和行串信息,在数据区域里,这些行串信息所代表的数据,才表示这个属性。

6.      如果一个文件记录不能存储下所有属性或属性头,也就是一个文件的属性太多时(常常是因为数据区太碎,导致属性头中的行串太多),则其它属性会分配其它文件记录来存储,在 $ATTRIBUTE_LIST 里面会有串联信息(文件引用)。那么第一个 MFT 记录被称为 base file record。

7.      文件(记录)引用:指该文件在 MFT 中的位置。

8.      文件目录,对于小的文件目录,它的子文件及目录的文件引用信息被存放在 $INDEX_ROOT 属性中(不是 $DATA),对于大目录,用 B-树用来存放这些信息。B-树中的每一项,除了包含文件名(目录名)外,还包含相应的文件记录引用以及时间戳和大小等。$INDEX_ALLOCATION 记录了这些缓冲的行串信息。位图属性记录中缓冲区中哪些 VNC 被使用。所以 $INDEX_ROOT, $INDEX_ALLOCATION, $BITMAP 构建了这个 B-树。

9.      $INDEX_ALLOCATION 记录了目录项的所有行串。

10.  行串表示为 ,表达式为 <0xXY  Legnth(占用 x 个簇) Offset(y 起始簇号)>,比如: 0x31 0x06 0x12 0x34 0x56 ,表示 Length 为一个字节,偏移为 3 个字节,即表示从 簇号为 0x563412 开始的 0x06 个簇的空间。

行串计算的偏移是相对的,且是有符号的,第二个行串的偏移是根据第一个行串的偏移得来的。即拿第二个行串的偏移加上第一个行串的偏移,才得到第二个行串的真正偏移。

原文:http://blog.csdn.net/henzox/article/details/39579029

mft文件记录属性头包括_NTFS 文件系统基础知识相关推荐

  1. mft文件记录属性头包括_学懂主流NTFS分区文件系统,你也可以成为MM眼中的大神!...

    主要NTFS文件系统小讲第一课,学会了你也可以使用WINHEX进行底层数据分析,误删,误格式化,分区出错等一些故障在数据恢复软件处理不了时,你也可以通过这些知识来提高恢复几率. 由于篇幅有限不太可能一 ...

  2. mft文件记录属性头包括_关于NTFS-MFT

    一.Ntfs文件系统在磁盘上的分布 一个ntfs文件系统由引导扇区.MFT(包含MFT元数据)和数据区组成. NTFS中存储了两份MFT备份以防MFT文件损坏,两个MFT备份的具体起始位置都存储在引导 ...

  3. linux文件基础知识,linux文件系统基础知识

    利用直接指针.单级间接指针.二级间接指针.三级间接指针可保存的最大文件大小为: 1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,约 ...

  4. NTFS 文件系统基础知识

    1.      NTFS 中所有都是文件,包括无数据,都是以文件形式进行访问. 元数据文件包括: $Mft  $MftMirr  $LogFile $Volume  $AttrDef  $BitMap ...

  5. Linux操作系统文件系统基础知识详解

    标签:基础知识操作系统根目录Linux程序 一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Li ...

  6. linux文件系统基础知识

    这两天看了一本fedora 6的实践教程,下面是有关linux文件系统知识的学习笔记: 1.linux文件系统分配策略:     块分配( block allocation ) 和 扩展分配  ( e ...

  7. unix/linux文件系统基础知识

    1.linux文件系统分配策略: 块分配( block allocation ) 和 扩展分配 ( extent allocation ) 块分配:磁盘上的文件块根据需要分配给文件,避免了存储空间的浪 ...

  8. 属性加密(ABE)基础知识

    属性加密 最近在看ABE相关论文,因为本人(数学功底一般)不太能理解其中原理.所以特意记录ABE的基础知识,以便日后能快速重温. ABE常见分类 属性基加密的思想是让密文和密钥与属性集合和访问结构产生 ...

  9. html clear属性值,【Web前端基础知识】clear使用方法

    [摘要] 前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页.下面是[Web前端基础知识]clear使用方法,小编建议有准备参加考试的备考生一定要合理规划时间,仔细阅读相关规定,提 ...

最新文章

  1. android: 在android studio中使用retrolambda的步骤
  2. BLE安全机制从入门到放弃
  3. word标题大纲级别_快速按标题层级把Word转Excel—附详细操作步骤
  4. spring mvc教程_Spring MVC教程
  5. Cisco单臂路由实验
  6. Rust中mut, , mut的区别
  7. 数据分析用r还是python_想要从事数据分析,选择python还是R语言呢?
  8. java有常函数_Java开发笔记(十一)常见的数学函数
  9. POJ 2709 Painter 【贪心算法】
  10. 【渝粤教育】国家开放大学2018年春季 0420-22T酒店管理概论 参考试题
  11. linux虚拟内存和win,linux下的vm(虚拟内存)和windows下的作用是一样的,均是防止真实内存资源不足准备的. linux的vm相关参数...
  12. SpringBoot(三) SpringBoot中的日志配置
  13. 一场暴雨引发的装机日记
  14. asp.net937-图书馆座位管理系统
  15. CAS单点登录:CAS客户端搭建(整合Shiro和Spring Boot)
  16. 素数p阶群乘法循环群啥意思_如何证明素数阶群都是abel群?
  17. zxing 二维码生成深度定制
  18. 1+X 云计算运维与开发(中级)案例实战——搭建harbor私有仓库并实现主从同步
  19. VCS编译仿真警告Warning
  20. C++Python描述 LeetCode 1109. 航班预订统计

热门文章

  1. 6、存储函数详解,创建,查看,修改,删除
  2. 【C++】this指针
  3. raise IOError('The file is not exist!')
  4. MySQL中如何约束和排序数据
  5. 中心线超出轮廓线多少_激光切割的这些基础知识,你知道多少?
  6. 3000 字说说跨域!面试官听完之后露出了满意的笑容
  7. SSM三大框架整合Springfox(Swagger2)详细解决方案
  8. 怎么解决java.lang.NoClassDefFoundError错误
  9. Java数据库连接(JDBC)之一:JDBC详细连接过程
  10. 杭电oj2072,2091字符串java实现