注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Computer Science

I Pressed My Words Here. Will You Read ?

 
 
 

日志

 
 

(2.4) 《数据恢复技术(第2版)》学习笔记 (2.4)  

2010-12-13 22:04:40|  分类: 读书笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本笔记目录

《数据恢复技术(第2版)》学习笔记 1
硬盘内部结构2009.11.16 2
一、 SATA接口的硬盘 2
二、 温盘 2
三、 硬盘盘体的完整结构表 2
四、 磁盘盘面区域的划分 2
硬盘逻辑结构2009.11.16 3
一、 盘片(Disk) 3
二、 磁道(Track) 3
三、 柱面(Cylinder) 3
四、 扇区(Sector) 3
五、 容量(Capacity) 4
六、 数制与码制(Number Systems and Code System) 4
硬盘数据结构组织2009.11.17 5
一、 低级格式化(Low Level Format): 5
二、 分区(Subarea): 5
三、 线性地址扇区 7
四、 硬盘的高级格式化 8
五、 硬盘数据存储区域 9
Windows 95 / 98 / Me 文件系统20091123 20
Windows NT/2000/XP/2003文件系统20091125 26
一、 NTFS文件系统结构分析 26
二、 动态磁盘 36
附录1 名词 40
附录2 操作系统类型标示值表 41
附录3 使用Winhex完成硬盘分区的分区表查找 42
附录4 使用Winhex完成查找文件位置20091123 44
K: 45
L: 49
将原来的LNEW FOLDER文件夹下的LFILE2.TXT文件的大小由4KB(只在磁盘中占1~2个簇大小)扩大到15KB(在磁盘中占用4个簇大小),再来查找LFILE2.TXT文件 55


Windows 95 / 98 / Me 文件系统20091123

Windows 95 / 98 / Me没有本质的区别,尤其是文件系统的管理。

a) 硬盘区域的组织

Windows 95 / 98Windows Me支持的文件系统只有FATFAT 12 /FAT 16 /FAT 32

i. 系统如何利用FDTFAT查找文件

操作系统通过调用BIOSINT 13H中断来实现文件存取。INT 13H中断使用的参数是硬盘的物理参数,即

AH:功能号(02是读磁盘,03是写磁盘);

AL:一次读写的扇区数;

BX:内存缓冲区首地址;

DH:磁头号;

DL:磁盘设备号(A盘是0B盘是1,第一物理硬盘是80,第二物理硬盘是81);

CH:柱面号的低8位;

CL:低6位为要读的起始扇面区号,高两位柱面号的高2位。

操作系统由簇号获取磁头号、柱面号和扇区号的过程如下。首先,由簇号转换成起始逻辑扇区,其公式为:

起始逻辑扇区 = 隐含扇区数 + + × 每FAT扇区数 + FDT扇区数 + (起始簇号 ‐2)× 每簇扇区数

其中,起始簇号减2是因为簇号从2开始。

然后,操作系统用起始逻辑扇区除以每个柱面的扇区数,得柱面号。用余数除以每磁道扇区数得磁头号;其余数就是扇区号。最后用得到的柱面号、磁头号和扇区号加上本逻辑分区的起始柱面号、磁头号和扇区号,得到INT 13H所需的各项参数。

对于INT 13H扩展标准,其参数如下:

AL = 磁盘驱动器号(0=A1=B2=C等)

CX = 0FFFFH

DS:BX = 指向一个读写参数区,其内容为:

0~3 —— 起始逻辑扇区;

4~5 —— 要读写的扇区数;

6~9 —— 读写数据的存储区地址。

ii. 各个区域的相互关系

硬盘启动时首先由BIOS读入MBR的内容,以确定各个逻辑驱动器及其起始参数,然后调入活动分区的DBR,将控制权交给DBR,由DBR来引导系统。系统文件调入后,计算机系统就完全处于操作系统的控制之下,尤其是Windows 2000 / XP,对系统资源统一调配。在它们的控制下,要想绕过它们直接访问硬件,几乎是不可能的,这与Windows 95 / 98 / Me有本质的区别。此外,DBR中除了引导程序部分,还有一个很重要的BPB表,操作系统依靠BPB表中记录的一些系统参数来管理文件系统。

1. FAT16分区

