《NTFS文件系统扇区存储探秘》——1.2 主分区表

简介:

本节书摘来自异步社区《NTFS文件系统扇区存储探秘》一书中的第1章,第1.2节,作者:宋群生 , 宋亚琼著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 主分区表

NTFS文件系统扇区存储探秘
主分区表占用0号扇区(线性寻址)的64字节,位移从1beH到1fdH,字节编号为447到510。它共有4个分区表项,每个分区表项占16字节。一般只使用2个分区表项,另外2个分区表项全为0。分区表项的格式见表1-1。
screenshot

注:偏移量和字节编号是第1个分区表项的值,后面的分区表项按照相同的规律递增。

通常说的分区表指的是主分区表,另外在扩展分区的每一个逻辑驱动器中,都有一个分区链表,对它们的解读方法基本是相同的。

下面将图1-1所示的两个分区表项单独列出来进行分析。

分区表项一。(位移1beH至1cdH,编号447到462)
screenshot

第1个分区表项记录的是本分区的有关参数。

将16字节按表1-1的格式分为8段,分别进行说明。

第1、2、4、5段与表中的内容一样,不必重复。

第3段是2字节,表示扇区值和柱面值,因为本书介绍的工具程序使用线性寻址方式,所以对本字段的内容就没有必要详细解读了。

第6段是2字节,也表示扇区值和柱面值。

第7段是一个双字,存储顺序低字节在前,高字节在后,写成十六进制是“0000003fH”,十进制是“63”。

第8段是一个双字,它的值是十六进制为“003ffa86H”,十进制为“4192902”。

分区表项二。(位移1ceH至1ddH,编号463到478)
screenshot

第2个分区表项记录的是下一分区的有关参数。

将16字节按表1-1的格式分为8段,各字段的解读方法与第1个分区表项相同,就不重复说明了。

分区链表的字段组成与解读方法与主分区表基本相同,读者可自行分析研究。需要说明的是,最后一个逻辑驱动器的分区链表中,只使用了1个分区表项,其他3个分区表项的字节数据全为0。

相关文章
|
存储 数据安全/隐私保护 索引
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
|
Ubuntu 开发工具 C语言
Ubuntu环境下的Samba源码编译
以上就是在Ubuntu环境下编译Samba源码的步骤。希望这个指南能帮助你成功地从源码编译Samba。如果你在编译过程中遇到任何问题,你可以查阅Samba的官方文档,或者在网上搜索相关的教程和解决方案。
421 23
|
11月前
|
消息中间件 存储 大数据
阿里云消息队列 Kafka 架构及典型应用场景
阿里云消息队列 Kafka 是一款基于 Apache Kafka 的分布式消息中间件,支持消息发布与订阅模型,满足微服务解耦、大数据处理及实时流数据分析需求。其通过存算分离架构优化成本与性能,提供基础版、标准版和专业版三种 Serverless 版本,分别适用于不同业务场景,最高 SLA 达 99.99%。阿里云 Kafka 还具备弹性扩容、多可用区部署、冷热数据缓存隔离等特性,并支持与 Flink、MaxCompute 等生态工具无缝集成,广泛应用于用户行为分析、数据入库等场景,显著提升数据处理效率与实时性。
|
XML 开发框架 .NET
C# | Linq基本功 —— 必学的必熟的10个方法
Linq(Language Integrated Query)是C#语言中的一种查询语言,它提供了一种统一的方式来查询和操作各种数据源,如集合、数据库、XML等。Linq的出现使得开发者能够以一种更简洁、更直观的方式来处理数据,提高了代码的可读性和可维护性。
506 0
|
SQL 弹性计算 Ubuntu
阿里云服务器操作系统怎么选择?哪个版本合适?
阿里云服务器操作系统的选择主要取决于用户的实际使用场景,阿里云百科以Web网站应用为例,程序语言如果是ASP、.NET、HTML、数据库ACCESS、SQL Server建议选择Windows;PHP、PERL、CGI、数据库MySQL、SQLite建议选择Linux。像阿里云百科主要用来搭建网站,安装的是CentOS操作系统,搭配宝塔Linux面板
4428 0
阿里云服务器操作系统怎么选择?哪个版本合适?
el-input实现后缀图标和clearable的兼容,调整el-input clearable与自定义图标展示位置问题
el-input实现后缀图标和clearable的兼容,调整el-input clearable与自定义图标展示位置问题
1202 1
|
存储 算法 数据处理
C++一分钟之-范围基础:views与ranges
【7月更文挑战第1天】C++20的Ranges库简化了集合操作,引入了Range(具有begin()和end()的对象)和View(延迟计算的Range)。常见问题包括混淆Range与Container、忽视View的延迟性和错误修改只读View。要避免错误,需理解Range概念、明确操作执行时机并检查View的可变性。代码示例展示了如何过滤并平方vector中的奇数,体现Range的使用。范围库带来了代码的简洁和效率,但理解其工作原理至关重要。
520 0
|
缓存 区块链 前端开发
|
算法 Linux 调度
C++ std::condition_variable 条件变量类探索:解锁条件变量的底层原理
C++ std::condition_variable 条件变量类探索:解锁条件变量的底层原理
1581 0