楼主: ttnml - 

《数据重现:文件系统原理精解与数据恢复最佳实践》内容精选

[复制链接]

该用户从未签到

0

主题

152

回帖

155

积分

[INTOHARD]班长

Rank: 2

积分
155
发表于 2009-2-8 15:45:06 | 显示全部楼层
如果真的出了这样的好书,那好多店就要关门了

该用户从未签到

132

主题

1250

回帖

5851

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
5851
发表于 2009-2-8 17:38:16 | 显示全部楼层
绝对是好书,支持了,希望能快点出,另外有书的话,希望能转告一下,我也买一本。谢谢!!

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
 楼主| 发表于 2009-2-9 09:08:30 | 显示全部楼层
多谢!还望朋友们继续支持!

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
 楼主| 发表于 2009-2-9 09:17:49 | 显示全部楼层

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
 楼主| 发表于 2009-2-9 09:27:35 | 显示全部楼层
(续4楼未完的内容)
2.6.2  GPT磁盘总体布局
可以在运行带有Service Pack 1 (SP1) 的 Windows Server 2003的磁盘管理中进行MBR与GPT磁盘的相互转换,然后进行相应的分区操作。也可以使用 DiskPart.exe 命令行实用程序或 EFI 固件实用程序 Diskpart.efi 在基本 GPT 磁盘上创建分区。
一个转换为GPT并建立分区后的磁盘,总体布局如图2.37所示。
图2.37.JPG
                     图2.37  GPT磁盘总体布局
我们可以看到,一个GPT磁盘可以分为两大部分:保护MBR和EFI部分。
(1)第一部分只由0号扇区组成,在这个扇区中包含一个DOS分区表,分区表内只有一个表项,这个表项描述了一个类型值为0xEE的分区,大小为整个磁盘(如图2.38所示)。这个分区的存在可以使计算机认为这个磁盘是合法的,并且已被使用,从而不再试图对其进行格式化等操作,所以该扇区又被称为“保护MBR”。实际上,EFI根本不使用这个分区表。
图2.38.JPG
                    图2.38  GPT磁盘的0号扇区
(2)另一部分为EFI部分,EFI部分又可以分为4个区域:EFI信息区(又称为GPT头)部分、分区表部分、GPT分区部分和备份区域。
        EFI信息区,也称为GPT头,起始于磁盘的1号扇区,通常只占用这一个扇区。GPT磁盘创建后,由GPT头定义分区表的位置和大小。Windows限定分区表项为128个。GPT头还包含头和分区表的校验和,这样就可以及时发现错误或者改变。
        分区表区域包含分区表项。这个区域由GPT头定义,一般占用磁盘2~33号扇区。分区表中的每个表项由起始和结束地址、类型值、名字、属性标志和GUID值组成。分区表建立后,128位的GUID对系统来说是唯一的。
        分区部分是最大的区域,由分配给分区的扇区组成。这个区域的起始和结束地址由GPT头定义。
        备份区域位于磁盘的尾部,包含GPT头和分区表的备份。它占用GPT结束扇区和EFI结束扇区之间的33个扇区。其中最后一个扇区用来备份1号扇区的EFI信息,其余的32个扇区用来备份2~33号扇区的分区表。

该用户从未签到

7

主题

118

回帖

1000

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
1000
发表于 2009-2-9 10:44:07 | 显示全部楼层
有多厚呢?
1000页以上方显深度。
低于500页不买。

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
 楼主| 发表于 2009-2-9 11:54:55 | 显示全部楼层
呵呵,会起始过500页,但绝不会达到1000页,因为考虑到书价的问题,搞太厚了会增加读者购买成本,也会影响销量。在书中几乎找不到为了增加厚度而强加进去的填充内容。出版后大家可以讨论一下存在的问题,也请大家提出宝贵意见。

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
 楼主| 发表于 2009-2-9 13:09:32 | 显示全部楼层

GPT磁盘EFI信息扇区数据结构

EFI信息扇区位于磁盘的1号扇区,也称为GPT头。GPT磁盘创建后,由GPT头定义分区表的位置和大小,Windows限定分区表项为128个。GPT头还包含头和分区表的校验和。EFI信息扇区的结构如表2.21所示。

