一、(针对一个分区)文件系统FAT和NTFS的结构区别
FAT文件系统:DBR-FAT1-FAT2-根目录-数据区(-剩余扇区)
->winhex查看FAT ,一般比较依赖boot template(这里面反应的是BPB中的内容)来定位FAT1、FAT2、根目录等(还没查看过具体内容)
->FAT表上前4个字节是编号第1簇(描述介质F8 FF FF 0F或F8 FF FF FF)
->DBR和MBR、EBR的第一个扇区一样用55AA结束,但其55AA前的是引导代码,而后者前64个字节是分区表项;
NTFS文件系统:DBR-MFT区-MFT部分备份-DBR备份(最后一个扇区)
->winhex查看NTFS ,也比较依赖boot template来定位MFT的起始位置,DBR部分和MFT并非相邻
->NTFS中还有一些元文件(也没查看过具体内容)
(NTFS结构上与其它文件系统最大的不同在于,大多数文件系统是对文件的内容进行读写,NTFS是对包含文件内容的属性进行读写;功能上安全性更高还没体会)
二、(针对磁盘)磁盘类型和重要参数
1.MBR基本磁盘(第一个扇区就包含分区表信息)
2.GPT基本磁盘(试用版的winhex不让看partition template)(第一个分区是保护MBR,第二个分区就可以看到框架信息)
从GPT头中,可以知道GPT头、分区表、GPT分区,分区表备份位置等信息:
->头8个字节 GPT的签名 EFI PART;
-> 0x48-ox4F:分区表起始LBA,接着分区表项数(4bytes),分区表项字节数(4bytes的位置);
-> 0x28-0x2F:分区区域的起始LBA,接着分区区域的结束LBA(8bytes),
GPT分区表项,128字节,最多可以有128项(即128个分区),128字节中:
16-16-8-8-8-72:
分区类型GUID-分区GUID-分区起始LBA(8个字节)-分区结束LBA-分区属性-分区unicode名
(GPT磁盘128个分区表项,一个分区可以64位标识扇区号, 这是相比MBR磁盘的4个分区表项,一个分区用32位标识扇区,相比的巨大优势)
动态磁盘不用盘符,用“卷”命名;“动态磁盘”的最大优点是可以将磁盘容量扩展到非邻近的磁盘空间;但要注意的是你的磁盘里必须有最少1MB没有被分配的空间;
3.MBR动态磁盘
-> 第7个扇区是私有头(512字节) (私有头和LDM中存储和读取时不用调换高低位)
0x11B (8字节)逻辑磁盘的开始LBA,接着(8字节)是逻辑磁盘大小;
0x12B (8字节) LDM的起始LBA,接着(8字节)是LDM大小,一般为2048secs;
-> 最后1M(2048扇区是LDM数据库)
LDM数据库的结构:占动态磁盘的最后1MB=2048扇区。
扇区地址 |
扇区数 |
结构名称 |
0 |
1 |
总数0 |
1 |
1 |
目录表1(TOCBLOCK) |
2 |
1 |
目录表2(TOCBLOCK) |
17 |
1 |
数据库的配置信息(VMDB)(在目录表0x2E指明) |
18 |
1481 |
数据库的配置记录(VBLK)(在目录表0x36指明) |
1498 |
224 |
数据库的日志记录(KLOG)(在目录表0x50指明) |
1856 |
1 |
私有头的第二个备份(在私有头0x28指明) |
2045 |
1 |
目录表2的备份 |
2046 |
1 |
目录表1的备份 |
2047 |
1 |
私有头的第一个备份(在私有头0x20指明) |
-> VBLK 数据库配置记录项(从LDM18扇区开始)
VBLK的标准头:
0x12开始2字节记录类型(0x35磁盘组、0x34磁盘(D)、0x33分区(P)、0x32组件(C)或0x51卷(V));
每个记录128字节 (128/16=8);
关系 V->C->P->D;
4.GPT动态磁盘
不像在MBR中的第7个扇区中存放有PRIVHEAD,PRIVHEAD只存在于LDM数据库中,并保持一份备份;即LDM的结构没变;
LDM的1M空间作为磁盘的第一个分区;