PART 1理论篇 3
第1章 数据恢复相关基础 3
1.1硬盘探秘 4
1.1.1硬盘结构 4
1.1.2硬盘接口 7
1.1.3磁道、扇区与柱面 10
1.1.4硬盘的启动过程 12
1.1.5硬盘的性能指标 12
1.1.6寻址方式 13
1.2计算机运行流程 14
1.2.1基本概念 14
1.2.2计算机的启动过程 15
1.3“数”之体验 17
1.3.1数制 17
1.3.2数制间的转换 18
1.3.3取整与取余运算 19
1.3.4数的存储格式 19
1.4工具软件 20
1.4.1虚拟磁盘软件InsPro Disk 20
1.4.2十六进制编辑软件Winhex 22
1.4.3硬盘检测软件MHDD 29
第2章 分区 33
2.1概述 34
2.1.1分区与卷 34
2.1.2 Unix下卷的使用 36
2.1.3扇区地址 37
2.1.4根据合理性判断分区信息的正确性 38
2.1.5数据恢复及电子取证 40
2.2 DOS分区 41
2.2.1概述 41
2.2.2主引导记录扇区MBR 42
2.2.3扩展引导记录扇区EBR 50
2.2.4数据恢复及电子取证 54
2.3 Apple分区 56
2.3.1概述 56
2.3.2 Apple磁盘布局 56
2.3.3分区表项数据结构 58
2.3.4数据恢复与电子取证 61
2.4 BSD分区 61
2.4.1 BSD分区概述 61
2.4.2 Free BSD分区 63
2.4.3 NetBSD与OpenBSD分区 64
2.4.4磁盘标签数据结构 65
2.4.5磁盘标签实例分析 67
2.4.6总结 72
2.5 Sun Solaris分区 72
2.5.1概述 73
2.5.2 Sparc平台下的Sun Solaris分区 74
2.5.3 i386平台下的Sun Solaris分区 78
2.5.4总结 82
2.6 GPT分区 82
2.6.1概述 82
2.6.2 GPT磁盘总体布局 84
2.6.3数据结构 85
2.6.4总结 90
2.7移动介质分区 90
第3章 FAT文件系统 93
3.1文件系统总论 94
3.2 FAT文件系统概述 99
3.3 FAT文件系统整体布局 100
3.4 FAT32的保留区 100
3.4.1引导扇区 101
3.4.2引导代码 106
3.4.3 FSINFO信息扇区 106
3.5 FAT32的FAT表 108
3.5.1 FAT表概述 108
3.5.2 FAT表的特性 108
3.5.3 FAT表的使用 109
3.5.4其他 111
3.6 FAT32的数据区 112
3.6.1根目录 112
3.6.2子目录 115
3.6.3目录项 116
3.7 FAT12/16文件系统 128
3.7.1 FAT12/16文件系统概述 128
3.7.2引导扇区 128
3.7.3 FAT表 131
3.7.4根目录与目录项 133
3.8分配策略 133
3.8.1簇的分配策略 133
3.8.2目录项的分配策略 134
3.9文件的建立与删除 136
3.10总结 137
3.10.1数据恢复分析 137
3.10.2取证分析 140
第4章 NTFS文件系统 145
4.1 NTFS概述 146
4.1.1概述 146
4.1.2基本概念 147
4.2 NTFS文件系统总体布局 149
4.3引导扇区 149
4.4主文件表MFT 152
4.4.1基本概述 152
4.4.2 Windows 2000的M FT项 153
4.4.3 Windows XP的MFT项 156
4.5 MFT属性 160
4.5.1属性的结构 160
4.5.2常规属性类型 165
4.5.3其他属性 188
4.6文件系统元文件 190
4.6.1 $MFT文件 190
4.6.2 $MFTMirr文件 191
4.6.3 $LogFile文件 192
4.6.4 $Volume文件 193
4.6.5 $AttrDef文件 193
4.6.6 $Root文件 195
4.6.7 $Bitmap文件 195
4.6.8 $Boot文件 196
4.6.9 $Secure文件 197
4.6.10 $UsnJrnl文件 198
4.6.11 $Quota文件 200
4.6.12 $Objld文件 202
4.7分配策略 203
4.7.1簇空间分配策略 203
4.7.2 MFT项分配策略 203
4.7.3属性分配策略 204
4.8时间值的更新 204
4.9文件的建立与删除 205
4.9.1建立文件 205
4.9.2删除文件 206
4.10总结 207
4.10.1分析注意事项 207
4.10.2数据恢复与取证分析 208
第5章 ExtX文件系统 211
5.1 ExtX文件系统概述 212
5.2 ExtX文件系统整体布局 213
5.3超级块 216
5.3.1超级块数据结构 216
5.3.2超级块实例分析 221
5.4块组描述符表和块组描述符 224
5.4.1块组描述符数据结构 224
5.4.2块组描述符实例分析 225
5.5块位图 227
5.5.1块位图的工作方式 227
5.5.2块位图实例分析 228
5.6 i-节点位图 229
5.6.1 i-节点位图实例 229
5.6.2定位一个i-节点的位图 230
5.7 i-节点表与i-节点 230
5.7.1 i-节点数据结构 231
5.7.2 i-节点实例分析 237
5.7.3 i-节点的属性 239
5.7.4 i-节点中时间值的更新 240
5.8扩展属性 242
5.8.1扩展属性的结构 242
5.8.2扩展属性实例分析 245
5.9目录项 246
5.9.1目录项数据结构 247
5.9.2目录项的特性 248
5.9.3目录项实例分析 250
5.10链接和挂载点 251
5.10.1链接 251
5.10.2挂载点 251
5.11 Hash树 252
5.11.1 Hash树数据结构 253
5.11.2 Hash树实例分析 254
5.12文件系统日志 255
5.12.1数据结构 256
5.12.2日志实例分析 258
5.13分配策略 260
5.13.1块的分配策略 260
5.13.2 i-节点分配策略 261
5.13.3文件名空间分配策略 262
5.14文件的建立与删除 262
5.14.1建立文件 262
5.14.2删除文件 264
5.15总结 265
5.15.1分析注意事项 265
5.15.2数据恢复与电子取证 268
第6章 UFS文件系统 273
6.1概述 274
6.2 UFS文件系统整体布局 276
6.3超级块 276
6.3.1概述 276
6.3.2数据结构 277
6.4柱面组摘要 288
6.5柱面组描述符 289
6.5.1概述 289
6.5.2数据结构 291
6.5.3位图 295
6.6引导代码 297
6.7 i-节点 298
6.7.1 UFS1的i-节点 299
6.7.2 UFS2的i-节点 301
6.8目录项 305
6.8.1数据结构 306
6.8.2实例分析 306
6.9分配策略 307
6.9.1存储空间分配策略 308
6.9.2 i-节点分配策略 309
6.9.3目录项分配策略 309
6.10文件的建立与删除 310
6.10.1建立文件 310
6.10.2删除文件 312
6.11总结 313
6.11.1分析注意事项 313
6.11.2数据恢复与取证分析 315
第7章 HFS+文件系统 317
7.1 HFS封装 318
7.1.1 HFS卷主目录块结构 318
7.1.2 HFS卷主目录块实例分析 319
7.2概述 320
7.2.1 HFS+的改进 320
7.2.2基本概念 321
7.2.3主要数据结构类型 322
7.2.4 HFS+特性 324
7.3 HFS+文件系统整体布局 325
7.4卷头 326
7.4.1数据结构 326
7.4.2实例分析 331
7.5节点 333
7.5.1节点的种类 333
7.5.2节点的基本结构 333
7.5.3头节点 337
7.5.4图节点 343
7.5.5索引节点 344
7.5.6叶节点 346
7.5.7节点的使用 346
7.5.8 HFS+节点与HFS节点的区别 347
7.6目录文件 348
7.6.1目录文件中档案项的key部分 349
7.6.2目录文件中档案项的数据部分 350
7.7域溢出文件 358
7.7.1域溢出文件中档案项的key部分 359
7.7.2域溢出文件中档案项的数据部分 359
7.7.3域溢出文件节点实例分析 360
7.7.4域溢出文件的使用 361
7.8坏块文件 363
7.9分配文件 363
7.10属性文件 364
7.10.1叉数据属性 365
7.10.2域属性 366
第8章 多磁盘卷 367
8.1 RAID 368
8.1.1 RAID级别简介 368
8.1.2 RAID中的基本概念 375
8.1.3 RAIDO阵列原理 376
8.1.4 RAID1阵列原理 377
8.1.5 RAID4阵列原理 377
8.1.6 RAIDS阵列原理 378
8.1.7 RAID6阵列原理 382
8.1.8 RAID 1E阵列原理 384
8.1.9 RAID DP阵列原理 386
8.1.10 RAID的实现 388
8.1.11数据恢复及取证注意事项 389
8.2磁盘跨区 391
8.2.1概述 391
8.2.2 Linux MD 392
8.2.3 Linux LVM 394
8.2.4 Microsoft Windows LDM 395
8.2.5总结 402
PART 2实践篇 405
第9章 数据恢复前的准备 405
9.1写在数据恢复之前的话 406
9.2检测磁盘 408
9.2.1用MHDD检测磁盘 408
9.2.2用MHDD清除主引导扇区“55AA”标志 411
9.2.3用PC-3000检测磁盘 412
9.3坏道处理 415
9.4镜像磁盘 417
9.4.1什么是“镜像磁盘” 417
9.4.2什么情况下需要对磁盘进行镜像 418
9.4.3用Media Tools镜像磁盘 419
9.4.4用HDClone镜像磁盘 424
9.4.5用Winhex镜像磁盘 427
9.5分区及格式化对磁盘的写入 431
9.5.1 Winhex “ 比较”功能的使用 431
9.5.2分区过程对磁盘的写入 434
9.5.3格式化过程对磁盘的写入 440
第10章 基本数据恢复 447
10.1分区恢复 448
10.1.1主分区表损坏恢复 448
10.1.2重新分区未格式化 459
10.1.3分区布局改变并进行了格式化 461
10.1.4使用FinalData快速寻找分区 462
10.2 DBR损坏后的恢复 465
10.2.1 FAT文件系统DBR损坏后的恢复 465
10.2.2 NTFS文件系统DBR损坏后的恢复 473
10.3格式化恢复 477
10.3.1原FAT32格式化成FAT32 477
10.3.2原FAT32格式化成NTFS 479
10.3.3原NTFS格式化成NTFS 480
10.3.4原NTFS格式化成FAT32 480
10.4删除恢复 481
10.4.1 FAT16文件系统下的删除 481
10.4.2 FAT32文件系统下的删除 483
10.4.3 NTFS文件系统下的删除 484
10.5数据恢复软件的使用 486
10.5.1使用R-Studio恢复数据 486
10.5.2使用Recover My Files恢复数据 500
第11章 RAID数据恢复 503
11.1概述 504
11.2 FAT表在阵列恢复中的作用 504
11.2.1利用FAT表计算块大小 505
11.2.2利用FAT表判断数据块顺序 506
11.2.3利用FAT表寻找校验块 507
11.3 MFT在阵列恢复中的作用 508
11.3.1利用 MFT记录编号判断块大小及数据块顺序 508
11.3.2利用MFT寻找校验块 510
11.4 RAIDO阵列恢复 513
11.4.1参数分析 514
11.4.2使用Winhex重组数据 515
11.4.3使用R-Studio恢复数据 518
11.5 RAID5阵列恢复 523
11.5.1循环方向的判断 524
11.5.2同步与异步的判断 525
11.5.3计算各个成员盘第一个校验块的位置 526
11.5.4利用FAT恢复演示 528
11.5.5利用MFT恢复演示 532
11.6 HP内外双循环阵列恢复 537
11.7 RAID 1E阵列恢复 538
11.7.1参数判断 539
11.7.2数据恢复 539
附录A Win32环境下磁盘操作五大函数 541
附录B 文件后缀名速查表 545