表2.21  EFI信息扇区结构
相对字节偏移
(十六进制)         字节数        说明
00~07          8        签名(ASCII码“EFI PART”
08~0B          4        版本
0C~0F          4        GPT头大小字节数
10~13          4        GPT头CRC校验和
14~17          4        保留
18~1F          8        当前GPT头的LBA扇区号,也即为EFI区域起始扇区号
20~27          8        GPT头备份LBA扇区号,也即为EFI区域结束扇区号
28~2F          8        GPT分区区域起始LBA
30~37          8        GPT分区区域结束LBA
38~47          12        磁盘GUID
48~4F          8        GPT分区表起始LBA
50~53          4        分区表项数
54~57          4        每分区表项占用字节数
58~5B          4        分区表CRC校验和
5C~1FF         366        保留

通过这些结构中的描述值,我们可以确定GPT头、分区表、GPT分区区域、分区表的备份位置等结构布局。图2.39显示了一个GPT头的实例。
图2.39.JPG
具体分析如下:
1)0x00~0x07:8个字节,GPT头签名“4546492050415254”,ASCII码为“EFI  PART”。
2)0x08~0x0B:4个字节,版本号。
3)0x0C~0x0F:4个字节,GPT头大小字节数,此处的值为0x5C,即92个字节。
4)0x10~0x13:4个字节,GPT头校验和。
5)0x14~0x17:4个字节,保留。
6)0x18~0x1F:8个字节,当前GPT头的LBA扇区号,即EFI区域起始扇区号,通常为1。
7)0x20~0x27: 8个字节,GPT头备份位置的LBA扇区号,即EFI区域结束扇区号,此处的值为224909(0x086E8D)。
8)0x28~0x2F:8个字节,GPT分区区域起始LBA扇区号,此处的值为34(0x22)。
9)0x30~0x37:8个字节,GPT分区区域结束LBA扇区号,此处的值为224876(0x036E6C)。
10)0x38~0x47:16个字节,磁盘GUID。
11)0x48~0x4F:8个字节,GPT分区表起始LBA扇区号,此处的值为2(0x02),通常都是起始于2号扇区。
12)0x50~0x53:4个字节,分区表项数,限定为128(0x80)。
13)0x54~0x57:4个字节,每分区表项占用字节数,固定为128(0x80)。
14)0x58~0x5B:4个字节,分区表CRC校验和。
15)0x5C~0x1FF:420个字节,保留。

[ 本帖最后由 ttnml 于 2009-2-9 13:10 编辑 ]

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
 楼主| 发表于 2009-2-9 14:58:44 | 显示全部楼层

GPT分区表项数据结构

2.  GPT分区表项数据结构
GPT磁盘的2~33号扇区被系统保留用做存放GPT磁盘的分区表,以描述GPT区域内的各个分区。分区表共占用32个扇区,每个分区表项占用128个字节,32个扇区共可以存放128个分区表项。分区表项的数据结构见表2.22。

表2.22  GPT分区表项数据结构
字节偏移
(十六进制)        字节数        含义
00~0F        16        分区类型GUID
10~1F        16        分区唯一GUID
20~27        8        分区起始LBA
28~2F        8        分区结束LBA
30~37        8        分区属性
38~7F        72        分区名的Unicode码

0x00~0x0F处的16个字节共128个bit用于确定分区的类型。对于一个GPT磁盘,分区既用来存储系统信息也用于存储文件系统。例如,任何使用EFI的计算机,必须有一个由启动硬件和软件所需要的文件组成的EFI系统分区。表2.23为Intel对GPT分区类型值的定义,表2.24为Microsoft对GPT分区类型值的定义。

表2.23  Intel对GPT分区类型的定义
GUID类型值        含义
00000000-0000-0000-0000-000000000000        未分配项
C12A7328-F81F-11D2-BA4B-00A0C93EC93B        EFI系统分区
024DEE41-33E7-11d3-9D69-0008C781F39F        包含DOS分区表的分区

表2.24  Microsoft定义的一些GPT分区类型值
GUID类型值                                                    含义
E3C9E316-0B5C-4DB8-817D-f92DF00215AE                   Microsoft 保留分区(MRP)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7                   主分区(基本磁盘)
5808C8AA-7E8F-42E0-85D2-E1E90434CFB3                   LDM  元数据分区(动态磁盘)
AF9B60A0-1431-4F62-BC68-3311714A69AD                   LDM  数据分区(动态磁盘)
    Microsoft定义的GPT分区类型值含义如下:
        Windows使用“保留分区”来存放临时文件和数据。
        “主分区”是包含有文件系统的基本分区,类似于DOS分区的主分区。
        “LDM元数据分区”和“LDM数据分区”用于Microsoft动态磁盘。
将磁盘转换为GPT磁盘而未进行分区前,系统就已经使用了第一个分区表项,这个分区表项用来描述一个被称为“Microsoft  reserved  partition”的保留分区(如图2.40所示),这个分区紧接在分区表区域之后从34号扇区开始,大小因磁盘容量不同而有所不同。
图2.40.JPG
分区表项内相对偏移0x20~0x27为该保留分区的起始扇区号,一般为34;          0x28~0x2F为分区结束扇区号,本例中为65569(0x010021)。
创建分区后,各分区的描述信息依次存放在“Microsoft保留分区”的分区表项之后,图2.41中第2、3个分区表项即为用户创建的第1、2个分区的分区表信息。我们可以看到,第一个用户分区起始于65570号扇区,结束于86049号扇区;第二个用户分区起始于86050号扇区,结束于127009号扇区。
创建分区的同时,系统会将各分区的起始扇区进行清零操作。
图2.41.JPG

该用户从未签到

12

主题

77

回帖

298

积分

[INTOHARD]工兵

Rank: 1

积分
298
 楼主| 发表于 2009-2-9 17:01:23 | 显示全部楼层
弟兄们帮着顶下啊,明天再贴!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表