目录
目录
第一篇 数据为什么能够被恢复
第一章 数据如何在介质上存储
首先来看看什么是存储介质。
广义上的存储介质是指所有能够记录数据和信息,并可以长时间保存的设备、设施或物体。例如,目前的纸质书籍,古代的锦帛、竹简,甚至原始时代用来记录信息的绳结、石片和壁画等,这些都是广义上的存储介质,这些介质都可以保持数据不会轻易丢失。
我们目前一般所说的存储介质主要是指硬盘、磁带、光盘、闪存等用来存储电子信息数据的存储介质,这是狭义上的存储介质。这里给出一个定义:凡仅有两种稳定的物理状态,能方便地检测出属于哪种稳定状态,两种稳定状态又容易相互转换的物质或元器件,都可以用来记忆二进制代码“0”和“1”,称这样的物质或元器件为存储介质或记录介质。
存储介质不同,存储信息的原理也不同,目前把存储介质分为三类,它们是磁存储介质、光存储介质和电存储介质,下面分别介绍。
1.1磁存储介质的存储原理
磁存储,主要指磁表面存储器MSM(Magnetic Surface Memory)。磁表面存储器是用非磁性金属或塑料做基体,在其表面涂敷、电镀、沉积或溅射一层很薄的高导磁率、硬矩磁材料的磁面,用磁层的两种剩磁状态记录信息“0”和“1”。基体和磁层合称为磁记录介质。
计算机中目前广泛使用的磁存储介质主要有硬盘、软盘、磁带三种形式。
1.1.1硬盘
硬盘是使用最为普及的一种存储介质,它的发展已经有50多年的历史了。1956年IBM公司推出了世界上第一个硬盘驱动器RAMAC(Random Access Method for Accounting and Control)。其体积相当于两个并排放置的200升的大冰箱,容量为5MB,价格超过5万美元,也就是说,每1GB容量的价格为1000万美元。现在,一个3.5英寸的硬盘的容量能达到750GB,而平均每1GB容量的价格不足1美元。硬盘的改进速度大大超过了半导体存储器和电信数据的传输速率。
1.1.1.1硬盘的基本结构
我们从物理和逻辑两个方面来了解硬盘的结构
1.硬盘的物理结构
硬盘是包含可移动部件的复杂的机电一体装置。虽然它通常能安全可靠的运行,但任何人造设备都是有寿命的。硬盘要完成其盘片数据的读/写操作,通常由几大部件组成,如图1-1所示,而其中任何一个部件发生故障,都可能导致数据丢失。
图1-1 硬盘的基本结构
一块硬盘可能包含一片或多片磁盘片,磁盘片是通过在铝或玻璃基片上再涂上一层微小的磁铁氧化物颗粒而制成的。对于硬盘,磁盘片常简称盘片。盘片连续转动,磁头沿着半径方向来回移动,这样就可以使磁头快速地达到盘片上的任何位置。一般台式计算机使用3.5英寸硬盘,每块硬盘安装有1~6片盘片,可以存放大量的数据信息。每个盘片都被分隔成数万个同心圆,这些同心圆就是常说的磁道。因为每一个磁道上都要存储大量的信息,为便于管理,进一步把磁道分隔成一个个同样大小的小区域,叫做扇区,每个扇区通常为512B(字节)大小。盘片按一定的规则安装在一个电动机(spindle motor)上。电动机带着盘片高速旋转。盘片高速转动,与之相配合的磁头能够进行扇区定位操作。一般每个盘片都有一个磁头,并且所有磁头的移动必须完全同步,如图1-2所示。
图1-2 盘片
硬盘的磁头由上、下多个读/写头固定在一个磁头臂上,整体随磁头臂移动而移动,如图1-3所示。磁头的移动及一般的读/写原理是,第1个磁头先写一个磁道,第2个磁头再写一个磁道,依次类推,呈垂直读/写,所以数据被分很多段存在各盘面上,读取时也是同理,这样,多磁头同时读/写可以大大提高磁盘工作效率。
图1-3 磁头
磁头臂因需高速来回移动,不可抖动,并精确地移至原地址,各磁头垂直度不可以超出允许误差,所以磁头和盘片都不可松动或偏移,否则将无法定位。目前技术水平还无法将误差的磁头或盘片调整回原位。
硬盘的电动机是恒定速度旋转的。为保持其旋转时的平衡,一般使用滚珠或液态高精度轴承,能承受24小时连续不断地运转,而不磨损,也不生成高温和噪声。
2硬盘的逻辑结构
要想深入了解数据恢复的理论知识,除了需要掌握硬盘的物理结构,还必须十分了解磁盘的逻辑结构。
当我们通过操作系统访问文件时,操作系统需要读取磁盘相应的位置来调用我们需要的文件,那么这些文件是如何在盘片上分布的呢?这就是由盘片上相关的一些逻辑参数所决定的。
硬盘的盘片具有类似的格式,被划分为几个区域,这些区域称为磁道、扇区、柱面,硬盘就是利用这几个参数对数据进行寻址的。
(1)磁道
磁盘在出厂前,厂家会对盘片进行格式化,盘片被划分成许多同心圆,这些同心圆就叫做磁道(Track),如图1-4所示。
图1-4 磁道
现在的大硬盘每一个盘面上都有上万个磁道,为便于管理,这些磁道都有一个编号,磁道从外向内自0开始顺序编号。
另外需要注意的是,盘片上的这些磁道是看不见的,它们只是盘面上以特殊形式磁化了的一些区域。
(2)扇区
盘面上的每个磁道都被划分成一段段的圆弧,每段圆弧叫做一个扇区,如图1-5所示。扇区从“1”开始编号,它是磁盘存储的最小单位,扇区中的数据是作为一个单元同时读出或写入的,每个扇区包括512B的数据和一些其他信息。
图1-5 扇区
(3)柱面
柱面是指各个盘面上编号相同的磁道构成的整体,如图1-6所示。柱面的编号是和磁道的编号相统一的,都是从外向内自0开始顺序编号。
图1-6 柱面
(4)盘面和磁头
硬盘中都会有一个或多个盘片,每一个盘片又有两个盘面,即上盘面和下盘面,每一个盘面都有一个盘面号,按顺序从上而下自“0”开始依次编号。
盘片是用来存储数据的,那么数据是如何写到盘片上去的呢?这个工作是由磁头来完成的,硬盘的每个盘面都会对应一个磁头,所以在硬盘系统中,盘面号也可称为磁头号,就是因为每一个有效盘面都有一个对应的读/写磁头。
硬盘中数据的读和写都是按柱面进行的,也就是说,磁头在读/写数据时首先在同一柱面上从“0”号磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,当同一柱面上所有的磁头全部读/写完毕后才移动磁头转移到下一柱面。
从这里可以看出,数据存储到盘片上并不是写满一个盘面,再接下来写下一个盘面的,而是一个柱面一个柱面地进行。这样做是因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换的速度是相当快的,比在机械上磁头向邻近磁道移动快得多,所以数据的读/写按柱面进行,而不是按盘面进行,这样就能够有效地提高硬盘的读/写效率。
(5)逻辑参数的取值
硬盘是通过磁头、柱面和扇区进行寻址的,BIOS中断13H的入口参数中,磁头寄存器占8位,其值为0H~FEH,所以磁头号为0~254。柱面地址是10位,所以柱面号为0~1023,其低8位单独占用一个寄存器,高两位与扇区地址共用一个寄存器,占用共用寄存器中的高两位。扇区地址占用共用寄存器中的低6位,其值为1H~3FH,所以扇区编号为1~63。
(6)硬盘寻址模式
硬盘有两种寻址模式,一种就是前面提到的C/H/S(Cylinder/Head/Sector)寻址模式,也可以称为三维地址模式,这是硬盘最早采用的寻址模式。当时硬盘的容量还非常小,人们采用与软盘类似的结构生产硬盘,也就是硬盘盘片的每一条磁道都具有相同的扇区数,由此产生了所谓的3D参数(Disk Geometry),既磁头数(Heads)、柱面数(Cylinders)、 扇区数(Sectors),以及相应的寻址方式。
在老式硬盘中,由于每个磁道的扇区数相等(与软盘一样),所以外磁道的记录密度要远低于内磁道,因此会浪费很多磁盘空间。为了解决这一问题,进一步提高硬盘容量(C/H/S寻址的容量是有限制的,后面会提到),人们改用等密度结构生产硬盘,也就是说,外圈磁道的扇区比内圈磁道多。采用这种结构后,硬盘不再具有实际的3D参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址,这种寻址模式叫做LBA,全称为Logic Block Address(即扇区的逻辑块地址)。
扇区的三维物理地址与硬盘上的物理扇区一一对应,即三维物理地址可完全确定硬盘上的物理扇区。而在LBA方式下,系统把所有的物理扇区都按照某种方式或规则看做是一个线性编号的扇区,即从0到某个最大值方式排列,并连成一条线,把LBA作为一个整体来对待,而不再是具体的实际的C/H/S值,这样只用一个序数就确定了一个唯一的物理扇区,显然线性地址是物理扇区的逻辑地址。
为了与使用C/H/S寻址的老软件兼容(如使用BIOS Int13H接口的软件),在硬盘控制器内部安装了一个地址翻译器,由它负责将C/H/S参数翻译成LBA地址。
那么LBA地址到底如何与实际的C/H/S值相对应呢?如何把C/H/S地址转换为LBA地址,把LBA地址转换成C/H/S值呢?
首先,我们来了解一下从C/H/S到LBA线性地址的转换规则。由于系统在写入数据时是按照从柱面到柱面的方式,在上一个柱面写满数据后才移动磁头到下一个柱面,并从柱面的第一个磁头的第一个扇区开始写入,从而使磁盘性能最优,所以,在对物理扇区进行线性编址时,也按照这种方式进行。即把第一柱面(0柱)第一磁头(0面)的第一扇区(1扇区)编为逻辑“0”扇区,把第一柱面(0柱)第一磁头(0面)的第二扇区(2扇区)编为逻辑“1”扇区,直至第一柱面(0柱)第一磁头(0面)的第63扇区(63扇区)编为逻辑“62”扇区,然后转到第一柱面(0柱)第二磁头(1面)的第一扇区(1扇区),接着上面编为逻辑“63”扇区, 0柱面所有扇区编号完毕后转到1柱面的0磁头1扇区,依次往下进行,直至把所有的扇区都编上号。
另外,还要注意C/H/S中的扇区编号从“1”~“63”,而LBA方式下扇区从“0”开始编号,所有扇区顺序进行编号。
掌握了这个关系,我们就可以列出公式来对两种寻址模式进行相互转换。
从C/H/S到LBA的转换公式:
这里规定用C表示当前柱面号,H表示当前磁头号,S表示当前扇区号,CS表示起始柱面号,HS表示起始磁头号,SS表示起始扇区号,PS表示每磁道扇区数,PH表示每柱面磁道数,所以公式为
LBA=(C-CS)×PH×PS+(H-HS)×PS+(S-SS)
一般情况下,CS=0,HS=0,SS=1,PS=63,PH=255。
下面带入几个值验证一下:
● 当C/H/S=0/0/1时,代入公式得LBA=0
● 当C/H/S=0/0/63时,代入公式得LBA=62
● 当C/H/S=0/1/1时,代入公式得LBA=63
LBA到C/H/S的转换关系。
首先介绍两种运算DIV和MOD(这里指对正整数的操作)。DIV为整除运算,即被除数除以除数所得商的整数部分。例如,3 DIV 2=1,10 DIV 3=3。MOD运算则是取商的余数。例如, 5 MOD 2=1,10 MOD 3=1。DIV和MOD是一对搭档,一个取整数部分,另一个取余数部分。
各参数仍然按上述假设进行,则从LBA到C/H/S的转换公式为:
C=LBA DIV (PH×PS)+CS
H=(LBA DIV PS)MOD PH+HS
S=LBA MOD PS+SS
同样可以带入几个值进行验证:
● 当LBA=0时,代入公式得C/H/S=0/0/1
● 当LBA=62时,代入公式得C/H/S=0/0/63
● 当LBA=63时,代入公式得C/H/S=0/1/1
1.1.1.2现代硬盘的结构及其固件
1.现代硬盘结构剖析
下面再对硬盘的结构进行详细剖析。
硬盘驱动器由两部分组成:机械部分和印制电路板(PCB),机械部分又称为磁头-磁盘组件(HDA)。HDA是硬盘驱动器中唯一的机械部件,它还包含有一片执行前置放大器/转接器功能的芯片。PCB由若干芯片组成,它们包括控制机械部件的芯片、对磁盘表面的数据进行编/解码的芯片和与外部接口交换数据的芯片等。PCB位于HAD的外部,一般是在下方。
(1)硬盘的机械部分
硬盘的整个结构是基于保护其灵敏的机械部件不受环境因素的影响而设计的。硬盘盘腔中的空气是不能有灰尘的,因此机械部分的组件是在每立方米少于100个微尘粒子的工作间(也就是所谓的“100级清洁空间”)装配完成的。
HDA盘体有一个填充有紧密的空气过滤材料的开口,用于平衡HDD内外的空气压力。不过如果硬盘落入水中,水就会沿着此开口进入硬盘内部。盘片的旋转引起的空气流经常会撕碎不知如何进入的灰尘。
硬盘的盘体包括由主轴电动机驱动的盘片,带有定位系统和放大信号的前置放大器/转接器的磁头。盘片是一种铝制的圆盘(少量是陶瓷或特殊玻璃制成的),它拥有最高精度等级的光滑表面(除了停泊区),由于分子吸引力的缘故,如此光滑的表面会将磁盘和磁头黏合在一起。为了防止磁盘与磁头粘连在一起,生产商在磁头和磁盘接触的区域使用了特殊的激光防滑齿。由于使用了真空沉积工艺生成的氧化铬覆盖层(磁性物质)或钴层,磁盘具有特殊的磁性质。氧化铬覆盖层具有更高的硬度和抗磨损性,而以前使用氧化铁做磁性物质然后在其上覆盖一层软涂层的磁盘非常容易损坏。
磁盘由专门的三相电动机驱动。磁盘的固定部分包括三个“星形”连接的线圈、位于中央的轴承和由稀土金属制造的永久磁体。为了减少变形和获得很高的转速,生产商必须在主轴电动机上使用特殊的轴承,如滚珠轴承或改良的液态轴承(使用专门的润滑油以增强电动机耐久力)。液态轴承具有低噪声和热量少的特点。IDE硬盘的转速一般为5400rpm或7200rpm;SCSI硬盘的转速一般为10000rpm或15000rpm。
磁头也是一种非常精密的部件。磁头与芯片一样使用光刻技术生产。磁头的陶瓷表面与盘片一样光滑。磁头的驱动臂是由铜线制成的平直的电磁线圈,悬浮在永久磁铁的磁极间。驱动臂一端固定在轴承的转动杆上,另一端连接到磁头支架。磁头支架是有弹性的,允许磁头以一定的高度“飞行”在盘片表面;飞行的高度通常为几十分之一微米。
推动磁头组运动的传动系统与扩音喇叭的线圈类似,叫做音圈。音圈的工作原理与普通电动式扬声器的工作原理相似(也就是说,在磁芯上缠绕铜线)。位置调节线圈被永久磁体制成的定子围绕。当一定电压的电流流过使线圈产生极性,从而以一定加速度推动磁头转向一定位置;这样磁头就可以在音圈的作用下定位于盘片表面的任意位置。磁头在硬盘断电时使用特殊的臂锁固定在停泊区。两种最常用的臂锁是磁性臂锁和气动臂锁。磁性臂锁利用固定在硬盘内部的一块小磁体,吸引音圈的铁磁物质,使磁头固定在停泊区。气动臂锁(或空气锁)也将磁头固定在停泊区防止移动;当盘片开始旋转时产生的气流使气动臂锁解开从而解除固定状态。
在HDA内的电子部件只有从磁头接收信号的前置放大器/转接器。前置放大器/转接器位于靠近磁头的地方,以最大限度地减少外部干扰。前置放大器/转接器通过弹性电缆与磁头和硬盘的其他电子部件相连。音圈,有时主轴电缆也使用同一电缆相连。不过主轴通常是由单独的电缆供电。
HDA通常使用两个接头与PCB连接。其中,一个是为主轴电动机供电的三相中心抽头电缆接头;另一个是与前置放大器/转接器及音圈电缆传递信号的电缆接头。
(2)硬盘的印制电路板
现代硬盘的电路设计的特点是使用高集成度的芯片,它们的结构如图1-7所示。
图1-7 现代硬盘的电路设计
如图1-7所示,整个电路设计基于四种芯片。
① 系统控制芯片,包括读/写信道、磁盘控制器和RISC(精简指令计算机)控制处理器(微处理器);
② Flash ROM芯片(内含硬盘固件);
③ 主轴电动机和音圈控制芯片;
④ ROM芯片(用做缓存)。
由于以上各部分的功能存在根本的差别,所以更进一步的集成不太可能实现。
当前最先进的系统控制器是由Cirrus Logic公司生产的芯片。它明显的突破是将读/写信道、处理器和磁盘控制器集成在一个芯片上;不过由于设计方法不成熟,使用此芯片的Fujitsu MPF3xxxAT和MPG系列硬盘频繁出现故障。
微处理器采用RISCz结构。当加电后硬盘的Reset电路向微处理器发出“Reset”信号,使微处理器执行ROM中的自检程序,清空存储器和磁盘控制器及其他连接到内部数据总线的可编程芯片的工作数据区。然后微处理器检查硬盘运转时使用的内部信号,如果没有发现紧急警告,就启动主轴电动机。
接下来一步是HDD内部测试:检查数据缓冲RAM、磁盘控制器和输入微处理器的信号的状态。之后微处理器开始分析脉冲信号直到主轴电动机达到规定的转速。当电动机达到规定的转速后,微处理器就开始操作定位电路和磁盘控制器,将磁头移动到固件数据区,并将固件数据载入到RAM中以供进一步操作。最后微处理器切换到准备就绪状态,并等待计算机主机命令。在等待模式下,从计算机主机CPU发来的命令会引起HDD的所有电子部件的一连串动作以完成指定操作。
HDD读/写信道由前置放大器/转接器(位于HDA内)、读电路、写电路和同步时钟等组成。硬盘的前置放大器具有多个通道,每个通道连接到一个磁头。各通道的切换由硬盘微处理器的信号控制。前置放大器中含有写入电流开关和写入出错传感器,当磁头短路或断路时就会发出出错信号。当集成的读/写信道处于写入模式时,它从磁盘控制器接收数据,同时接收写时钟信号,对数据进行编码、预补偿后将数据传送到前置放大器写入磁盘。当读/写信道处于读取模式时,从前置放大器/转接器来的信号传送到自动控制电路,然后通过可编程的滤波器、校正补偿电路和脉冲检测电路将信号转换为数据脉冲,再发送到磁盘控制器进行解码,最后传送到外部接口。
磁盘控制器是硬盘中最复杂的部件,它决定了HDD和主机之间的数据交换速度。
磁盘控制器拥有四个端口分别连接到主机、微处理器、缓冲RAM和数据交换信道。磁盘控制器是由微处理器驱动的自动部件,在主机中只有标准的任务文件可以访问磁盘控制器的寄存器。磁盘控制器初始化阶段由微处理器控制:设置数据编码方法,选择纠正错误的方法,定义可变的或固定的扇区划分,等等。
缓冲管理器是磁盘控制器功能的一部分,用于管理缓冲RAM。现代HDD的缓冲RAM的容量为512KB~8MB。缓冲管理器将缓冲RAM分割成独立的缓冲片断,微处理器使用专门的寄存器保存这些缓冲片断的地址以供存取操作。当主机使用其中一个缓冲片断交换数据时,读/写信道可以使用另外的缓冲片断交换数据。这样系统可以实现多通道处理从/向磁盘读/写数据或与主机之间的数据交换。
主轴电动机控制器控制三相电动机的运转,它由硬盘微处理器控制。主轴电动机的运转有三种模式:启动模式、加速模式和稳定模式。让我们先分析一下启动模式。加电后一个Reset信号被发送到微处理器,对主轴电动机控制器初始化内部寄存器。硬盘微处理器产生相位切换信号;主轴电动机低速旋转产生自感应电动势(EMF)。硬盘微处理器检测到自感应电动势(EMF)并根据此信号控制转速。在加速模式下微处理器加快相位切换并测量主轴电动机的转速,直到主轴电动机达到额定转速。当达到额定转速后主轴电动机进入稳定模式。在此模式下,微处理器根据相位信号计算主轴电动机的旋转周期并据此调整转速。在磁头从停泊区移走后,硬盘电路使用伺服标记跟踪旋转稳定性。
音圈控制器产生控制电流以移动位置调节器并使磁头定位于指定的磁道上。电流值由微处理器根据磁头位置与相关磁道的数字误差信号(位置误差信号或PES)来计算。电流值以数字形式传送给微处理器,计算后发回的模拟信号被放大后提供给音圈。
2.现代硬盘的固件
(1)什么是硬盘的固件
Firmware(固件)是固化在硬件中的软件,存储着计算机系统中硬件设备最基本的参数,为系统提供最底层、最直接的硬件控制。在开机过程中,首先执行固件来完成对硬件设备的初始化,使操作系统能够正确识别硬件并为其他软件的运行提供最基本的依据。
(2)硬盘固件的组成及作用
固件数据是HDD内部电路发挥功能所必需的,通常对用户来说是隐藏的。固件数据可以划分为如下几部分:
● 伺服信息或伺服字段;
● 低级格式化;
● 驻留固件微程序(操作程序);
● 配置表和设置;
● 缺陷表。
① 伺服信息。
伺服信息是HDD中用于磁头驱动的伺服系统所必需的,它们用做磁头定位,保证磁头准确地定位于指定的磁道。伺服信息在生产过程中通过专门的伺服窗写入已经装配好的HDA中。伺服窗随后被用标签封闭,标签上写有“警告!禁止打开”。伺服写入过程实际上是在一个特殊的工具中——伺服写入器是使用驱动器自身的磁头写入的。磁头位置调节器的重置是通过伺服写入器的专门推进装置使用比磁道间隔更小的稳定步进完成的。
② 低级格式化。
磁道的起始位置由标志信息确定,每个磁道被分为扇区和伺服字段。每个扇区的格式包括ID字段、数据字段、同步zone和空白空间。每个扇区的起始位置包括用于定相的同步zone和数据闸门同步。ID字段包括位置记号、物理扇区地址、标记字节和CRC字节。省略标志符的格式化最近变得流行起来,生产商使用此种方法在没有ID字段的磁道上组织数据(这样做可以增加驱动器可用空间)。他们现在使用伺服字段直接指向磁道上的物理扇区的方法来代替ID字段的功能。这样做需要同时读(写)磁道上所有扇区到(从)RAM中的映像。因此为了读一个扇区,驱动器需要复制整个磁道到RAM中,读取扇区不再是从磁盘上而是从RAM中。写入操作也是同样的过程。在写扇区时驱动器首先读取整个磁道,在RAM中修改后再将整个磁道写回磁盘。
③ 驻留固件微程序。
微处理器的固件(微程序)是HDD部件运转所必需的一些程序。这些程序包括用于初始化诊断、控制主轴电动机旋转、控制磁盘控制器、缓冲RAM之间交换数据的程序,等等。
大多数型号的HDD的固件微程序存储在处理器的内部ROM中,某些型号使用了外部Flash ROM,还有些型号的HDD的部分固件程序存储在磁盘上专门的固件区,而用来初始化、将固件数据从磁盘载入RAM的基本引导程序则存储在ROM中。
由于实际的固件模块在运行之前需要首先被载入到RAM中,所以它们被称为驻留模块。生产商将部分固件存储在磁盘上不仅是为了节省ROM空间,也是为了在发现微程序有错误时可以容易地修改。大部分生产商的互联网网页上含有为此目的而发布的升级程序。重写磁盘上的固件要比使用编程器对微处理器编程容易得多。
④ 配置表和设置。
配置表和设置包括磁盘空间的逻辑结构和物理结构。这些表使PCB(同一系列的驱动器的PCB是相同的)可以按照某一特定的驱动器型号自行配置。事实上,在设计某一特定型号的驱动器时——如使用2个盘片的80GB驱动器,可以同时自动的产生使用1个盘片的40GB的“二分之一容量”型号,和只使用盘片的一面的20GB的“四分之一容量”型号。这样生产商可以向市场提供不同容量的多种型号的驱动器而不用考虑研究和开发费用。除此之外,低级型号的驱动器可以使用由于某种原因不能用于完全容量型号的盘片,如“二分之一容量”型号可以使用某一面有缺陷的盘片。
⑤ 缺陷表。
现代硬盘的生产技术不能实现无缺陷的生产。不同成分的介质材料、抛光缺陷、磁层的杂质等,都会导致读/写数据时出错。早期的驱动器将缺陷磁道表写在HDA外面的标签上,并且每个驱动器都有一些保留空间。例如,HDD ST225(20MB)实际容量为21.5MB,也就是说,有1.5MB的额外空间分配给缺陷扇区和磁道。现代HDD也有额外的空间,不过对于用户来说是隐藏的,只有驱动器微处理器才可以访问。额外空间的一部分分配给HDD固件、配置表、S.M.A.R.T. 、计数器、工厂信息、缺陷表等,其他部分被保留用于以后代替缺陷扇区。
缺陷表在工厂测试时由生产商填充,检测发现的所有坏扇区都被添加到缺陷表,这一过程被称为缺陷调整(也叫做更新缺陷)。之后,若在HDD使用过程中发现新的缺陷扇区,驱动器就会自主重定向到保留扇区。因此,所有的现代驱动器出厂时都没有(可见的)缺陷扇区。
大部分型号的HDD有两个缺陷表:基本缺陷表,也称P表(P-List),以及可增长的缺陷表,也称G表。P表在工厂测试——SELFSCAN(智能的内置程序)时填充。G表不是在工厂中填充,它被设计用来添加驱动器使用过程中出现的缺陷。
为了使用G表的功能,几乎所有的HDD的用户命令中都包含“指派”命令——即用保留扇区替代缺陷扇区。很多程序包括生产商推荐的处理坏扇区的程序中都包含“指派”命令。Western Digital驱动器的Data Lifeguard系统可以自动地在驱动器空闲时使用保留扇区替换缺陷扇区。在这一过程中,驱动器对自身的硬盘表面进行自测,将标记为坏扇区的缺陷扇区的数据转移到保留扇区;缺陷调整的机制与“指派”命令是同一的。Fujitsu、 Quantum、 Maxtor和IBM等驱动器生产商都实现了在驱动器写入过程中自动调整缺陷的机能。因此在数据被写入缺陷扇区时,驱动器会自动地重定向到保留扇区并将缺陷扇区标记为坏区然后将缺陷扇区的编号添加到G表。
专门用于调整坏扇区的程序有用于Fujitsu驱动器的FUJFMT.EXE程序,用于Western Digital驱动器的WDDIAG.EXE程序,Samsung提供的ShDiag.exe程序,等等。
下面详细介绍缺陷调整的两种机制。当使用替代(指派)机制时驱动器将重定向的扇区标记写入坏扇区的ID字段,并将保留扇区的编号写入坏扇区的数据字段,也就是说,用替代扇区来读/写数据。通常,替代扇区为用户数据区之后的第一个可用扇区,如图1-8所示。
图1-8 扇区重定向的方法
当对缺陷扇区进行访问操作时,驱动器微处理器读出扇区标记和指派地址,然后将磁头重定位到保留区,从保留区的好扇区中读/写数据。缺陷扇区对驱动器来说是不可见的,不过在每次重定位到保留区之前仍然要先寻址到缺陷扇区。这一过程会伴随咔嗒声和轻微的减速。“指派”过程只允许对数据字段有缺陷的扇区重定向,若ID字段损坏或伺服字段损坏时就不能使用“指派”的方法调整扇区。
在工厂中隐藏缺陷扇区的另一种机制是跳过(丢弃)缺陷扇区。当使用此方法时,缺陷扇区被忽略,它的编号被分配给其后的扇区,而最后一个扇区被顺序移位到保留区,如图1-9所示。
图1-9 丢弃扇区的方法
这种隐藏扇区的方法破坏了低级格式化的连续完整性,LBA转换为PCHS的系统也应该考虑跳过的坏扇区。因此,使用此方法隐藏缺陷扇区后需要重建译码表并低级格式化以保护用户数据。这种方法只有在工厂模式下才能进行。在FUJFMT.EXE程序中使用了此种方法对Fujitsu驱动器调整坏扇区。
(3)硬盘的保留区
现代硬盘驱动器中有相当一部分磁盘空间对于用户是隐藏的,隐藏部分包括服务区(固件区)和用于替代缺陷扇区的保留区。在普通操作模式下,隐藏部分只有驱动器微处理器才可以访问。用户可访问的工作区通常称为逻辑磁盘空间,它的大小和磁盘所标注的容量是一致的。对用户区的访问是通过LBA地址(从0到N)所表示的连续的逻辑扇区进行的。逻辑磁盘空间与物理磁盘的对应关系由一个特殊的程序——译码表确定。译码表中包含磁盘的物理格式、zone的分配和隐藏的缺陷扇区与磁道等内容。
现代硬盘驱动器中有相当一部分磁盘空间对于用户是隐藏的,隐藏部分包括服务区(固件区)和用于替代缺陷扇区的保留区。在普通操作模式下,隐藏部分只有驱动器微处理器才可以访问。用户可访问的工作区通常称为逻辑磁盘空间,它的大小和磁盘所标注的容量是一致的。对用户区的访问是通过LBA地址(从0到N)所表示的连续的逻辑扇区进行的。逻辑磁盘空间与物理磁盘的对应关系由一个特殊的程序——译码表确定。译码表中包含磁盘的物理格式、zone的分配和隐藏的缺陷扇区与磁道等内容。
对固件区的访问只有在驱动器的特殊模式——工厂模式下才能进行。驱动器进入安全模式后就可以使用附加的工厂命令集。工厂命令可以用来读/写固件扇区,获得模块和表在固件区的位置映像,访问zone分配表,将LBA转换为PCHS或将PCHS转换为LBA,低级格式化,读/写Flash ROM和其他操作。
在HDD的设计过程中开发者规定了驱动器运转所需的固件数据和固件所占据的柱面数,因此逻辑0柱面是固件区之后的第一个柱面,如图1-10所示。不同型号的HDD可能有不同的磁盘空间结构。
图1-10 磁盘空间的逻辑结构
(4)生产硬盘的流程
硬盘工厂在生产硬盘时都有一个基本的处理流程:
① 在生产线上装配硬盘的硬件部分,用特别设备往盘片上写入伺服信号(Servo Write)。
② 格式化硬盘的系统保留区(Service Area),并向系统保留区写入程序模块和参数模块。
系统保留区一般位于硬盘0物理面的最前面几十个物理磁道。写入的程序模块一般用于硬盘内部管理,如低级格式化程序、加密解密程序、自监控程序、自动修复程序等。写入的参数多达近百项,如型号、系列号、容量、口令、生产厂家与生产日期、配件类型、区域分配表、缺陷表、出错记录、使用时间记录、S.M.A.R.T.表等,数据量从几百KB到几MB不等。有些参数一经写入就不再改变,如型号、系列号、生产时间等;而有些参数则可以在使用过程中由内部管理程序自动修改,如出错记录、使用时间记录、S.M.A.R.T.记录等。也有些专业的维修人员可以借助专业的工具软件,随意读取、修改写入硬盘中的程序模块和参数模块。
③ 将所使用的盘片表面按物理地址全面扫描,检查出所有的缺陷磁道和缺陷扇区,并将这些缺陷磁道和缺陷扇区按实际物理地址记录在P表中。
这个扫描过程非常严格,能把不稳定不可靠的磁道和扇区也检查出来,视同缺陷一并处理。现在的硬盘密度极高,盘片生产过程再精密也很难完全避免缺陷磁道或缺陷扇区。一般新硬盘的P表中都有少则数百,多则上万个缺陷记录。
P表保留在系统保留区中,一般用户无法查看或修改。如果是SCSI硬盘的话可以用多种通用软件查看到P表,因为各种牌子的SCSI硬盘使用兼容的SCSI指令集。而不同品牌、不同型号的IDE硬盘,使用各自不同的指令集,想查看其P表只能借助有针对性的专业的工具软件来进行。
④ 系统调用内部低级格式化程序,根据相应的内部参数进行内部低级格式化。在内部低级格式化过程中完成对所有的磁道和扇区进行编号、信息重写、清零等工作。在编号时,采用跳过的方法忽略掉记录在P表中的缺陷磁道和缺陷扇区,保证以后用户不会也不能使用到那些缺陷磁道和缺陷扇区。因此,新硬盘在出售时是无法检测到缺陷的。如果是返修的硬盘,一般就在厂家特定的维修部门进行检测维修。
(5)硬盘固件出错的表现
正常情况下,硬盘在接通电源之后,都要进行“初始化”过程,这个过程也可以称为“自检”,这时,硬盘都会发出一阵自检的声音。这些声音长短和规律视不同品牌而各不一样,但同型号的正常硬盘的自检声音是一样的。
这些自检的声音是由于硬盘内部的磁头寻道及归位动作而发出的。为什么硬盘刚通电就需要执行这些动作呢?简单地说,是硬盘在读取记录在盘片中的初始化参数,这些参数就是前面介绍的硬盘的“固件”。
每个硬盘内部都有一个系统保留区,里面分成若干模块,保存有许多参数和程序。硬盘在通电自检时,要调用其中大部分程序和参数。如果能读出那些程序和参数模块,而且校验正常的话,硬盘就进入准备状态。如果某些模块读不出或校验不正常,则该硬盘就无法进入准备状态。一般表现为,BIOS无法检测到硬盘或检测到硬盘却无法对它进行读/写操作。
硬盘有一系列基本参数,包括品牌、型号、容量、柱面数、磁头数、每磁道扇区数、系列号、缓存大小、转速、S.M.A.R.T.值等。其中一部分参数就写在硬盘的标签上,有些则要通过软件才能测出来。这些参数仅仅是初始化参数的一小部分,盘片中记录的初始化参数有数十个甚至数百个,硬盘的CPU在通电后自动寻找BIOS中的启动程序,然后根据启动程序的要求,依次在盘片中指定的位置读取相应的参数。如果能读出那些程序和参数模块,而且校验正常的话,硬盘就进入准备状态。如果某一项重要参数找不到或出错,启动程序无法完成启动过程,硬盘就进入保护模式。在保护模式下,一般表现为,BIOS无法检测到硬盘或检测到硬盘却无法对它进行读/写操作。例如,某些系列硬盘的常见问题:美钻二代系列硬盘通电后,磁头响一声,电动机停转;Fujitsu某系列产品在通电后,磁头正常寻道,但BIOS却检测不到;火球系列,系统能正常认出型号,却不能分区格式化;Western Digital的EB、BB系列,能被系统检测到,却不能分区格式化,等等。
1.1.2软盘
软盘虽然已经基本淘汰了,但谁也不能否认软磁盘曾经的辉煌。软盘方便、易于携带且价格便宜,曾经在存储市场中占据一定的份额。
由于软盘容量较小且容错性较差,放置较长时间后磁盘容易损坏,所以软盘一般不用做大量的数据备份,更多的是作为数据交换的介质。
曾经广泛使用的是3.5英寸的软盘,容量仅为1.44MB。这种软盘的最大特点是便于携带,随便一个衣服口袋都可以放下,而且它的盘片是密封的,不会在携带中造成软盘损伤。但是它的容量太小,已经不能满足需求,于是大容量的软磁盘便应运而生。最早推向市场的大容量软盘是Imation公司的LS-120和Iomage公司的Zip,它们的容量都超过了100MB。1997年10月Sony公司也推出了它的大容量软盘产品HiFD,其容量达到200MB,规格依然采用3.5英寸,数据传输速率为3.6MB/s,并向下兼容。
大容量软磁盘在市面上见到的有两种:一种是其前身是3M公司的怡敏信(Imation)公司的产品,LS-120;另一种是Iomega公司的Zip。1996年MITSUMI公司发表了UHC高容量软磁盘,但没有推向市场。这三种盘的性能见表1-1。
表1-1 大容量软磁盘比较
注:*指能够读/写90mm(3.5英寸)1.44MB的盘片。
一张软盘格式化后,被逻辑地分为
磁道(Track):磁盘上分成的数个同心圆环;
面(Head):分为0/1两面;
扇区(Sector):磁道上储存资料的区域,有几部分。
3.5英寸软盘的标准格式有720KB(80道、每道9个扇区)和1.44MB(80道、每道18个扇区)两种,而5英寸盘的标准格式有1.2MB(80道、每道15个扇区)和360KB(40道、每道9个扇区)两种。
1.1.3磁带
磁带存储可以说是最古老的存储方式之一。从1952年第一台13mm(0.5英寸)磁带机在IBM公司问世以来,它已经走过了50多年的历史,积累了大量的使用经验和可靠性数据。
磁带存储是一种安全的、可靠的、易用的、效费高的数据备份方法。因为磁带可以从驱动器上取出,因此可以实现非现场方式的保存或存放过去版本的数据。
磁带存储系统大都易于操作,甚至可以做成无人值守的数据备份和磁带管理。磁带的速度虽然比硬盘和光盘要慢,但它也能在相对短的时间内(如一个晚上)备份需要的数据。由于磁带的可靠性很高(实践证明,一盘磁带上的数据可以保存30年以上),而且容量大(以目前的存储技术,一盘磁带压缩后存储容量可达70GB,磁带库则可扩展到几十TB的水平),所以它是当之无愧的大容量数据备份的首选存储介质。
磁带品种较多,在选择时要考虑多方面的因素。其中包括:
① 磁带的密度和容量。磁带有0.5英寸、8mm、4mm、0.25英寸等规格,每盒容量从几十MB到几GB,要选择适合自己系统的磁带。容量常常是指压缩过的容量,通常采用压缩比为2∶1折算。但如果要存储的文件是已压缩过的,不可能再压缩,就需要选择容量大一些的磁带。
② 数据传输速率。如果备份数据量大,就需选择数据传输速率大一些的,以减少备份所需的时间。
③ 磁带寿命。它包括两个指标;一是通过磁头的次数,由于磁带和磁头在读/写时有摩擦,造成磁带磨损,一般螺旋扫描式磨损较严重;二是保存寿命,可保存多少年,这与磁带材料、保存环境有关。
④ 向下兼容。磁带技术不断更新,要求新的机器能读出旧的、保存的磁带。如果没有这个功能,就需要花费人工和时间来进行磁带转换。
⑤ 记录技术现在磁带记录技术主要有两类。螺旋扫描记录和直线记录。8mm磁带和4mm磁带采用的是螺旋扫描记录技术。记录的轨迹与磁带运动方向有一个夹角。这样有利于提高存储密度,但磁带与磁头间有包角,磨损较严重。磁带机结构复杂,耐用性也差。DAT磁带、IBM3480系列、DLT磁带都是采用直线记录方式。磁带机结构简单,磁带的磨损也小,寿命长。
⑥ 边写边读功能即在写入同时读出检查进行核对,以确保数据的可靠性,如有差错可立即修改。IBM3480/3490、DLT、SLR、MLR磁带机都有这一功能,但有此功能价格就上涨许多,通常采用的是写后读功能,一盒磁带写完后,要倒带再从头读出检查有无错误。这样做要多花许多时间,还增加了磁头和磁带的磨损。
⑦ 磁带机有不同的接口,如IDE接口、并行接口、SCSI接口、软驱接口等。要选择与机器相一致的磁带。
下面介绍常见的几种磁带规格。
1.QIC磁带
QIC磁带采用的带宽是6.25mm(0.25英寸),有带盒,采用直线记录方法。现在常见的是两种规格:DC6000和DC2000。
DC6000采用的磁带机外形尺寸类似于130mm(5.25英寸)软磁盘机。这种磁带一盒的容量大。例如,TandbergData公司的MLR3,一盒容量可达25GB(压缩后),持续传输速率为2MB/s,采用FastwideSCSI-2接口。DC6000由于体积大,单独利用的不多,但组合成磁带库的倒不少。
DC2000采用的磁带机外形尺寸类似于90mm(3.5英寸)软磁盘机。它有时用Traven的名称。DC2000不具备数据压缩功能,也不具备即写即读功能。因此磁带机结构简单,成本低。再加上体积小容量大,适合个人电脑和中小型服务器使用。Seagate公司的Tapestor就是一种Traven3磁带机。它压缩后每盒磁带容量为3.2GB,写入速度为19MB/min。
2.8MM磁带
8mm磁带采用螺旋扫描记录方式。这种磁带1987年由Exabyte公司提出。长期以来也只有Exabyte公司生产。一盒磁带最大容量14GB(压缩后)。最近Exabyte公司发布新的Mammoth磁带机,一盒容量提高到40GB(压缩后),每小时可录入21.6GB数据。1997年Sony公司也推出8mm磁带机,容量为25GB,有3MB/s的传输速率。但它与现有的8mm记录格式不兼容。
8mm磁带机可组成磁带库。如Exabyte公司的210磁带库,它可安装1~2台磁带机,可放置11盒磁带,总容量可达154GB(压缩后),连续传输速率为1MB/s(压缩后)。
3.DOS磁带
DOS磁带采用的带宽是3.81mm(0.15英寸),因此有时也称为4mm磁带。它最早是用于音乐存储,通称DAT磁带。1991年建立统一标准,采用惠普等公司提出的标准,称为DOS磁带。
DOS磁带采用螺旋扫描记录方式,用数据压缩技术来提高存储量,多采用SCSI接口。DOS磁带一盒最大容量可达24GB(压缩后)。DOS磁带机生产厂家有惠普公司、Seagate公司等,其中以惠普公司所占份额最大。生产厂家多,价格较低廉,容量和传输速率都适合网络做备份用。但DOS磁带记录面积小(带宽太小)限制了容量和传输速率的提高。
惠普公司的SaveStoreDAT24就是采用DOS-3格式的磁带机,在一盒磁带上可存储24GB (压缩后),有即写即读功能。每小时可存储7.2GB的数据。持续传输速率为1MB/s(未压缩)。DOS磁带也有磁带库,如惠普公司的SavestoreDAT24×6e,可放置6盒DOS-3磁带。磁带装卸时间平均仅约14s。
4.DLT磁带
DLT磁带由DEC公司开发,现在主要生产厂家有惠普公司、Quantum公司。DLT磁带宽度为13mm(0.5英寸),有带盒,带盒比一般录相带略短些。它采用直线记录方式。由于并行多道记录可以并行传输,传输速率高。一盒容量可达35GB。容量和传输速率都高于8mm和DOS磁带。但价格较贵,适用于高档服务器。DLT磁带记录面积大,在容量上很有潜力,是很有发展前途的技术,市场看好。
5.INM3480系列
IBM3480系列实际上是一个磁带库。它采用13mm(0.5英寸)带宽盒磁带。一盒磁带容量是630MB。现在的3590系列,每盒容量达10GB。3480/3590性能好,机器结构复杂,价格也高。
1.2光存储介质的存储原理
光盘存储器ODM(Optical Disk Memory)也是将用于记录的薄层涂敷在基体上构成的记录介质。不同的是基体的圆形薄片由热传导率很小、耐热性很强的有机玻璃制成。在记录薄层的表面再涂敷或沉积保护薄层,以保护记录面。记录薄层有非磁性材料和磁性材料两种,前者构成光盘介质,后者构成磁光盘介质。,存储容量很大且盘片易于更换。缺点是存储速度比硬盘低一个数量级。现已生产出与硬盘速度相近的ODM,不久会成为重要的辅存。
光盘存储器是目前辅存中记录密度最高的存储器,存储位元区域可小至1µm2
目前,我们所能接触的光存储设备有CD-ROM、CD-R、CD-RW、MO、DVD-ROM、DVD+RW、DVD-RW、DVD-RAM及COMBO等。CD-ROM为只读光盘,多用于产品发布和电子出版领域;CD-R允许用户自己写CD,但只能写一次,可以无限次读,而且与CD-ROM兼容;CD-RW为可多次读/写光盘,它采用CD-R的格式,因此可以与CD-R的刻录机通用;MO是永磁光盘,可以重复读/写,具有很高的可靠性和耐久性,数据保存可长达100年;相应的DVD产品可以视为CD的后代。在所有光存储设备中,最基本的产品是CD。CD是Compact Disc的简称,直译就是小型、紧凑的盘片,其外径为120mm,厚度为1.2mm,如图1-11所示。
图1-11 光盘结构
1.2.1 CD-ROM及CD-R/RW
一台CD-ROM光驱从一张CD螺旋磁轨的一个个“槽”中读取数据。“槽”(Pit)位于金属层内,是光盘中储存信息的地方。光驱在读盘时从盘片的里圈部分到外圈部分,以一根780nm宽的红外线激光,通过透明的光学层并冲击反光金属层。这虽然功率很小,但如果直射,其威力足以伤害到我们的眼睛。在金属层中,在“槽”的周围部分,叫做“平台”(Land)。虽然它没有存储数据,但在实际工作中也担当了一个角色。反射的光经过一个棱镜传到一个光学传感器上,其输出的光必须等同于其收到的光。从“槽”所反射的光和“平台”的光相差180°的相位,通过改变进入光盘的波长或DAC转换进行读/写操作。微弱的激光直接接触CD表面,但不会伤害磨损CD表面。CD-ROM工作原理如图1-12所示。
图1-12 CD-ROM工作原理
从最初的单倍速CD-ROM光驱问世以来, CD-ROM光驱已经发展了20多年的历史,目前最为普遍的是52X(52倍速)。在速度提高的同时, CD-ROM的工作方式也相应地有个进化过程,其中,最早采用的是CLV。
CLV英文全称是Constant Linear Velocity,即恒定线速度。这种技术是伴随着单倍速光驱而诞生的。CLV使用一个伺服电动机,在内外圈进行寻道时,其盘片转速不一样,这样可以保证传输速率的一致性。内部的缓存使用晶振进行驱动控制,在读取数据时进行控制,保持在50%的缓存容量比,假如数据读取太快,导致缓存溢出,命令就会指挥驱动器电动机降低速度。
例如,一台运用CLV技术的4X CD-ROM光驱,其读取内圈数据时,盘片的转速为2120rpm,而在读外圈时,就是800rpm。可变的转速对于处理音频数据也是必需的,因为音频数据总是以单倍速(150 kbps)进行读取。这样就对主轴电动机的指令及激光头的能力提出了要求,因为需要及时的速率转换速度及高速的寻道操作。但由于这一个过程需要CPU的大量干涉,所以势必会造成CPU占用率的提高,但如果CPU同时还要处理其他任务,就会导致性能的降低。另外,当光驱的速度提高后,频繁的转换速度会降低主轴电动机的寿命,所以从实用角度上, CLV并不适合应用于高倍速光驱上。
在1996年,先锋公司推出了一款10倍速的光驱产品DR-U10X,一改以往的CLV结构,而采用一种新型的CAV(Constant Angular Velocity),中文名为恒定角速度。从而使光驱工作在一个恒定的转速中传输数据,如同硬盘一样。
访问时间对于整个性能影响相当大。CLV光驱随着速度的提高,访问时间由于速率的改变而有相当明显的变化。而CAV则不会遇到此类问题,其恒定的转速可以达到相对稳定的数据传输速率及寻道时间。CLV光驱的访问时间一般为500ms,而CAV光驱则可以控制在100ms以内。
先锋革命性的设计是,不仅可以以CLV或CAV模式运行,还可以采用混合模式,也就是PCAV(Partial Constant Angular Velocity,区域恒定角速度)模式。在这种模式下,内圈数据以CAV方式来读取,而外圈数据则以CLV方式来读取。这样既节约了成本,同时也可以增强其性能。目前的高速光驱均采用CAV/PCAV方式工作。
刻录光盘的出现可以说是光存储技术的一次重大技术革命,它改变了传统的光盘单一信息载体的功能,使普通用户也可以通过光盘设备来对光盘进行读/写。最早出现的这一类光盘产品就是CD-R/RW。
普通的音乐CD及CD-ROM都是成品,经过冲压后,其盘片的“槽”中已经充满了数据,通过光驱的激光束映射在数据区表面,产生折射,进行数据的读取,这个步骤在前面已经叙述得相当清楚。但随着计算机应用的加强,在使用光存储设备时,人们自然就会产生一些疑问——为什么CD不能像软盘那样随意地读/写数据——这个疑问的产生,使技术开发者也开始重视这一问题。它们希望使CD-ROM可以写和复写盘片,并在CD-R/RW设备上合并读/写操作。
对于专业用户、开发者、商业用户、多媒体设计人员及家庭用户等消费人群来说,可记录的CD是一种相当有效的存储解决方案。其最大的优势就在于CD-ROM已经基本普及到每台计算机上,而DVD-ROM也是支持的,其广泛的支持使它可以轻易击败其他移动存储方案(如MO、ZIP等)。更为重要的是,它价格低廉,目前用很少的钱就可以在市场上购买到一张CD-R/RW盘片,其优势是如此的明显,CD-R/RW已经成为目前最为普遍的移动存储方案和数据备份方案。
CD-R的结构如图1-13所示。
图1-13 CD-R的结构
可以说,CD-R和CD-ROM的结构相当类似。根据橘皮书(CD-R标准)所规定,CD-R使用了有机染料层来代替CD-ROM中的铝制薄片、早期的cyanine(菁染料)为标准的CD-R染料层原料。而之后的Phthalocyanine(酞菁染料)则是一种可以相当耐用的物质,在阳光、紫外线等光线直射下的感光退化度很低。含氮染料以前用于其他光学记录,而现在也用于CD-R。这些染料都是有机感光混合物。其盘片制造厂商都会掺杂这些不同染料,按照厚度、反射率、原料及“槽”结构进行混合,以达到在刻录倍速下最佳的记录特性。使用银合金或24K黄金涂在染料上可以防止腐蚀及氧化反应,延长盘片的寿命和性能,一般可以保存5~10年。
我们总会说到蓝盘、金盘等不同颜色的CD-R,这又是怎么一回事呢?准确地说,CD-R的颜色是因为在记录层中加入了一些特殊的染料,从而导致出现绿色、蓝色及金色等。例如,金绿盘是混合一种青绿色的黄金反射层,导致在正面显现为金色,而反面显现为绿色。
CD-R是怎么工作的呢?许多人把刻录操作说成烧录,这生动形象地说出了刻录的工作原理。一台CD-R刻录机在有机染料层中利用775~795nm的激光物理烧出“槽”。当加热到临界温度时,被烧录过的区域产生化学反应可以反射光,而没有烧录过的区域则无法反射。当CD-ROM进行读取操作时,就以光的反射来判断资料。
虽然CD-R有着价格低廉的优点,但只能刻写一次使其适用范围受到了很大的局限,在一次使用中所刻录的盘,下次只能对剩余的容量进行刻写,而无法反复地擦写,这样势必会造成资源上的浪费。所以,在几个月的研究开发后,Philips、Sony发布了另一个CD标准:CD-Rewritable(CD-RW),CD-RW的结构如图1-14所示。
图1-14 CD-RW的结构
CD-RW兼容CD-ROM及CD-R,为保持硬件上的一致性,CD-RW在结构上和CD-ROM及CD-R基本相同,所不同的是,为了可以反复擦写,其材料上有了明显的不同。CD-RW的记录层像三明治一样被两层电介质层夹在中间,电介质层的作用就在写操作时,吸收相位改变层额外的热量。在CD-R盘片有机染料记录层的位置上, CD-RW使用一层混合银、铟、锑及碲的晶体混合物。这种混合物有着相当特殊的性质——在不同的温度下可以形成不同的物理性质,结晶体和非结晶体——当进行刻录和复写时,CD-RW刻录机就发射不同的激光,让晶体混合物转换状态,达到重复刻写的目的。
在CD-RW中,使用了三种不同功率的激光,来完成对CD-RW的三种操作。最高功率的激光用于写操作,由于温度相当高,所以被聚焦的部分晶体会马上成为处于一种游离(无组织)状态的液体,然后刻录机就进行资料的写入;擦除操作中,使用中等功率的激光,这样可以熔化记录层并转换成晶体状态;而在读盘操作时,则使用功率最低的激光,由于功率太小,所以对记录层不会产生任何影响,仅用于读出盘片上的内容。
1.2.2 DVD-ROM及DVD-R/RW
DVD是一种新型的存储标准,全称Digital Versatile Disc(数字通用光盘),是由10家厂商组成的DVD联盟所制订的海量存储解决方案。
其实DVD的诞生背后存在着一段相当曲折坎坷的发展道路。当时Sony-Philips推出了MMCD(多媒体光盘系统),而东芝、松下、时代-华纳则推出了SD(Super Disc),这两种光盘格式完全不兼容。为主导技术标准,双方都坚持会坚定不移地支持自己所发布的技术,两大竞争集团由此产生。但迫于业界的压力(如Microsoft、Intel、Apple及IBM都给双方下了一份简短的通牒,要求快速地统一标准,否则就不要指望在个人电脑中得到任何支持),最后8家SD支持厂商和2家MMCD的推行厂商,组成了DVD联盟并于1995年年底推出了DVD-ROM标准,此后,10家厂商又在不情愿的情况下组成了DVD Forum(DVD论坛),商讨未来的DVD技术,并继续着每项技术最后通过的漫长的口水战。DVD Forum当时的成立情况就给日后的可录式DVD标准混乱、派系之争埋下了一个伏笔。
简单地观察,很容易把CD和DVD盘片混淆:两者的直径都是120mm,厚度为1.2mm。两者也同样依靠激光来读取存储在“槽”中的数据。但实质上,两者有着根本的差别。首先, DVD中的数据区相当紧密,两个磁轨的距离降低到0.74µm,比CD的1.6µm低了一倍。而且“槽”也更多,这就允许在一个磁轨中存在更多的“槽”。单层DVD中最小的“槽”宽为0.4µm,而CD为0.834µm。依靠这两点,DVD就可以获得比CD多4倍的数据储存容量。在激光头技术上,DVD也有所突破。更小的“槽”就意味着需要更小的激光束,DVD驱动器所使用的激光波长为635/650nm红外线激光,而CD则使用的是780nm的红外线激光。其次,DVD可以通过简单地改变激光聚集来扫描多层DVD信息。DVD使用一层半透明的数据层及半透明的反射层来代替CD中的反射层,这就形成了DVD的单面多层体系。不过由于反射层依然存在,所以第二层的容量并不等同于第一层,这就是单面单层可以存储4.7GB的容量,而单面双层只能存储8.5GB的原因。再次,DVD允许双面储存数据,厂商通过使用更薄的塑料基板,达到单面0.6mm。一般的DVD都使用两张粘贴而成。双面结构使DVD的容量又进一步,达到最高17GB的容量(双面双层)。最后,DVD的数据结构更为高效,拥有更多高效率的ECC使其可以保证重要数据的安全。CD-ROM与DVD-ROM技术规格比较如图1-15所示。
图1-15 CD-ROM与DVD-ROM技术规格比较
DVD不同于CD,有多种规格,不同的规格有不同的容量,如图1-16所示。
图1-16 DVD的分类
其中,DVD-5为单面单层结构,可储存4.7GB的数据,如果是音像制品,可以存储4692kbps编码,133min的高清晰度电影;DVD-9为单面双层,可储存8.5GB的数据,或者240min的高清晰度电影;DVD-10为双面单层结构,9.4GB的容量,266min的高清晰度电影;DVD-18为双面双层结构,17GB的容量,532min的高清晰度电影,真正的海量存储。
从不同的格式来看,DVD又可以分成DVD-ROM、DVD-Audio、DVD-Video、DVD-R、DVD-RW、DVD+RW及DVD-RAM等。
在驱动器方面,和CD-ROM一样,DVD-ROM依靠红外线激光来读取DVD盘片中的数据,不过DVD-ROM和CD-ROM对于读盘速度的定义有所不同,1X DVD-ROM数据读取速度为1250kbps,而1X CD-ROM为150kbps,前者相当于后者的8倍。由于DVD-ROM可以根据盘片的不同而产生不同的激光波长,所以DVD-ROM可以兼容CD-ROM。
对于可擦写的DVD标准,主要包括DVD-RAM、DVD-R/RW和DVD+R/RW等。
DVD-RAM(DVD-Random Access Memory),是一种可擦写的DVD格式。由东芝、松下及日立三家推出。该技术使用了相变技术,并融入了一些MO特性,成为双相变技术(PD)。其1.0版本的DVD-RAM为2.7GB/面的容量,而2.0则提升到4.7GB/面(12cm)和1.46GB/面(8cm)。其最为重要的特性就是记录区的“平台”和“槽”均存储数据,采用和MO一样的浮雕式首标也是其一大特点。不过由于结构与DVD-ROM有很大差别,所以无法兼容,其前景并不乐观。由于是第一款进入市场的可擦写DVD格式,所以初期产品数量还是相当丰富的,不过随着DVD-R/RW和DVD+R/RW推出,其市场份额逐步被压缩,濒临淘汰。DVD-RAM的盘片如图1-17所示。
虽然DVD-RAM是由DVD Forum最有权威的三家厂商所推出,但由于没有做到兼容这一点,所以推广上并不顺利。所以先锋于1997年7月发布了DVD-R第一版,也就是一次性写入的DVD。第一版DVD-R的容量为3.95GB,并在随后提高到4.7GB,使用波长为635nm的红外线激光。
图1-17 DVD-RAM的盘片
而DVD-RW则是在DVD-R的基础上加入了相变材料,并加入两层保护层,达到反复刻写。在刻录原理上,DVD-RW和CD-RW相当类似,所以就不多介绍。
DVD+RW的标识如图1-18所示。
图1-18 可擦写DVD标识
由于DVD-R/RW和DVD-ROM的盘片结构及文件结构完全一样,因此做到了完全兼容,成为正统的可擦写DVD标准,受到了DVD Forum的认可,目前产品相当丰富,主流DVD-RW多为8X(倍速),价格也非常便宜。
在DVD标准之争中失利的Sony-Philips,在DVD-R/RW推出之后,和HP一起创立了DVD+R/RW标准,打算和东芝继续抗衡。DVD+R/RW的物理格式与DVD-R/RW完全一样,但由于使用高频抖动(817kHz,单位长度4.3µm),另外由于光线反射也有很大差别,所以两者并不兼容。不过,由于其高频抖动的影响,所以可以更为精确地跟踪轨道,其无损连接也相当出色。使用动态压缩比率(VBR),使DVD读取/写入都十分流畅,而且也很有效率,高频抖动对无损连接也有着积极的帮助。DVD+R/RW可以以CLV来连续访问,或者以CAV方式来进行随机访问。和CD-RW/DVD-RW类似,其记录层采用了相变材料,可以依靠转换其状态来达到多次擦写的目的。
未来HDTV(高清晰度电视)又将给光存储提出更高的要求。其23Mbps的传输速率,将使一部电影达到20GB以上的惊人容量。DVD最高的容量不过17GB。那么谁来接棒下一代光存储标准呢?
Sony-Philips这次又卷土重来,集结了7家厂商,共同推行下一代DVD标准Blue-ray Disc (蓝光)。它最大的差别就是使用蓝色激光来代替目前CD/DVD所使用的红外线激光,波长降低到了405nm,同时,在盘片结构中,将物理透镜的数值孔径(NA)提高到了0.85,使用0.1mm的保护层,轨距也降低到了0.32µm,这些改变都使Blue-ray可以达到相当高的容量,其单面容量就高达27GB,绝对的海量存储。不过由于保护层减少,其抗污耐损性就降低了。目前, Blue-ray的相关产品已经推出,不过暂时价格昂贵,还需一段时间的适应。
同样,东芝也没有袖手旁观,与NEC携手开发了AOD(Advanced Optical Disc),也是未来DVD标准的一个强大竞争对手。其最大的优势就在于沿袭了DVD盘片的设计,仅仅靠缩小轨距来提高容量。由于与DVD差别不多,所以可以在成本提高不多的情况达到设备转产。不过由于没有Blue-ray那样大刀阔斧地改革,所以容量比Blue-ray低了近10GB。由于AOD的规范发布时间较晚,所以目前产品还很少,这可能会使其在和Blue-ray的对抗处中于一个比较被动的境地。
1.3 电存储介质的存储原理
电存储技术主要是指半导体存储器SCM(Semiconductor Memory)。早期的SCM采用典型的晶体管触发器作为存储位元,加上选择、读/写等电路构成存储器。现代的SCM采用超大规模集成电路工艺制成存储芯片,每个芯片中包含相当数量的存储位元,再由若干芯片构成存储器。
从集成电路类型的角度看,SCM分为晶体管双极(Bipolar)型和场效应管MOS(Metal Oxide Semiconductor)型。双极型又分射极耦合逻辑即ECL(Emitter Couple Logic),晶体管晶体管逻辑即TTL(Transistor Transistor Logic)和集成注入逻辑即I2L(Integrated Injection Logic)三种类型。从制造工艺看,MOS型有PMOS(P channel MOS)、NMOS(N channel MOS)和CMOS (Complementary MOS)三类,目前广泛采用的是NMOS和CMOS。从加电后能否长时间保持所存信息的角度看,SCM又有静态存储器和动态存储器之分,静态存储器的存储位元电路是双稳态触发器,动态存储器存储位元电路的关键部件是电容;前者只要电源正常供电,信息就能长期保存,后者即使电源正常供电,信息也只能保持几毫秒或十几毫秒,因此必须在规定时间内刷新。若电源电压不正常或断电,两者信息都丢失。双极型存储器都是静态存储器,而MOS型存储器有静态、动态之分。
双极型存储器速度快,通常比MOS存储器至少高一个数量级,但功耗大,集成度低,适用于快速小容量存储器,如高速暂存存储器和Cache。NMOS静态存储器制造工艺简单、集成度高、单片容量大,主要用做快速主存。CMOS静态存储器功耗最小,速度比NMOS快,集成度比双极型高很多,可靠性高,虽然制造工艺复杂,目前仍应用得很广泛,主要用做快速主存和Cache。动态MOS存储器内部结构最简单,在各类SCM中集成度最高,功耗很小,速度虽比静态MOS和双极型存储器低一些、但仍广泛用做主存。
综上所述,根据工作方式的不同,SCM的分类如下。
1.读/写存储器
读/写存储器,或称随机存取存储器。按信息存储方式不同又可分为:
① 静态RAM(SRAM)。
② 动态RAM(DRAM)。
动态RAM利用电容存储电荷的原理来记忆信息。由于电容器的漏电,存储的电荷逐渐减少,当减少到一定程度时,RAM中存入的信息会消失。因此,需要在信息消失之前,给电容器充电。给电容器充电的过程就叫做动态存储器的刷新。
2.只读存储器
只读存储器包含以下几类:
① 掩模式ROM(MROM,MaskROM):厂家做好内容后不能更改。
② 可编程ROM(PROM,Programmable ROM):用户只能写入一次,写入后不能再更改。
③ 可擦除PROM(EPROM,Erasable PROM):这种EPROM在通常工作时只能读取信息,但可以用紫外线擦除已有信息,并在专用设备上高电压写入信息。
④ 电擦除PROM(E2PROM,Electrically Erasable PROM):用户可以通过程序的控制进行读/写操作,它就是常说的闪存(Flash)。
1.3.1 优盘
优盘是基于USB接口、以闪存芯片为存储介质的无须驱动器的新一代存储设备。优盘的出现是移动存储技术领域的一大突破,其体积小巧,特别适合随身携带,可以随时随地、轻松交换资料数据,是理想的移动办公及数据存储交换产品。
优盘使用标准的USB接口,容量一般在32MB~1GB之间,最高容量已有2GB的产品,能够在各种主流操作系统及硬件平台之间用于大容量数据存储及交换。
总体来说,优盘有着软驱不可比拟的优势,主要具有体积小、功能齐全、使用安全可靠等特点。但也存在容量还不够大且无法扩充、价格较高、在Windows 98等部分操作系统下需安装驱动程序等缺点。
优盘的结构基本上由五部分组成:USB端口、主控芯片、Flash(闪存)芯片、PCB底板、外壳封装。
优盘的基本工作原理也比较简单:USB端口负责连接计算机,是数据输入或输出的通道;主控芯片负责各部件的协调管理和下达各项动作指令,并使计算机将优盘识别为“可移动磁盘”,是优盘的“大脑”;Flash芯片就是PROM,是保存数据的实体,其特点是断电后数据不会丢失,能长期保存;PCB底板提供相应数据处理的平台,且将各部件连接在一起。当优盘被操作系统识别后,使用者下达数据存取的动作指令后,USB移动存储盘的工作便包含了这几个处理过程。
1.3.2数码卡
随着数码相机、MP3播放器、PDA等数码产品的不断普及,一些新型的存储设备也逐渐进入寻常百姓之家。其中最具有代表性的是存储卡和微型硬盘。通常所说的存储卡可以看做是对数码存储设备的总称,实际上存储卡产品包含小型闪存卡(CF卡)、智慧卡(SM卡)、记忆棒(MS)、多媒体卡(MMC卡)和安全数字卡(SD卡)等众多的数码存储设备。不同存储卡设备的性能和用途也不尽相同,而且市面上不断有新品出现。下面介绍一下这些数码存储设备。
1.小型闪存卡(CF卡)
CF卡是最早推出的存储卡产品,其全称是“Compact Flash”,由当时最大的Flash Memory卡厂商之一美国SanDisk公司于1994年推出。大小为43mm×36mm×3.3mm,重量大约在15g以内。由于推出时间早,所以发展上较为成熟,采用ATA协议的Compact Flash,接口为50针。发展到今天,它的最高容量已经由当初的8MB、16MB一路跃升到今天最高达6GB,目前市面上应用最多的是1GB的产品。
现在能见到的CF卡有两种型号:CF TypeⅠ和CF TypeⅡ。在技术方面CF卡本身带有记忆口和控制器。CF存储卡的插槽可以向下兼容。例如,TypeⅡ插槽既可以使用CF TypeⅡ卡,又可以使用CF TypeⅠ卡;而TypeⅠ插槽只能使用CF TypeⅠ卡,不能使用CF TypeⅡ卡。
现在数码相机采用的CF存储卡中,存取速度的标志为×,其中“1×”=150KB/s,例如, 4×(600KB/s)、8×(1.2MB/s)、10×(1.5MB/s)、12×(1.8MB/s)。现在已经有了最高45 ×的CF存储卡。相对而言,采用更快的CF卡会提高数码相机的拍摄效果,但在实际应用中一些中、低端的数码相机产品由于CCD感光器、使用的元器件及技术方面的原因,即使使用了更高速度的CF存储卡,速度方面的优势也很难体现出来。
2.智慧卡(SM卡)
SM卡的全称是“Smart Media”,是东芝公司(TAEC)于1995年11月发布的Flash Memory存储卡。三星公司和东芝公司是最主要的Smart Media厂商。其外形尺寸为45mm×37mm×0.76mm,是目前最薄的Flash Memory存储卡,仅重1.8g。由于SM卡本身没有控制电路,而且由塑胶制成(被分成了许多薄片),因此体积小,非常轻薄,被广泛应用于数码产品中。但由于SM卡的控制电路集成在数码产品中(如数码相机),这使数码相机的兼容性容易受到影响。
接口方面,Smart Media采用22针接口,在卡外部只能看到扁平的金手指。容量上,目前已经发展到128MB以上。由于控制格式的不统一,在以前它的兼容性不是太好,往往出现格式互不兼容的现象,有时会出现不同厂商的数码相机或MP3上使用的SM卡互不能直接使用,或者新的大容量SM卡不能被旧的SM读取设备所读取等怪现象,现在东芝公司力图统一这种控制格式,希望可以提高它的兼容水平。其优点是体积小,价格低,是目前最便宜的Flash Memory。
3.多媒体卡(MMC卡)
MMC卡的全称是“Multi Media Card”,是一种小巧大容量的快闪存储卡,由西门子公司Siemens(现在称为Infineon)和首推CF的SanDisk于1997年推出。它的封装技术较为先进,而且目前已经相当成熟。其外形尺寸大约为32mm×24mm×1.4mm,重量在2g以下,7针引脚,体积甚至比Smart Media还要小,不怕冲击,可反复读/写记录30万次,驱动电压在2.7~3.6V,目前容量多为512MB,1GB以上容量的产品也已面世。现在这种闪存卡已广泛用于移动电话、数码相机、数码摄像机、MP3等多种数码产品上,不足之处是价格相对较贵。
4.记忆棒(Memory Stick)
自从1997年7月Sony宣布开发记忆棒以来,记忆棒已经在Sony全系列产品上得到充分应用,从4MB到128MB容量的产品都能在Sony自己的产品上得到不同的应用。数码设备的产品线最为丰富的Sony甚至力图使这种Flash Memory成为业界标准。Sony自己称它的中文名字是记忆棒,其实它的大小为50mm×21.5mm×0.28mm,重量4g。接口采用单一平面的10针接合器连独立针槽,并具有写保护开关。在越来越强调的版权保护需求中,在1999年12月Sony推出了新的Magic Gate Memory Stick,主要的变化在于加入了称为Magic Gate的Sony专利的版权保护技术,遵从SDMI的标准。
Sony的Memory Stick卡中,因外形尺寸大小不同,又分成三种规格,即Memory Stick、Memory Stick PRO、Memory Stick DUO:目前Memory Stick的容量在16~128MB之间,Memory Stick Pro的容量在256MB~1GB之间,未来可以达到32GB;Memory Stick DUO的容量最小,在16~32MB之间,通过一个适配器,可以像原来的MS卡那样插在卡槽中。
MS PRO属于MS家族中的高档产品,尽管形状和MS卡相同,但它的传输速度有所提高,最低记录速度为15Mbps。可以适应记录连续的动态图像。
由于Sony在业界的强势形象,Memory Stick在自己的产品上得到了充分的应用,可惜不能成为开放式的行业标准,就不可能为其他厂商的产品所用,而且价格太贵。
5.安全数字卡(SD卡)
SD卡的全称是“Secure Digital”,意为“安全数码”,它由日本两大电器集团松下电器、东芝和SanDisk联合推出,1999年8月首次发布,其最大的特点就是通过加密功能,保证数据资料的安全保密。由于SD卡数据传送和物理规范皆由MMC发展而来,因此大小和MMC差不多,尺寸为32mm×24mm×2.1mm,仅比MMC厚了0.7mm,以容纳更大容量的存储单元,重量上也秉承了MMC的轻重量,仅重约1.6g。重要的是,SD卡与MMC卡保持着向上兼容,也就是说,MMC也可以被新的SD设备存取,但SD卡不可以被MMC设备存取。从外观来看, SD接口除了保留MMC的7针外,还在两边加了2针作为数据线,并且带了物理写保护开关。目前Secure Digital卡的容量多在4~512MB之间,更大容量的SD卡也有产品上市。SD卡在售价方面要高于同容量的Multi Media Card卡。
为适应小型化发展,SD卡新近出现了Mini SD卡,主要用于手机、PDA、掌上电脑等信息终端中。
6.XD图像卡(XD Picture Card)
传统CF卡的容量大、体积大,而SM卡的体积小、容量小,如何设计一个体积更小、容量更大的存储卡就成为了许多厂商追求的目标。而富士胶卷和奥林巴斯光学工业为SM卡的后续产品成功开发的XD图像卡“XD Picture Card”,就使这个梦想成为了现实。
这种专为数码相机开发的新型介质的特点是体积小、容量大。外观尺寸在现有的小型存储卡中是最小的,仅为20mm×25mm×1.7mm,和一张普通的邮票差不多。
各种数码存储设备比较见表1-2。
表1-2 数码存储设备比较
各种数码存储设备实物图见表1-3。
表1-3 各种数码存储设备实物图
续表
第二章 Windows系统下数据的存储结构
2.1.1 主引导记录的作用
整个硬盘的第一个扇区,即C/H/S地址的0柱面0磁头1扇区,是一个特殊而重要的扇区,叫做MBR(Master Boot Record)扇区,即主引导记录。这个扇区在计算机引导过程中起着举足轻重的作用,计算机在按下电源键以后,开始执行主板BIOS程序,进行完一系列检测和配置以后,开始按BIOS中设定的系统引导顺序引导系统。BIOS执行完自己的程序后如何把执行权交给硬盘呢。交给硬盘后又执行存储在哪里的程序呢?其实,称为MBR的扇区中的一段代码起着举足轻重的作用。MBR不随操作系统的不同而不同,即不同的操作系统可能会存在相同的MBR,即使不同, MBR也不会夹带操作系统的性质,具有公共引导的特性。
2.1.2 主引导记录的结构
在总共512字节的MBR扇区中,引导程序占用其中的前446字节(偏移0~1BDH),随后的64字节(偏移1BEH~1FDH)为DPT(Disk Partition Table,硬盘分区表),最后的两个字节“55 AA”(偏移1FEH~1FFH)是结束标志,这512字节就共同构成了硬盘的主引导记录。用WinHex查看的一块三星40GB硬盘的MBR,如图2-1所示。
图2-1 MBR结构
2.2 分区和分区表
每块硬盘在使用前都要先进行分区,也就是将硬盘划分为一个个的逻辑区域。每一个分区都有一个确定的起、止位置,在起止位置之间的那些连续的扇区都归该分区所有,不同分区的起止位置互不交错。硬盘的分区形式一般有三种,即主分区、扩展分区和非DOS分区。其中主分区又称为主DOS分区(Primary DOS Partition),目前也称为主磁盘分区。扩展分区又称为扩展DOS分区(Extended DOS Partition)。非DOS分区(Non-DOS Partition)是一种特殊的分区形式,它是将硬盘中的一块区域单独划分出来供另一个操作系统使用,如Linux和UNIX等。对主分区的操作系统来讲,非DOS分区是一块被划分出去的存储空间。只有非DOS分区内的操作系统才能管理和使用这块存储区域,非DOS分区之外的系统一般不能对该分区内的数据进行访问。
2.2.1 主磁盘分区的原理及结构
我们来分析分区表部分。操作系统为了便于用户对磁盘的管理,引入了磁盘分区的概念,即将一块磁盘逻辑划分为几个区域。在分区表共64个字节中,以16个字节为一个分区表项来描述一个分区的结构。主分区的分区信息通常存储在分区表中的第一项,主分区通常也是活动分区。这部分的具体含义见表2-1。
表2-1 分区表项的含义
请注意,上表2-1中的超过1字节的数据都以高位到低位的方式显示,而在实际存储时是按低位到高位存储的。两者表现不同,请仔细看清楚。以后出现的表和图均是这样。另外,也可以通过WinHex的模板管理器中的MBR模板来查看这些参数的意义,如图2-2所示。
图2-2 MBR模板
下面对一些重要的方面作进一步的解释:① 0H偏移为活动分区是否标志,只能是00H和80H。80H为活动,00H为非活动。其余值对Microsoft而言为非法值。
② 再重复非常重要的一点:大于1个字节的数值被以低字节在前的存储格式格式(little endian format)或称反字节顺序保存下来。低字节在前的格式是一种保存数的方法,这样,最低位的字节最先出现在十六进制数符号中。例如,相对扇区数字段的值0x3F000000的低字节在前表示为0x0000003F。这个低字节在前的格式数值的十进制数值为63。
③ 相对扇区数就是该分区的相对起始扇区号,是以LBA值来表示的。这个值也可以称为本分区之前的扇区数,或者隐藏扇区数。
④ 系统在分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。有时候我们分区时输入分区的大小为7000MB,结果分出来却是6997MB,就是这个原因。
⑤ 偏移02H和偏移06H的扇区和柱面参数中,扇区占6位(bit),柱面占10位。以偏移06H为例,其低6位用做扇区数的二进制表示,其高两位做柱面数10位中的高两位,偏移07H组成的8位做柱面数10位中的低8位。由此可知,实际上用这种方式表示的分区容量是有限的,柱面和磁头从0开始编号,扇区从1开始编号,所以最多只能表示1024个柱面×63个扇区×256个磁头×512B=8455716864B,即通常的8.4GB(实际上应该是7.8GB左右)限制。实际上磁头数通常只用到255个(由汇编语言的寻址寄存器决定),即使把这3字节按线性寻址,依然力不从心。在后来的操作系统中,超过8.4GB的分区其实已经不通过C/H/S的方式寻址了,而是通过偏移0CH~0FH共4个字节32位线性扇区地址来表示分区所占用的扇区总数,可知通过4字节可以表示232个扇区,即2TB=2048GB。目前对于大多数计算机而言,这已经是个天文数字了。在未超过8.4GB的分区上,C/H/S的表示方法和线性扇区的表示方法所表示的分区大小是一致的。也就是说,两种表示方法是协调的。即使不协调,也以线性寻址为准。超过8.4GB的分区结束C/H/S一般填充为FEH FFH FFH。即C/H/S所能表示的最大值。不过这几个字节是什么其实都无关紧要了。
⑥ 虽然现在的系统均采用线性寻址的方式来处理分区的大小,但不可跨柱面的原则依然没变。本分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数倍。
⑦ 偏移01C2H处表示该分区的类型,它是操作系统管理分区、组织分区的方式。下面给出一些常见的分区类型,详见表2-2。
表2-2 常见分区类型
在一块硬盘中是允许有多个主磁盘分区的,我们来看一个例子。图2-3是“计算机管理”中的“磁盘管理”界面,其中“磁盘1”是一块2GB的硬盘,从图中可以看到,这块硬盘分为三个区,都为主磁盘分区,没有扩展分区。
图2-3 三个主磁盘分区
用WinHex打开这块硬盘的MBR扇区查看它的分区表,如图2-4所示。
图2-4 三个主磁盘分区的分区表
再用WinHex的MBR模板看一下它的参数,如图2-5所示。
是否看出规律了,如果还没有看出来,我们一起分析一下。首先做一个说明,前面提到过,分区表中的C\H\S参数基本上不起什么作用,所以我们在分析分区表时,对其不做分析。
① 从每个分区表项的第一个字节可以看到,它们的值都是00H,说明这三个分区都不是活动分区。② 从“分区类型”这个参数可以看到,这三个分区的类型都是0BH,说明它们都是FAT32分区。
③ 第一个分区的开始扇区为63号扇区,大小为1028097个扇区。请注意,这两个值相加得到1028160。这个值是什么呢,它就是第二个分区的开始扇区号,这一点可以从第二个分区表项中看到。
④ 同理,第二个分区的开始位置1028160扇区,加上第二个分区的大小1445850扇区,得到2474010。这个值又是第三个分区的开始扇区号。所以我们从中可以发现规律,在这种主磁盘分区中,每个分区的开始扇区号,都是硬盘的绝对扇区号,这一点非常重要,请大家理解并记住。
2.2.2 扩展分区的原理和结构
由于MBR仅仅为分区表保留了64字节的存储空间,而每个分区的参数占据16字节,所以MBR扇区中总计可以存储4个分区表项的数据。如果说逻辑磁盘就是分区,则硬盘最多只能分出4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。所谓扩展分区,严格地讲,它不是一个实际意义的分区,它仅仅是一个指向下一个用来定义分区的参数的指针,这种指针结构形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区信息,通过这个扩展分区的信息就可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过扩展分区参数就可以逐个找到每一个逻辑磁盘。扩展分区中的每个逻辑驱动器的分区信息都存在一个类似于MBR的扩展引导记录(Extended Boot Record,EBR)中,如图2-6所示,扩展引导记录包括分区表和结束标志“55 AA”,没有引导代码部分。
图2-6 EBR结构
EBR中分区表的第一项描述第一个逻辑驱动器,第二项指向下一个逻辑驱动器的EBR。如果不存在下一个逻辑驱动器,第二项就不需要使用,其结构如图2-7所示。
图2-7 扩展分区结构
来看一个实际的例子,首先看图2-8中磁盘1的分区情况。
图2-8 分区结构
可以看出这块硬盘分了四个区:一个主分区、三个逻辑驱动器。用WinHex查看该盘的MBR扇区,如图2-9所示。
图2-9 MBR扇区
在分区表部分可以看到两个分区表项,我们用WinHex的模板看看分区表项的具体值,如图2-10所示。
图2-10 分区的模板
从第一个分区表项可以看到,主分区为FAT32格式,分区开始于63号扇区,大小是1028097个扇区,也就是502MB。第二个分区表项描述的是一个扩展分区,因为其类型为05H,该扩展分区开始于1028160号扇区,大小为3068415扇区。该扩展分区并不是一个可用的驱动器,而只是对一段空间的描述,在其内部可以进一步划分逻辑驱动器。为了便于表述,我们称该扩展分区为“主扩展分区”。下一步我们跳转到主扩展分区的开始扇区1028160,用WinHex查看这个扇区,结果如图2-11所示。
图2-11 该硬盘的1028160扇区
这是一个什么扇区呢?很明显,这就是EBR扇区,也就是说,主扩展分区的开始扇区其实就是EBR,其由分区表和结束标志“55 AA”构成。这是该硬盘的第一个EBR,我们称它为EBR1,用WinHex的模板查看分区表的数值,EBR扇区和MBR扇区使用同一个模板,如图2-12所示。
图2-12 EBR1的模板
第一个分区表项是用来管理第一个逻辑驱动器的,也就是306MB的这个驱动器。从分区表项中具体来看,该驱动器类型是0BH,为FAT32分区,开始于63号扇区,这个值就不是绝对值了,而是一个相对值,也就是说,该值是以EBR1的开始扇区1028160作为起始扇区来定位的。该分区表项最后一个值记录这个逻辑驱动器的大小,为626472扇区,即306MB。再看第二个分区表项,分区类型为05H,是一个扩展分区,为什么在扩展分区中还有扩展分区呢?因为扩展分区是用一种链式结构来管理的,EBR扇区中第一个分区表项总是描述当前的逻辑驱动器,第二个分区表项则连接到下一个EBR扇区,以引出下一个逻辑驱动器。我们称这样的扩展分区为“子扩展分区”,并把这个子扩展分区命名为“子扩展分区1”,因为后面还会有子扩展分区,以示区别。具体分析这个分区表项中的关键值,刚才说过了,该分区类型为05H,表示扩展分区,分区开始位置在626535扇区,这也是个相对位置,是以EBR1所在扇区为起始点来定位的。分区大小为819315扇区,这是指子扩展分区1的大小。分区表项三和分区表项四都是空的,没有数据,这是EBR扇区的固定结构,分区表项三和分区表项四都是空的,没有数据,这是EBR扇区的固定结构,分区表项三和分区表项四总是不用的。接下来我们要看一看子扩展分区1的开始位置是什么结构。子扩展分区1的相对起始位置是626535,我们需要计算出这个相对值所对应的绝对值,也就是在该硬盘中的绝对扇区号,只要用626535加上EBR1所在的扇区号1028160就是了,结果为1654695。通过WinHex跳转到1654695扇区,我们看到如图2-13所示的结构。
图2-13 1654695扇区
很明显这也是一个EBR扇区,有两个分区表项及结束标志“55 AA”,我们称它为EBR2,用WinHex的模板具体看一看,如图2-14所示。
图2-14 EBR2的模板
分析一下EBR2扇区的分区表项。第一个分区表项是用来管理第二个逻辑驱动器的,也就是400MB的这个驱动器。从分区表项中具体来看,该驱动器类型是0BH,为FAT32分区,开始于63号扇区,这个值也是一个相对值,它是以EBR2的开始扇区1654695作为起始扇区来定位的。该分区表项最后一个值记录这个逻辑驱动器的大小,为819252扇区,即400MB。再看第二个分区表项,分区类型为05H,是一个扩展分区,它的作用也是连接到下一个EBR扇区,以引出下一个逻辑驱动器。我们把这个扩展分区定义为“子扩展分区2”。具体分析这个分区表项中的关键值,该扩展分区开始位置在1445850扇区,这也是个相对位置,是以EBR1所在扇区为起始点来定位的,而不是EBR2,这一点很重要,一定不要搞错。分区大小为1622565扇区,这是指子扩展分区2的大小。分区表项三和分区表项四都是空的,没有数据。然后我们看一看子扩展分区2的开始位置是什么结构。子扩展分区2的相对起始位置是1445850,我们需要计算出这个相对值所对应的绝对值,也就是在该硬盘中的绝对扇区号,只要用1445850加上EBR1所在的扇区号1028160就是了,结果为2474010。通过WinHex跳转到2474010扇区,我们看到如图2-15所示的结构。
图2-15 2474010扇区
很明显这也是一个EBR扇区,有两个分区表项及结束标志“55 AA”,我们称它为EBR3,用WinHex的模板具体看一看,如图2-16所示。
图2-16 EBR3的模板
再分析一下EBR3扇区的分区表项。第一个分区表项是用来管理第三个逻辑驱动器的,也就是792MB的这个驱动器。从分区表项中具体来看,该驱动器类型是0BH,为FAT32分区,开始于63号扇区,这个值也是一个相对值,它是以EBR3的开始扇区2474010作为起始扇区来定位的。该分区表项最后一个值记录这个逻辑驱动器的大小,为1622502扇区,即792MB。第二个分区表项没有数据,说明这是主扩展分区中的最后一个EBR扇区,因为是最后一个,所以就没有下一个子扩展分区了,第二个分区表项自然就不再使用。同样,分区表项三和分区表项四都是空的,没有数据。这就是整块硬盘的分区结构。
2.2.3 两种特殊分区的原理和结构
掌握了前面常用的分区管理方式以后,我们再给大家补充两种情况,以加深大家对分区结构的理解,并能够做到灵活应用的程度。先来看第一种情况,如图2-17所示。
图2-17 特殊分区形式一
可以看出这个硬盘共分为六个分区,其中三个主磁盘分区,一个扩展分区,扩展分区内有三个逻辑驱动器。如果掌握了前面说的几种结构,这种形式也是很好理解的,这里把分区关键结构的扇区及模板提供给大家,请大家自行分析。
首先是MBR扇区,如图2-18所示。
图2-18 MBR扇区
能看出来该MBR扇区的四个分区表项都用上了,这四个分区表项的模板我们用两幅图展示给大家,先看前两个分区表项的模板,如图2-19所示。
图2-19 前两个分区表项的模板
图2-20所示是第三个分区表项及第四个分区表项的模板。
图2-20 第三个分区表项及第四个分区表项的模板
其中,第四个分区表项为主扩展分区的表项,跳转到1863540扇区,看一下EBR1扇区,如图2-21所示。
图2-21 EBR1扇区
其模板如图2-22所示。
图2-22 EBR1的模板
第一个分区表项描述逻辑驱动器1,第二个分区表项描述子扩展分区1,它指出了EBR2的位置,经计算得到EBR2的绝对地址为2586465扇区,其内容如图2-23所示。
图2-23 EBR2扇区
其模板如图2-24所示。
图2-24 EBR2的模板
第一个分区表项描述逻辑驱动器2,第二个分区表项描述子扩展分区2,它指出了EBR3的位置,经计算得到EBR3的绝对地址为3518235扇区,其内容如图2-25所示。
图2-25 EBR3扇区
其模板如图2-26所示。
图2-26 EBR3的模板
这是最后一个EBR,所以只使用了第一个分区表项,管理逻辑驱动器3,没有下一个子扩展分区了。
再来看第二种特殊形式的分区,如图2-27所示。
图2-27 特殊分区形式二
这块硬盘没有主磁盘分区,整块硬盘被分成一个扩展分区,然后在扩展分区中分了四个逻辑驱动器。同样,我们也把关键扇区提供给大家,供大家自行分析。先看MBR扇区,如图2-28所示。
图2-28 MBR扇区
可以看到分区表部分只有一个分区表项,其模板如图2-29所示。
图2-29 MBR扇区的模板
通过模板也能看到,只有第一个分区表项有数据,是一个扩展分区,其他三个都为空。
扩展分区开始于16065扇区,这是一个绝对值,跳转到该扇区可以看到EBR1,如图2-30所示。该扇区模板如图2-31所示。
图2-30 EBR1扇区
图2-31 EBR1的模板
第一个分区表项描述逻辑驱动器1,第二个分区表项描述子扩展分区1,它指出了EBR2的位置,经计算得到EBR2的绝对地址为433755扇区,其内容如图2-32所示。该扇区模板如图2-33所示。
图2-32 EBR2扇区
图2-33 EBR2的模板