2. 文件系统的参数都记录在DBRBPB参数表中,系统就依靠这些参数来确定FATFDTDATA区域的位置。

BPB参数(0B~3E,FAT12/FAT16

偏移

长度

说明

00

3

JMP指令:跳转到引导程序。后随一个空操作(90NOP(不属于BPB参数)

03

8

OEM标志:文件系统标志和版本号(不属于BPB参数)

0B

2

每扇区字节数:如512;记录扇区大小

0D

1

每簇扇区数:如4;记录着簇大小,即由多少个扇区组成一个簇

0E

2

DOS保留扇区数:如2;保留的扇区数,与FATFDT,DATA定位有关,低版本的系统为1,通过调整也可能为其他值。

10

1

FAT数:如2FAT表的个数,一般为2

11

2

引导记录数:如512;实际上就是早期的根目录最大所能容纳的目录项数,也可调整

13

2

扇区(小于32MB):0;扇区总数,小于32MB的分区,记录在这里,只有16位,所以最大为216×512=33554432Byte=32MB。对大于32MB的分区,用32位记录在20~23字节

15

1

介质描述符(十六进制):F8H;

16

2

FAT扇区数:如235FAT表本身的长度,以扇区为单位,为整数个扇区

18

2

每磁道扇区数:63;逻辑参数

1A

2

磁头数:255;逻辑参数

1C

4

隐含扇区:28435113;指从硬盘 LBA=0DBR的扇区数

20

4

扇区(超过32MB):240912;该分区的扇区总数,分区大小

24

1

BIOS设备(hexHD=8x:80

25

1

(未使用):0

26

1

扩展引导标记(29h):29h

27

4

卷序列号(十六进制):64 0C D3 07;随机序号

2B

11

卷标:FAT16;每个逻辑驱动器都有一个卷标,只是一个标识,由用户指定,这里为了区分分区,指定为FAT16,正好和文件系统一样。

36

8

文件系统:FAT16;明码形式的文件系统格式

系统在分区时以柱面为分区面,把位于同一个柱面内的所有扇区划分在一个分区内。

系统在管理分区时按照5个区域进行管理。

系统在对DATA进行簇管理时,最后面的几个扇区并不是正好形成一个簇。这几个位于分区末尾小于一个簇的扇区称为剩余扇区。

由于FAT的扇区数和DATA的扇区数相互关联。为了找到两者大小间的平衡点,列出计算FAT长度的公式:

FAT扇区数=[((扇区总数—保留扇区数—FAT扇区数×2FDT扇区数)÷每簇扇区数×2)4]÷512

FDT包含32个扇区:因为根目录下保留着512个目录项,每个目录项占用32个字节,所以FDT共占用512×32÷512=32个扇区。

MBR(包括虚拟MBR)至DBR的交接,DBR中记录着保留扇区、FATFDT,由这些参数就可确定各个区的入口。在FDT中,记录着根目录下文件或子目录结束,从而找到整个文件或目录在磁盘上的存储情况。其中,文件在FAT中的等级既有从前至后,也有从后转至前,以及交叉记录等情况,这和系统在写入文件时找到空闲簇的顺序有关。

DATA区的入口只有FDTFAT,所以FDTFATDATA非常重要。

3. FAT32分区

BPB参数表(0B~5A,FAT32)

偏移

长度

说明

00

3

JMP指令:跳转到引导程序。后随一个空操作(90NOP

03

8

OEM标志:文件系统标志和版本号

0B

2

每扇区字节数:如512;记录扇区大小

0D

1

每簇扇区数:如8;记录着簇大小,即由多少个扇区组成一个簇

0E

2

DOS保留扇区数:如32FAT32中基本上都是32

10

1

FAT数:如2FAT表的个数,一般为2,与FDT定位有关

11

2

引导记录数0;未使用,在FAT32文件系统中,已摒弃固定根目录的管理方式,对早期的根目录,采用和文件一样的方式来进行管理 ,称为根目录文件,没有固定大小,根据需要可以随时增加,没有根目录下最大目录项数为512的限制

13

2

扇区(小于32MB):0FAT32下已经没有这么小的分区,这一项不再使用

15

1

介质描述符(十六进制):F8H;

16

2

FAT扇区数:0FAT16中记录FAT表本身的长度,以扇区为单位,为整数个扇区FAT32下不用

18

2

每磁道扇区数:63;逻辑参数

1A

2

磁头数:255;逻辑参数

1C

4

隐含扇区:28676088;指从硬盘 LBA=0DBR的扇区数

20

4

扇区:7727202;该分区的扇区总数,分区大小

24

4

FAT扇区数:7536FAT32下每FAT表占用的扇区数

28

2

标记:0

2A

2

版本:0

2C

4

引导目录第一簇:178;这个参数非常重要,它的意义是根目录在DATA区的起始簇的位置,是所有文件和目录的入口,虽然不再有固定的FDT,但根目录文件还是有的。

30

2

备份引导扇区:6;FAT32保留了32个系统隐含区,并对DBR做了备份,该备份存放在逻辑6扇区,DBR损坏时可用它来进行恢复,这是FAT32新加的参数。

32

2

备份引导扇区:6FAT32保留了32个系统隐含扇区,并对DBR做了备份,该备份存放在逻辑6扇区,DBR损坏时可用它来进行恢复,这是FAT32新加的参数。

34

12

保留:00,未使用

40

1

BIOS设备(十六进制,HD=8x:80

41

1

(未使用):0

42

1

扩展引导标记(29H:29H

43

4

卷序列号(十六进制):2785D93C;随机序号

47

11

卷标:FAT32;每个逻辑驱动器都有一个卷标,只是一个标识

52

8

文件系统:FAT32;明码形式的文件系统格式

b) 根目录下文件的管理

FAT16FAT32的文件管理方式基本相同,都是利用DBR,FDTFAT配合实现文件系统的管理。FAT16FAT32文件目录项都是32字节。由于FAT32FAT16的发展,所以,对32个字节的定义有扩充,同时FAT16FAT表用2个字节表示一个簇,而FAT324个字节表示一个簇,这就是FAT16FAT32之间的异同。

i. FAT16根目录下文件的管理

Eg.file.txFDT登记项分析

46 49 4C 45 31 20 20 20 S4 S8 S4 20 00 86 68 8C

5E 2D 5E 2D 00 00 4F 86 5E 2D 08 00 0C 2B 00 00

文件名及其扩展名:46 49 4C 45 31 20 20 20 S4 S8 S4

属性字节,存档:20 00

创建时间单位精确到10-毫秒的值,13486

创建时间173516: 68 8C

创建日期:2002.10.30: 5E 2D

最新访问日期:2002.10.305E 2D

更新时间:1650304F 86

更新日期:2002.10.305E   2D

文件起始簇号为808  00

文件长度为:11020字节:0C   2B 00 00

ii. FAT32根目录下文件的管理

1. Eg.file.txFDT登记项分析

46 49 4C 45 31 20 20 20 S4 S8 S4 20 00 AB CE B5

5E 2D 5E 2D 00 00 4F 86 5E 2D 09 00 0C 2B 00 00

文件名及其扩展名:46 49 4C 45 31 20 20 20 S4 S8 S4

属性字节,存档:20 00

创建时间单位精确到10-毫秒的值,171AB

创建时间:22:46:28:  CE B5

创建日期:2002.10.30: 5E 2D

最新访问日期:2002.10.305E 2D

更新时间:1650304F 86

更新日期:2002.10.305E   2D

文件起始簇号为909  00

文件长度为:11020字节:0C   2B 00 00

2. FAT1的起始偏移值为4000H=DOS保留扇区(32)×每扇区字节(512=16384

3. FAT表中还可以看到用以记录簇0和簇1的位置为“F8 FF FF 0F FF FF FF 0F”,这是FAT32文件系统FAT表的起始标记,固定不变,也称介质描述。

iii. Windows 95长文件名的实现及存在的问题

一、 长文件名格式

长文件名药考虑到Windows 95DOSWindows 3.x的兼容问题。

创建一个长文件名时,其对应短文件名的存储有一下三个处理原则。

i. Windows 95取 长文件名的前6个字符加上“~1”形成短文件名,其扩展名不变;

ii. 如果已存在这个名字的文件,则符号“~”后的数字自动增加;

iii. 如果有DOSWindows 3.x非法的字符,则以下划线“_”替代。

一个目录项作为长文件名目录项实用时,其属性字节值为0FH,存储13个字符。一个长文件名需要多个目录登记项。采用以上的存储方法,在Windows 95下创建的长文件名在DOSWindows 3.x下就只能看见其对应的短文件名,完全忽略了长文件名。在Windows 95下运行的应用程序通过操作系统请求文件名时,Windows 95会根据应用程序的性质分别给予不同的文件名——16位应用程序得到8.3格式的文件名,32为应用程序得到长文件名。

长文件名使用的目录登记项的格式。

0:顺序字节 7(未用 置06(为1表示为长文件名的最后一个登记项)5(未用 置04~01~13字符)

其中红长文件名使用Unicode格式,每个字符需要2个字节空间,一个长文件名需要若干个这样的目录登记项,按倒序排列在短文件名之前。

二、 长文件名存在的问题及使用注意事项

a) 长文件名要占用较多的目录登记项,而FAT文件系统根目录下的目录登记项的数目是固定的(一般为512个)。

b) Windows 95中创建的长文件名在DOSWindows 3.x下更名或删除时,其文件名将会丢失,用于长文件名的目录登记项空间自然也无法收回。因为文件以短文件名为主进行跟踪和管理,长文件名依附短文件名而存在。

c) Windows 95中运行的16位应用程序,更改一文件名时,对应的长文件名将会丢失。

d) 由于长文件名使用的目录登记项必须是连续的,频繁地创建和删除长文件名,将会造成大量的磁盘碎片。

故,如果主要使用16位应用程序或者需要与DOSWindows 3.x交换文件,最好禁止使用长文件名。如果主要使用32位应用程序,就可以使用长文件名,但使用时应该注意:

尽量不要再根目录下创建长文件名;

经常运行Windows 95 中的磁盘碎片整理程序,回收丢失的目录登记项。

对于FAT文件系统,长文件名都要按照这种模式进行管理。

c) 子目录的管理

i. FAT16子目录管理

Eg.子目录“C”和“Turboc2”的FDT分析结果分别如下:

子目录“C”的文件目录项:

41 63 00 00 00 FF FF FF FF FF FF 0F 00 FF FF FF

FF FF FF FF FF FF FF FF FF FF 00 00 FF FF FF FF

43 20 20 20 20 20 20 20 20 20 20 10 00 93 A6 9B

SF 2D 5F 2D 00 00 A7 9B 5F 2D 02 00 00 00 00 00

41(顺序号)

63 00(长目录名第一个字符)

00 00(表示上目录名结束,其后所有表示字符的位填入“FF FF”)

FF FF FF FF FF FF

0F(属性,0FH

00(种类)

EF(校验和)

FF FF

FF FF FF FF FF FF FF FF FF FF

00 00(固定为0

FF FF FF FF

43 20 20 20 20 20 20 20 20 20 20(目录名)

10(属性,表示目录)

00(未用)

93 A6 9B(目录创建时间,同文件)

5F 2D (目录创建日期,同文件)

5F 2D (最新访问日期,同文件)

00 00(未用)

A7 9B 5F 2D(最近更新时间、日期,同文件)

02 00(目录起始簇)

00 00 00 00(对于目录,固定为0

子目录和根目录的区别:

子目录和根目录的区别在于他们对自身的管理上:根目录有DBR确定,而根目录的子目录由根目录下的目录登记项来确定,因为这些子目录由根目录创建。

子目录比根目录多出的前两个项:

第一个目录登记项的内容为“.

2E 20 20 20 20 20 20 20 20 20 20 10 00 93 A6 9B

5F 2D 5F 2D 00 00 A7 9B 5F 2D 02 00 00 00 00 00

02 00(目录起始簇指向了它自身所在的簇,事实上它就是用来指示它自身的)

第二个目录登记项的内容为“..

2E 2E 20 20 20 20 20 20 20 20 20 10 00 93 A6 9B

5F 2D 5F 2D 00 00 A7 9B 5F 2D 00 00 00 00 00 00

00 00(目录起始簇指向“00 00”,表示其父目录为根目录,其他情况指向其父目录的起始簇)

ii. FAT32子目录管理

d) 文件的删除


(2.3) 《数据恢复技术(第2版)》学习笔记 (2.3)                                            (2.5) 《数据恢复技术(第2版)》学习笔记 (2.5)
  评论这张
 
阅读(82)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017