磁盘寻址(CHS寻址方式、LBA寻址方式)
MHDD扫描硬盘的使用图解教程

MHDD扫描硬盘的使用图解教程2010-11-18 18:37:22| 分类:电脑教程 | 标签:扫描硬盘扇区mhdd |字号订阅1、MHDD是俄罗斯Maysoft公司出品的专业硬盘工具软件,具有很多其他硬盘工具软件所无法比拟的强大功能,它分为免费版和收费的完整版,本文介绍的是免费版的详细用法。
这是一个G表级的软件,他将扫描到的坏道屏蔽到磁盘的G表中。
(小知识:每一个刚出厂的新硬盘都或多或少的存在坏道,只不过他们被厂家隐藏在P表和G表中,我们用一般的软件访问不到他。
G表,又称用户级列表,大约能存放几百个到一千左右的坏道;P表,又称工厂级列表,能存放4000左右的坏道或更多。
)由于它扫描硬盘的速度非常快,已成为许多人检测硬盘的首选软件。
2、此软件的特点:不依赖主板BIOS,支持热插拔。
MHDD可以不依赖于主板BIOS直接访问IDE口,可以访问128G的超大容量硬盘(可访问的扇区范围从512到137438953472),即使你用的是286电脑,无需BIOS支持,也无需任何中断支持.热插拔的顺序要记清楚:插的时候,先插数据线,再插电源线。
拔的时候,先拔电源线,再拔数据线。
但我劝你不熟练最好不要热插拔,以免你不小心烧了硬盘赖我。
3、MHDD最好在纯DOS环境下运行;但要注意尽量不要使用原装Intel品牌主板;4、不要在要检测的硬盘中运行MHDD;5、MHDD在运行时需要记录数据,因此不能在被写保护了的存储设备中运行(比如写保护的软盘、光盘等)下面,我们在DOS下运行MHDD29:输入命令MHDD29,按回车,出现主界面:主界面列出了MHDD的所有命令,下面我们主要讲解MHDD的几个常用命令:PORT;ID ;SCAN;HPA;RHPA;NHPA;PWD ;UNLOCK ;DISPWD ;ERASE ;AERASE ;STOP。
首先输入命令PORT(热键是:SHIFT+F3),按回车。
这个命令的意思是扫描IDE口上的所有硬盘。
各类型存储卡的区别与差异

各类型存储卡的区别与差异联合数码实验室水波古一现如今的科技发展速度之快,不由不让我们惊奇,存储设备的尺寸已经做得像指甲盖一样大了,越来越多的厂商推出了微型的高速大容量存储卡。
绝大部分的数码相机、PDA和智能手机都采用了存储卡作为了存储设备,随着数码相机的高速普及速度,其相关配件存储卡受关注的程度也在不断的提高。
然而面对市场上种类繁多的存储卡,我们怎么去区分和选择呢?他们之间有什么样的差异和共同点呢?下面我们就把市面上所有主流的存储卡的来历和格式向大家详细道来。
闪存按照规格又分为CF卡、SM卡、MMC卡、SD(包含原来的TF卡)卡、MS卡(记忆棒)、xD 卡等等,我们先从CF卡开始。
CF卡CF卡可能是色影无忌网友最熟悉的一种卡了,现今市场上单反数码相机大多数的还是采用了CF作存储,只有为数不多的采用了SD卡,如尼康新出机型D40、D80,还有D50,松下新出的L1,宾得K10D等。
虽然我们平时很熟悉CF卡,但是我们不见得熟悉其来龙去脉,下面我们先介绍一下CF卡的历史。
SanDisk第三代CF卡,具有读写速度快,容量大的特点CF卡(Compact Flash)是1994年由SanDisk最先推出的。
CF卡具有PCMCIA-ATA功能,并与之兼容;CF卡重量只有14g,仅纸板火柴般大小(43mm x 36m x m3.3mm),是一种固态产品,也就是工作时没有运动部件。
CF卡采用闪存(flash)技术,是一种稳定的存储解决方案,不需要电池来维持其中存储的数据。
对所保存的数据来说,CF卡比传统的磁盘驱动器安全性和保护性都更高;比传统的磁盘驱动器及Ⅲ型PC卡的可靠性高5到10倍,而且CF卡的用电量仅为小型磁盘驱动器的5%。
这些优异的条件使得大多数数码相机选择CF卡作为其首选存储介质。
虽然最初CF卡是采用Flash Memory的存贮卡,但随着CF卡的发展,各种采用CF卡规格的非Flash Memory卡也开始出现,CFA后来又发展出了CF+的规格,使CF卡的范围扩展到非Flash Memory 的其它领域,包括其它I/O设备和磁盘存贮器,以及一个更新物理规格的Type II规格(IBM的Microdrive就是Type II的CF卡),Type II和原来的Type I相比不同之处在于Type II厚5mm。
硬盘访问模式

CHS(或称为Normal)模式:适应容量≤504MB的硬盘LBA(Logical Block Addressing)模式:适应容量≥504MB的硬盘,但BIOS需支持扩展INT13H,否则也只能适应≤8.4GB的硬盘LARGE(或称LRG)模式:适应504MB≤容量≤8.4GB的硬盘LARGE大硬盘模式。
当硬盘的柱面超过1024而又不为LBA支持时可采用此种模式。
LARGE模式采取的方法是把柱面数除以2,把磁头数乘以2,其结果总容量不变。
例如,在NORMAL 模式下柱面数为1220,磁头数为16,进入LARGE模式则柱面数为610,磁头数为32。
这样在DOS看来柱面数小于1024,即可正常工作。
目前基本上只有LBA有实际意义了。
LARGE寻址模式把柱面数除以整数倍、磁头数乘以整数倍而得到的逻辑磁头/柱面/扇区参数进行寻址,所以表示的已不是硬盘中的物理位置,而是逻辑位置。
LBA寻址模式是直接以扇区为单位进行寻址的,不再用磁头/柱面/扇区三种单位来进行寻址。
但为了保持与CHS模式的兼容,通过逻辑变换算法,可以转换为磁头/柱面/扇区三种参数来表示,但表示的也和LARGE寻址模式一样,已不是硬盘中的物理位置,而是逻辑位置了。
LBA(Logical Block Addressing)逻辑块寻址模式。
这种模式所管理的硬盘空间突破了528KB的瓶颈,可达8.4GB。
在LBA模式下,设置的柱面、磁头、扇区等参数并不是实际硬盘的物理参数。
在访问硬盘时,由IDE控制器把由柱面、磁头、扇区等参数确定的逻辑地址转换为实际硬盘的物理地址。
在LBA模式下,可设置的最大磁头数为255,其余参数与普通模式相同。
由此可计算出可访问的硬盘容量为:512×63×255×1024=8.4GB。
为什么会变成LGR模式?是硬盘坏了``我以前也遇到过只能访问C盘,其它盘说盘符无效,当时拿到厂家保修,他说坏了, 当然你如果不能保修,可以试着自己弄, 我那时候是从BIOS已经看不到硬盘了, 如果你的还可以的话,可以用工具去对硬盘的分区表进行重建,也可以重新分区,检查.低格等. 如果BIOS看不到的话,那就看是不是零磁道坏了,也可以用工具查看一下`` 具体的作法可以到网上去查.不过一般这种挽回的可能性都不怎么大. 努力,希望采纳扩展int13h调用详解(修正)第一部分简介一. 硬盘结构简介1. 硬盘参数释疑到目前为止, 人们常说的硬盘参数还是古老的 CHS (Cylinder/ Head/Sector)参数. 那么为什么要使用这些参数, 它们的意义是什么? 它们的取值范围是什么? 很久以前, 硬盘的容量还非常小的时候, 人们采用与软盘类似的结构生产硬盘. 也就是硬盘盘片的每一条磁道都具有相同的扇区数. 由此产生了所谓的3D 参数 (Disk Geometry). 既磁头数(Heads), 柱面数 (Cylinders), 扇区数(Sectors),以及相应的寻址方式. 其中: 磁头数(Heads) 表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储); 柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道, 最大为 1023 (用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63 (用 6 个二进制位存储). 每个扇区一般是 512个字节, 理论上讲这不是必须的, 但好象没有取别的值的. 所以磁盘最大容量为: 255 * 1023 * 63 * 512 / 1048576 = 8024 MB ( 1M = 1048576 Bytes ) 或硬盘厂商常用的单位: 255 * 1023 * 63 * 512 / 1000000 = 8414 MB ( 1M = 1000000 Bytes ) 在 CHS 寻址方式中, 磁头, 柱面, 扇区的取值范围分别为 0 到 Heads - 1, 0 到 Cylinders - 1, 1 到 Sectors (注意是从 1 开始).2. 基本 Int 13H 调用简介 BIOS Int 13H 调用是 BIOS 提供的磁盘基本输入输出中断调用, 它可以完成磁盘(包括硬盘和软盘)的复位, 读写, 校验, 定位, 诊断, 格式化等功能. 它使用的就是 CHS 寻址方式, 因此最大识能访问 8 GB 左右的硬盘 ( 本文中如不作特殊说明, 均以 1M = 1048576 字节为单位).3. 现代硬盘结构简介在老式硬盘中, 由于每个磁道的扇区数相等, 所以外道的记录密度要远低于内道, 因此会浪费很多磁盘空间 (与软盘一样). 为了解决这一问题, 进一步提高硬盘容量, 人们改用等密度结构生产硬盘. 也就是说, 外圈磁道的扇区比内圈磁道多. 采用这种结构后, 硬盘不再具有实际的3D参数, 寻址方式也改为线性寻址, 即以扇区为单位进行寻址. 为了与使用3D寻址的老软件兼容 (如使用BIOS Int13H接口的软件), 在硬盘控制器内部安装了一个地址***器, 由它负责将老式3D参数***成新的线性参数. 这也是为什么现在硬盘的3D参数可以有多种选择的原因 (不同的工作模式, 对应不同的3D参数, 如 LBA, LARGE, NORMAL).4. 扩展 Int 13H 简介虽然现代硬盘都已经采用了线性寻址, 但是由于基本 Int 13H 的制约, 使用 BIOS Int 13H 接口的程序, 如 DOS 等还只能访问 8 G 以内的硬盘空间. 为了打破这一限制, Microsoft 等几家公司制定了扩展 Int 13H 标准 (Extended Int13H), 采用线性寻址方式存取硬盘, 所以突破了 8 G 的限制, 而且还加入了对可拆卸介质 (如活动硬盘) 的支持.二. Boot Sector 结构简介1. Boot Sector 的组成Boot Sector 也就是硬盘的第一个扇区, 它由 MBR (Master Boot Record), DPT (Disk Partition Table) 和 Boot Record ID 三部分组成. MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节 ( 0 to0x1BD ), 存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序). DPT 即主分区表占用 64 个节 (0x1BE to 0x1FD), 记录了磁盘的基本分区信息. 主分区表分为四个分区项, 每项 16 字节, 分别记录了每个主分区的信息 (因此最多可以有四个主分区). Boot Record ID 即引导区标记占用两个字节(0x1FE and 0x1FF), 对于合法引导区, 它等于 0xAA55, 这是判别引导区是否合法的标志. Boot Sector 的具体结构如下图所示 (参见 NightOwl 大侠的文章):2. 分区表结构简介分区表由四个分区项构成, 每一项的结构如下:BYTE State : 分区状态, 0 = 未激活, 0x80 = 激活 (注意此项)BYTE StartHead : 分区起始磁头号WORD StartSC : 分区起始扇区和柱面号, 底字节的低6位为扇区号,高2位为柱面号的第 9,10 位, 高字节为柱面号的低 8 位BYTE Type : 分区类型, 如 0x0B = FAT32, 0x83 = Linux 等,00 表示此项未用BYTE EndHead : 分区结束磁头号WORD EndSC : 分区结束扇区和柱面号, 定义同前DWORD Relative : 在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址)DWORD Sectors : 分区大小 (总扇区数) 注意: 在 DOS / Windows 系统下, 基本分区必须以柱面为单位划分 ( Sectors * Heads 个扇区), 如对于 CHS 为 764/255/63 的硬盘, 分区的最小尺寸为 255 * 63 * 512 / 1048576 = 7.844 MB.3. 扩展分区简介由于主分区表中只能分四个分区, 无法满足需求, 因此设计了一种扩展分区格式. 基本上说, 扩展分区的信息是以链表形式存放的, 但也有一些特别的地方. 首先, 主分区表中要有一个基本扩展分区项, 所有扩展分区都隶属于它, 也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中. 对于 DOS / Windows 来说, 扩展分区的类型为 0x05或0x0F(>8GB). 除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放, 后一个扩展分区的数据项记录在前一个扩展分区的分区表中, 但两个扩展分区的空间并不重叠. 扩展分区类似于一个完整的硬盘, 必须进一步分区才能使用. 但每个扩展分区中只能存在一个其他分区. 此分区在 DOS/Windows 环境中即为逻辑盘. 因此每一个扩展分区的分区表 (同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项). 扩展分区和逻辑盘的示意图如下:三. 系统启动过程简介系统启动过程主要由一下几步组成(以硬盘启动为例):1. 开机 :-)2. BIOS 加电自检 ( Power On Self Test -- POST ) 内存地址为 0ffff:00003. 将硬盘第一个扇区 (0头0道1扇区, 也就是Boot Sector) 读入内存地址 0000:7c00 处.4. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则转去尝试其他启动介质, 如果没有其他启动介质则显示 "No ROM BASIC" 然后死机.5. 跳转到 0000:7c00 处执行 MBR 中的程序.6. MBR 首先将自己复制到 0000:0600 处, 然后继续执行.7. 在主分区表中搜索标志为活动的分区. 如果发现没有活动分区或有不止一个活动分区, 则转停止.8. 将活动分区的第一个扇区读入内存地址 0000:7c00 处.9. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则显示 "Missing Operating System" 然后停止, 或尝试软盘启动.10. 跳转到 0000:7c00 处继续执行特定系统的启动程序.11. 启动系统 ...以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成. 6,7,8,9,10 步由MBR中的引导程序完成. 一般多系统引导程序 (如 SmartFDISK, BootStar, PQBoot 等) 都是将标准主引导记录替换成自己的引导程序, 在运行系统启动程序之前让用户选择要启动的分区. 而某些系统自带的多系统引导程序 (如 lilo, NT Loader 等) 则可以将自己的引导程序放在系统所处分区的第一个扇区中, 在 Linux 中即为 SuperBlock (其实 SuperBlock 是两个扇区). 注: 以上各步骤中使用的是标准 MBR, 其他多系统引导程序的引导过程与此不同.第二部分技术资料第一章扩展 Int13H 技术资料一. 简介设计扩展 Int13H 接口的目的是为了扩展 BIOS 的功能, 使其支持多于1024柱面的硬盘, 以及可移动介质的琐定, 解锁及弹出等功能.二. 数据结构1. 数据类型约定BYTE 1 字节整型 ( 8 位 )WORD 2 字节整型 ( 16 位 )DWORD 4 字节整型 ( 32 位 )QWORD 8 字节整型 ( 64 位 )2. 磁盘地址数据包 Disk Address Packet (DAP) DAP 是基于绝对扇区地址的, 因此利用 DAP, Int13H 可以轻松地逾越 1024 柱面的限制, 因为它根本就不需要 CHS 的概念. DAP 的结构如下:struct DiskAddressPacket{BYTE PacketSize; // 数据包尺寸://(固定值,恒等于16,即10H,指本结构所占用的存储空间)BYTE Reserved; // ==0WORD BlockCount; // 要传输的数据块个数(以扇区为单位)DWORD BufferAddr; // 传输缓冲地址(segment:offset)QWORD BlockNum; // 磁盘起始绝对块地址};PacketSize 保存了 DAP 结构的尺寸, 以便将来对其进行扩充. 在目前使用的扩展 Int13H 版本中PacketSize 恒等于 16. 如果它小于 16, 扩展 Int13H 将返回错误码( AH=01, CF=1 ). BlockCount 对于输入来说是需要传输的数据块总数, 对于输出来说是实际传输的数据块个数. BlockCount = 0 表示不传输任何数据块. BufferAddr 是传输数据缓冲区的 32 位地址 (段地址:偏移量). 数据缓冲区必须位于常规内存以内(1M). BlockNum 表示的是从磁盘开始算起的绝对块地址(以扇区为单位), 与分区无关. 第一个块地址为 0. 一般来说, BlockNum 与 CHS 地址的关系是: BlockNum = (cylinder * NumberOfHeads + head) * SectorsPerTrack + sector - 1; 其中 cylinder, head, sector 是 CHS 址, NumberOfHeads 是磁盘的磁头数, SectorsPerTrack 是磁盘每磁道的扇区数. 也就是说 BlockNum 是沿着扇区->磁道->柱面的顺序记数的. 这一顺序是由磁盘控制器虚拟的, 磁盘表面数据块的实际排列顺序可能与此不同 (如为了提高磁盘速度而设置的间隔因子将会打乱扇区的排列顺序). 3. 驱动器参数数据包 Drive Parameters Packet 驱动器参数数据包是在扩展 Int13H 的取得驱动器参数子功能调用中使用的数据包. 格式如下: struct DriveParametersPacket{WORD InfoSize; // 数据包尺寸: //(固定值,等于26,即1AH,指本结构所占用的存储空间)WORD Flags; // 信息标志DWORD Cylinders; // 磁盘柱面数DWORD Heads; // 磁盘磁头数DWORD SectorsPerTrack; // 每磁道扇区数QWORD Sectors; // 磁盘总扇区数WORD SectorSize; // 扇区尺寸 (以字节为单位)};信息标志用于返回磁盘的附加信息, 每一位的定义如下:0 位:0 = 可能发生 DMA 边界错误1 = DMA 边界错误将被透明处理如果这位置 1, 表示 BIOS 将自动处理 DMA 边界错误, 也就是说错误代码 09H 永远也不会出现.1 位:0 = 未提供 CHS 信息1 = CHS 信息合法如果块设备的传统 CHS 几何信息不适当的话, 该位将置 0.2 位:0 = 驱动器不可移动1 = 驱动器可移动3 位: 表示该驱动器是否支持写入时校验.4 位:0 = 驱动器不具备介质更换检测线1 = 驱动器具备介质更换检测线5 位:0 = 驱动器不可锁定1 = 驱动器可以锁定要存取驱动器号大于 0x80 的可移动驱动器, 该位必须置 1(某些驱动器号为 0 到 0x7F 的设备也需要置位)6 位:0 = CHS 值是当前存储介质的值 (仅对于可移动介质), 如果驱动器中有存储介质, CHS 值将被返回.1 = CHS 值是驱动器支持的最大值 (此时驱动器中没有介质).7 - 15 位: 保留, 必须置 0.三. 接口规范1. 寄存器约定在扩展 Int13H 调用中一般使用如下寄存器约定:ds:si ==> 磁盘地址数据包( disk address packet )dl ==> 驱动器号ah ==> 功能代码 / 返回码在基本 Int13H 调用中, 0 - 0x7F 之间的驱动器号代表可移动驱动器0x80 - 0xFF 之间的驱动器号代表固定驱动器. 但在扩展 Int13H 调用中0x80 - 0xFF 之间还包括一些新出现的可移动驱动器, 比如活动硬盘等.这些驱动器支持先进的锁定,解锁等功能. ah 返回的错误码除了标准 Int13H 调用规定的基本错误码以外,又增加了以下错误码:B0h 驱动器中的介质未被锁定B1h 驱动器中的介质已经锁定B2h 介质是可移动的B3h 介质正在被使用B4h 锁定记数溢出B5h 合法的弹出请求失败2. API 子集介绍1.x 版的扩展 Int13H 调用中规定了两个主要的 API 子集.第一个子集提供了访问大硬盘所必须的功能, 包括检查扩展 In13H 是否存在( 41h ), 扩展读( 42h ), 扩展写( 43h ), 校验扇区( 44h ), 扩展定位( 47h ) 和取得驱动器参数( 48h ). 第二个子集提供了对软件控制驱动器锁定和弹出的支持, 包括检查扩展 Int13H 是否存在( 41h ), 锁定/解锁驱动器( 45h ), 弹出驱动器( 46h ), 取得驱动器参数( 48h ), 取得扩展驱动器改变状态( 49h ), int 15h.如果使用了调用规范中不支持的功能, BIOS 将返回错误码 ah = 01h, CF = 1.3. API 详解1) 检验扩展功能是否存在入口:AH = 41hBX = 55AAhDL = 驱动器号返回:CF = 0AH = 扩展功能的主版本号AL = 内部使用BX = AA55hCX = API 子集支持位图CF = 1AH = 错误码 01h, 无效命令这个调用检验对特定的驱动器是否存在扩展功能. 如果进位标志置 1 则此驱动器不支持扩展功能. 如果进位标志为 0, 同时 BX = AA55h, 则存在扩展功能. 此时 CX 的 0 位表示是否支持第一个子集, 1位表示是否支持第二个子集. 对于 1.x 版的扩展 Int13H 来说, 主版本号 AH = 1. AL 是副版本号, 但这仅限于 BIOS 内部使用, 任何软件不得检查 AL 的值.2) 扩展读入口:AH = 42hDL = 驱动器号DS:DI = 磁盘地址数据包(Disk Address Packet)返回:CF = 0, AH = 0 成功CF = 1, AH = 错误码这个调用将磁盘上的数据读入内存. 如果出现错误, DAP 的 BlockCount 项中则记录了出错前实际读取的数据块个数.3) 扩展写入口:AH = 43hAL0 位 = 0 关闭写校验1 打开写校验1 - 7 位保留, 置 0DL = 驱动器号DS:DI = 磁盘地址数据包(DAP)返回:CF = 0, AH = 0 成功CF = 1, AH = 错误码这个调用将内存中的数据写入磁盘. 如果打开了写校验选项, 但 BIOS不支持, 则会返回错误码 AH = 01h, CF = 1. 功能 48h 可以检测BIOS是否支持写校验. 如果出现错误, DAP 的 BlockCount 项中则记录了出错前实际写入的数据块个数.4) 校验扇区入口:AH = 44hDL = 驱动器号DS:DI = 磁盘地址数据包(Disk Address Packet)返回:CF = 0, AH = 0 成功CF = 1, AH = 错误码这个调用校验磁盘数据, 但并不将数据读入内存.如果出现错误, DAP 的BlockCount 项中则记录了出错前实际校验的数据块个数.5) 锁定/解锁驱动器入口:AH = 45hAL= 0 锁定驱动器= 1 驱动器解锁= 02 返回锁定/解锁状态= 03h-FFh - 保留DL = 驱动器号返回:CF = 0, AH = 0 成功CF = 1, AH = 错误码这个调用用来缩定指定驱动器中的介质. 所有标号大于等于 0x80 的可移动驱动器必须支持这个功能. 如果在支持可移动驱动器控制功能子集的固定驱动器上使用这个功能调用, 将会成功返回. 驱动器必须支持最大255次锁定, 在所有锁定被解锁之前, 不能在物理上将驱动器解锁. 解锁一个未锁定的驱动器,将返回错误码 AH= B0h. 如果锁定一个已锁定了255次的驱动器, 将返回错误码 AH = B4h. 锁定一个没有介质的驱动器是合法的.6) 弹出可移动驱动器中的介质入口:AH = 46hAL = 0 保留DL = 驱动器号返回:CF = 0, AH = 0 成功 CF = 1, AH = 错误码这个调用用来弹出指定的可移动驱动器中的介质. 所有标号大于等于 0x80 的可移动驱动器必须支持这个功能. 如果在支持可移动驱动器控制功能子集的固定驱动器上使用这个功调用, 将会返回错误码 AH = B2h (介质不可移动). 如果试图弹出一个被锁定的介质将返回错误码 AH = B1h (介质被锁定). 如果试图弹出一个没有介质的驱动器, 则返回错误码 Ah = 31h (驱动器中没有介质). 如果试图弹出一个未锁定的可移动驱动器中的介质, Int13h会调用 Int15h (AH = 52h) 来检查弹出请求能否执行. 如果弹出请求被拒绝则返回错误码(同 Int15h). 如果弹出请求被接受,但出现了其他错误, 则返回错误码 AH = B5h. 7) 扩展定位入口:AH = 47hDL = 驱动器号DS:DI = 磁盘地址数据包(Disk Address Packet)返回:CF = 0, AH = 0 成功CF = 1, AH = 错误码这个调用将磁头定位到指定扇区.8) 取得驱动器参数入口:AH = 48hDL = 驱动器号DS:DI = 返回数据缓冲区地址返回:CF = 0, AH = 0 成功DS:DI 驱动器参数数据包地址, (参见前面的文章)CF = 1, AH = 错误码这个调用返回指定驱动器的参数.9) 取得扩展驱动器介质更换检测线状态入口:AH = 49hDL = 驱动器号返回:CF = 0, AH = 0 介质未更换CF = 1, AH = 06h 介质可能已更换这个调用返回指定驱动器的介质更换状态. 这个调用与 Int13h AH = 16h 子功能调用相同, 只是允许任何驱动器标号. 如果对一台支持可移动介质功能子集的固定驱动器使用此功能,则永远返回 CF = 0, AH = 0. 简单地将可移动介质锁定再解锁就可以激活检测线, 而无须真正更换介质.10) Int 15h 可移动介质弹出支持入口:AH = 52hDL = 驱动器号返回:CF = 0, AH = 0 弹出请求可能可以执行CF = 1, AH = 错误码 B1h 或 B3h 弹出请求不能执行这个调用是由 Int13h AH=46h 弹出介质功能调用内部使用的.。
电脑硬盘寻址模式

1硬盘寻址与容量解决对于大部分拥有硬盘的用户来说,特别对于那些正在准备升级到大硬盘但是却不打算升级系统的其它部分的用户,它们首先考虑的是自己的系统是否支持这么大容量的硬盘。
这个问题同硬盘结构、BIOS和操作系统息息相关--归根到底这些问题的出现是由于当时的人们由于条件所限制而缺乏长远考虑的结果。
在当时这样的设计根本没有问题,但是随着技术的进一步发展这些问题就曝露了出来,而且影响颇广。
好在这些问题都已经被通过不同的方式解决了。
本章节将会同大家一起来谈谈容量限制的问题。
下面的容量限制分别采用两种方式表示,前面的一种采用的是1GB=1000MB和1MB=1000KB的换算,而后面的容量采用的是1GB=1024MB和1MB =1024KB的换算。
528MB/504MB容量限制这并不是历史上第一个硬盘容量限制问题,但是它是第一个引起人们广泛关注的容量限制问题。
这之前硬盘的容量限制问题也一再的出现过,但是因为PC用户非常的少,所以很多人并不知道这些问题,这里我们做一个简短的回顾:∙10.4 MB容量限制:这个问题出现在最早的IBM PC/XT上,这种设备使用了一种专门设计的硬盘,它有312个柱面(cylinders)、4个磁头和17个扇区,这样算来它的最大容量只能为10MB,这种容量限制来自于硬盘。
∙16MB FAT12容量限制:第一种用于硬盘的FAT格式是12bit的,它最多能容纳4086个大小为4096字节的簇,因此总容量为16,736,256字节,也就是大约16MB。
∙32MB DOS 3容量限制: 为了解决16 MB容量限制,DOS 3.x开始支持FAT16文件系统,不过由于这种文件系统只能允许16384个容量为=2048字节的簇,所以它就造成了32MB的容量限制问题,不过由于多分区的概念的引入,硬盘的容量并没有因此受到太大的限制,只是每个分区的容量不能超过32MB。
∙128MB DOS 4容量限制:DOS 4.x开始支持65526个容量为2048字节的簇,所以其容量上限提升到了128MB可以看到上面的这些容量限制的问题大都是由于MS-DOS系统所引起的,这之后的DOS 5允许每个簇的最大容量为8192字节,因此最大分区容量限制为512 MB,不过这个容量限制并没有引起人们的广泛关注,因为在这之前由于BIOS和IDE 规范所引起的504MB容量限制首先曝露了出来(大约是1994年左右)。
FAT32文件系统详细介绍

初识FAT32文件系统Abstract: File System is used to manage files software and data ,it is part of the operating system.FAT32 file system is a kind of format that it manage disk files. And the corresponding other file system format such as NTFS,EXT2 etc.Key words: File System; FAT32 File System; Disk摘要: 文件系统是用于管理文件的软件和数据的统称,它是操作系统的一部分。
FAT32文件系统是一种管理磁盘文件的一种格式。
还有相应的其他文件系统格式比如NTFS,EXT2等。
关键词: 文件系统;FAT32文件系统;磁盘1 硬盘结构1.1 硬盘物理结构[1]图1 硬盘的内部结构硬盘基本上由两大部分组成:控制电路板和盘体。
1.控制电路板控制电路板由接口,DSP处理器,ROM,缓存,磁头驱动电路和盘片电机驱动电路等等组成。
2.盘体盘体由盘腔,上盖,盘片电机,盘片,磁头,音圈和其他辅助组件组成。
一般硬盘的接口分为几种,有IDE接口(Integrated Drive Electronics),SCSI接口(Small Computer System Interface),SATA接口(Serial-ATA)(目前是主流),SAS接口,IEEE1394接口。
硬盘存储数据是根据电、磁转换原理实现的。
硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。
给出一个磁盘地址格式方案

给出一个磁盘地址格式方案
常见的磁盘地址格式方案有以下几种:
1. CHS (柱面、磁头、扇区) 方案:顾名思义,它是通过柱面(Cylinder)、磁头(Head)和扇区(Sector)三个参数来表示磁盘上的数据位置。
例如,一个磁盘的CHS地址为12/5/10表示它在第12个柱面、第5个磁头、第10个扇区。
2. LBA (逻辑块地址) 方案:它是使用逻辑块地址(LBA)来表示磁盘上的数据位置。
LBA是按照顺序编号的,每个LBA通常代表一个512字节的数据块。
例如,一个磁盘的LBA地址为94830表示它在第94830个数据块上。
3. GPT (GUID分区表) 方案:GUID分区表是一种新的磁盘分区方案,它使用GUID来标识分区,并可以支持磁盘容量超过2TB的磁盘。
GPT磁盘使用LBA地址来表示磁盘上的数据位置。
4. MBR (主引导记录) 方案:MBR是一种旧的磁盘分区方案,它限制磁盘容量不超过2TB,而且只支持4个分区。
MBR磁盘使用CHS或LBA地址来表示磁盘上的数据位置。
解释硬盘的lba模式和chs模式的区别

解释硬盘的lba模式和chs模式的区别解释硬盘的lba模式和chs模式的区别硬盘的chs模式是指chs(Cylinder/Head/Sector)模式,很久以前, 硬盘的容量还非常小的时候, 人们采用与软盘类似的结构生产硬盘. 也就是硬盘盘片的每一条磁道都具有相同的扇区数. 由此产生了所谓的3D参数 (Disk Geometry). 既磁头数(Heads), 柱面数(Cylinders), 扇区数(Sectors per track),以及相应的寻址方式.其中: 磁头数(Heads) 表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 256 (用 8 个二进制位存储);柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道, 最大为1024(用10 个二进制位存储); 扇区数(Sectors per track) 表示每一条磁道上有几个扇区, 最大为63 (用 6 个二进制位存储). 每个扇区一般是512个字节, 理论上讲这不是必须的, 但好象没有取别的值的. 所以磁盘最大容量为: 256 * 1024 * 63 * 512 / 1048576 = 8064 MB ( 1M = 1048576 Bytes)或硬盘厂商常用的单位:256 * 1024 * 63 * 512 / 1000000 = 8455 MB ( 1M = 1000000 Bytes )在CHS 寻址方式中, 磁头, 柱面, 扇区的取值范围分别为0 到Heads-1,0 到 Cylinders-1, 1 到 Sectors per track (注意是从 1 开始).在CHS 寻址方式中, 有以下几种尺寸单位:扇区(Sector) = 512 字节(一般情况下)磁道 (Track) = (Sectors per track) 扇区柱面 (Cylinder)= (Sectors per track) * Heads 扇区这种方式会浪费很多磁盘空间(与软盘一样). 为了解决这一问题, 进一步提高硬盘容量, 人们改用等密度结构生产硬盘. 也就是说, 外圈磁道的扇区比内圈磁道多. 采用这种结构后, 硬盘不再具有实际的3D参数, 寻址方式也改为线性寻址, 即以扇区为单位进行寻址.为了与使用3D寻址的老软件兼容 (如使用BIOS Int13H接口的软件), 在硬盘控制器内部安装了一个地址翻译器, 由它负责将老式3D参数翻译成新的线性参数. 这也是为什么现在硬盘的3D参数可以有多种选择的原因(不同的工作模式, 对应不同的3D参数,如LBA, LARGE,NORMAL). CHS模式只能识别大硬盘的前面8G.lba使用的线性寻址,突破了1024柱面的限制,能访问8G以外的空间了。
CHS与LBA的转换关系

C/H/S与LBA的转换关系分类:Win32/64汇编2011-10-26 10:56279人阅读评论(3)收藏举报为了与C/H/S寻址模式相兼容,大容量的硬盘一般也支持模拟的C/H/S寻址,此时的C/H/S参数都是模拟出来的,而不是实际的物理值。
而且目前大多数的资料、磁盘工具类软件采用的硬盘参数介绍和计算方法,以及数据恢复技术中一般还是使用相对比较简单的C/H/S寻址模式进行定位,因此,应掌握C/H/S与LBA的转换关系。
1.C/H/S与LBA的转换规则硬盘系统在写入数据时,是按照从柱面到柱面的方式进行的,即在上一个柱面写满数据后才移动磁头到下一个柱面,并从柱面的第一个磁头的第一个扇区开始写入,从而使硬盘性能最优。
所以,在对物理扇区进行线性编址时,也会按照这种方式进行。
这里假设一个硬盘按物理扇区划分为1024个柱面、4个磁头、每磁道63个扇区,则C/H/S与LBA的转换关系如表1-1所示。
表1-1C/H/S与LBA的转换关系C/H/S地址LBA编号柱面磁头扇区00100021003~632~6201163012~6364~125021~63126~188031~63189~251101252102~63253~314111315…………知识提示:物理扇区是指某个扇区在硬盘上的绝对位置,可以由柱面、磁头与扇区来唯一定位,即柱面、磁头、扇区与硬盘上每一个扇区有一一对应关系。
2.C/H/S到LBA的转换公式掌握了C/H/S与LBA的转换规则,就可以通过公式对两种寻址模式进行相互转换。
这里首先讲解从C/H/S到LBA的转换公式。
以C、H、S分别表示当前硬盘的柱面号、磁头号、扇区号,CS、HS、SS分别表示起始柱面号、磁头号、扇区号,PS表示每磁道扇区数,PH表示每柱面总的磁道数。
则C/H/S到LBA的转换公式为: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/63时,LBA=62;当C/H/S=0/1/1时,LBA=63;当C/H/S=185/20/50时,LBA=2 973 334。
磁盘的寻址模式

1. 数据的组织和格式:标识符字段 + 数据字段
Sect or
P hysical Sector 0
P hysical Sector 1
P hysical Sector 29
ID
Dat a
ID
Dat a
Gap Field Gap Field Gap Gap Field Gap Field Gap
1 0 2 0 3 1 29 2 29 3 Byt es
上节回顾
1. 设备独立性:逻辑设备与物理设备的映射 2. 设备的分配程序:P165 3. SPOOLing系统:P166
用程序模拟脱机输入、输出 双井(磁盘),双缓冲区(内存),双进程 4. 设备处理:设备驱动 设备驱动程序的功能:P168 设备驱动程序的处理过程:P169 中断处理程序的处理过程:P170
高速缓存在内存中可分成两种形式。
第一种是在内存中开辟一个单独的存储空间来作为磁盘高 速缓存,其大小是固定的,不会受应用程序多少的影响;
第二种是把所有未利用的内存空间变为一个缓冲池,供请 求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。
2. 数据交付方式
数据交付是指将缓存数据传送给请求进程。系统采取两 种方式将数据交付给请求进程:
5.6 磁盘存储器管理
目标是提高磁盘性能
5.6 磁盘存储器管理
磁盘的构成
5.6.1 磁盘的组成
磁盘的寻址模式
CHS模式 LARGE模式 LBA模式 CHS寻址模式是硬盘寻址模式的基础,它将硬盘划分为磁头 (Heads)、柱面(Cylinder)、扇区(Sector)。 △磁头(Heads):一个磁头对应一张磁片的一个面 △柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面", 简单地理解,柱面就是磁道。 △扇区(Sector):将磁道划分为若干个小的区段,就是扇区。每 个扇区的容量为512字节。 知道了磁头数、柱面数、扇区数,就可以很容易地确定数据保 存在硬盘的哪个位置 LBA寻址模式是直接以扇区为单位进行寻址的,不再用磁头/ 柱面/扇区三种单位来进行寻址。但为了保持与CHS模式的兼 容,通过逻辑变换算法,可以转换为磁头/柱面/扇区三种参 数来表示,但表示的已不是硬盘中的物理位置,而是逻辑位置 了。 目前48位LBA寻址方式的理论容量极限是 144,115,188,075,855,872字节=144,000TB
磁盘寻址(CHS寻址方式、LBA寻址方式)

1、磁盘寻址1.1、磁盘驱动器磁盘物理结构图如下:磁盘逻辑组成图如下:1.2、什么是CHS(cylinder head sector)通过上面材料,我们了解到磁盘通常由多个盘片、多个磁头组成。
每个盘片对应一个磁头(head),每个盘片被化成多个同心圆(track/cylinder),每个同心圆被切断成多个段(sector)。
磁盘存储最小单位是sector,那么如何对sector进行定位?CHS是早期在IBM PC架构上面用来进行磁盘寻址的办法。
CHS是一个三元组,组成如下:1. 一共24个 bit位。
2. 其中前10位表示cylinder,中间8位表示head,后面6位表示sector。
3. 最大寻址空间随着科技大发展,磁盘容量大幅提升。
远远超过了8GB寻址范围,如何对8GB之外空间进行寻址?历史上曾经CHS从24位扩展到多28位,实现寻址128GB,但是面对现在磁盘2TB容量还是无能为力,下面我们请出最终解决方案LBA。
1.3、什么是LBA(logical block addressing)正如上文所说,LBA是用来取代CHS。
那么LBA是怎么实现磁盘寻址?1. LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址。
2. LBA采用48个bit位寻址,最大寻址空间128PB。
LBA与CHS转换规则是怎么样的?CHS->LBALBA->CHS小结:不管CHS(寻址方式)也好,还是LBA(寻址方式)也好。
磁盘存储寻址都需要通过cylinder、head、sector 这三个变量来实现;CHS、LBA都是一个数字,CHS按照固定格式把24个bit位分成cylinder、head、sector;LBA则需要通过求模运算得出cylinder、head、sector。
即由chs值可以直接获得cylinder、head、sector这三个变量的值,而由LBA值则需要通过运算间接得出cylinder、head、sector这三个变量的值。
数据恢复工具winhex使用教程

数据恢复分类:硬恢复和软恢复。
所谓硬恢复就是硬盘出现物理性损伤,比如有盘体坏道、电路板芯片烧毁、盘体异响,等故障,由此所导致的普通用户不容易取出里面数据,那么我们将它修好,同时又保留里面的数据或后来恢复里面的数据,这些都叫数据恢复,只不过这些故障有容易的和困难的之分;所谓软恢复,就是硬盘本身没有物理损伤,而是由于人为或者病毒破坏所造成的数据丢失(比如误格式化,误分区),那么这样的数据恢复就叫软恢复。
这里呢,我们主要介绍软恢复,因为硬恢复还需要购买一些工具设备(比如pc3000,电烙铁,各种芯片、电路板),而且还需要懂一点点电路基础,我们这里所讲到的所有的知识,涉及面广,层次深,既有数据结构原理,为我们手工准确恢复数据提供依据,又有各种数据恢复软件的使用方法及技巧,为我们快速恢复数据提供便利,而且所有软件均为网上下载,不需要我们投资一分钱。
数据恢复的前提:数据不能被二次破坏、覆盖!关于数码与码制:关于二进制、十六进制、八进制它们之间的转换我不想多说,因为他对我们数据恢复来说帮助不大,而且很容易把我们绕晕。
如果你感兴趣想多了解一些,可以到百度里面去搜一下,这方面资料已经很多了,就不需要我再多说了。
数据恢复我们主要用十六进制编辑器:Winhex (数据恢复首选软件)我们先了解一下数据结构:下面是一个分了三个区的整个硬盘的数据结构MBR C盘EBR D盘EBR E盘MBR,即主引导纪录,位于整个硬盘的0柱面0磁道1扇区,共占用了63个扇区,但实际只使用了1个扇区(512字节)。
在总共512字节的主引导记录中,MBR又可分为三部分:第一部分:引导代码,占用了446个字节;第二部分:分区表,占用了64字节;第三部分:55AA,结束标志,占用了两个字节。
后面我们要说的用winhex软件来恢复误分区,主要就是恢复第二部分:分区表。
引导代码的作用:就是让硬盘具备可以引导的功能。
如果引导代码丢失,分区表还在,那么这个硬盘作为从盘所有分区数据都还在,只是这个硬盘自己不能够用来启动进系统了。
用WinHex手工恢复硬盘分区表

用WinHex手工恢复硬盘分区表最近,PC机不能正常引导,将硬盘挂载到其它PC机上,显示硬盘未分区,结果如下图所示:原硬盘分为4个分区,但现在显示未分区,推测是硬盘的分区表丢失,计划用WinHex工具手工恢复硬盘分区表,通过用WinHex查看分区表,果真丢失了分区表,于是利用该工具进行了恢复,成功修复硬盘。
恢复期间,参考了网上的众多资料,这些资料虽然提供了很多帮助,但感觉理论性太强,没有充分利用工具本身的优势,因此作一总结,以为新手提供帮助。
为了更好的理解恢复方案,在文中增加了小知识点,如果对理论不感兴趣,可略过这些小知识点,直接参考恢复步骤即可。
在此也一并感谢在网上分享资料的各位大侠。
一、查看MBR(Master Boot Record)利用WINHEX打开硬盘的MBR,如下图所示:从图中可见,1、第1扇区的55AA前的64个字节全为0,表明分区表信息丢失。
2、在最上边的栏中的可以看到分区信息,包括分区名称、类型、大小、该分区的首扇区等信息,这些将帮助我们迅速地恢复硬盘分区。
小知识1:MBR(Master Boot Recorder)、DPT(Disk Partition Table)MBR位于磁盘的第一个扇区,CHS地址是0柱面,0磁头,1扇区,共占用63DPT中定义的分区包括主分区和扩展分区,主分区+扩展分区总共不能超过4个。
所谓主分区是指DPT中包含能够被系统的磁盘分区,一个硬盘主分区至少有1个,最多4个,它是可以设置为活动的,即可以引导操作系统。
一个硬盘只能有一个活动分区。
扩展分区并不能被系统直接使用,它的作用是突破DPT中只能定义四个分区限制的,可以没有,最多1个。
对于windows系统,一般分为一个主分区,一个扩展分区。
(本文介绍的方法也是针对这种情况,对硬盘分区表进行恢复)。
其做法:定义完主分区之后,将多余的容量定义为扩展分区,指定该分区的起始位置,根据起始位置指向硬盘的某一扇区,称作扩展MBR(EBR),在其中定义下一个分区表。
文件系统Ext4详解

⽂件系统Ext4详解1. 知识扫盲1.1. 磁盘介绍磁盘(disk):如上(⽹图)磁道(Track):将磁道划分为若⼲个⼩的区段,就是扇区。
柱⾯(cylinder):磁⽚中半径相同的同⼼磁道构成“柱⾯",意思是这⼀系列的磁道垂直叠在⼀起,就形成⼀个柱⾯的形状。
磁道数=柱⾯数扇区(sector):⼀个扇区512字节磁头(header):每张磁⽚的正反两⾯各有⼀个磁头,⼀个磁头对应⼀张磁⽚的⼀个⾯。
磁盘空间:512 * Track * Cylinder * header1.2. 寻址⽅式Chs寻址:有上述提到的三个参数决定,C代表Cylinder,H代表Header,S代表Sector。
举例说明:磁头数最⼤为255 (⽤ 8 个⼆进制位存储)。
从0开始编号。
柱⾯数最⼤为1023(⽤ 10 个⼆进制位存储)。
从0开始编号。
扇区数最⼤数 63(⽤ 6个⼆进制位存储)。
从1始编号。
所以CHS寻址⽅式的最⼤寻址范围为:255 * 1023 * 63 * 512 / 1048576 = 7.837 GB ( 1M =1048576 Bytes )或硬盘⼚商常⽤的单位:255 * 1023 * 63 * 512 / 1000000 = 8.414 GB ( 1M =1000000 Bytes )缺点:外圈磁盘空间利⽤率不⾜LBA寻址:LBA编址⽅式将 CHS这种三维寻址⽅式转变为⼀维的线性寻址,它把硬盘所有的物理扇区的C/H/S编号通过⼀定的规则转变为⼀线性的编号。
备注:有兴趣⾃⼰研究。
1.3. 设备分区:切蛋糕,把⼀块磁盘分成多个部分使⽤。
裸设备:⼜叫裸分区,未经过格式化,不⽤通过⽂件系统读取的特殊字符设备。
⽂件系统:⽂件的系统是操作系统⽤于明确磁盘或分区上的⽂件的⽅法和数据结构;即在磁盘上组织⽂件的⽅法。
块设备:系统中能够随机(不需要按顺序)访问固定⼤⼩数据⽚(chunks)的设备被称作块设备。
通常块设备有缓存。
SATA控制器

本文说明:最近学了南桥spec中有关SATA的部分,这里就总结了近期所学到的内容,希望能对向我这样入门阶段的新手起到借鉴作用。
文中大部分内容都出自文档,文档中没有的或者我没有读到的,都是凭借个人臆想。
这里的文档指南桥spec和ATA/ATAPI-7 Draft。
由于本人没有什么基础,又喜欢妄加推测,所以错误的地方肯定很多很多。
完全可以认为文中所有的内容都是值得怀疑的。
若发现错误之处,请您指正。
一、概念说明1.SATA控制器支持三种模式,IDE、AHCI、RAID,模式选择的寄存器是MAP ,bit[7:6]为SMS (SATA Mode Select)。
IDE模式就是将SATA设备当作普通的IDE设备使用; AHCI(Advanced Host Controller Interface)模式也就是SATA设备模式,另外支持很多新的功能,如Native Command Queuing、Auto Activate for DMA等等; RAID(Redundant Array of Independent Disk),就我所了解的,IDE与AHCI都只支持一个硬盘(只能一个端口接SATA硬盘,其余的端口只能接硬盘以外的SATA设备,如CD ROM) ,唯有RAID可支持多个硬盘2. IDE 模式下又可以细分为Legacy IDE 与Native IDE ,区分它们的寄存器是PI ,bit[3:0]。
关于Legacy IDE 、Native IDE 以及AHCI 这三种模式的区别,我猜测是这样的。
在SATA推出来之后已经是Windows Xp时代了,为了使得过去的操作系统及应用程序能够使用SATA设备,需要做一些兼容性的措施,所以就有了Legacy IDE;而新的系统就不需要这些措施,称为Native IDE;不论是Legacy IDE还是Native IDE,都需要进行串行到并行的转换以兼容过去的PATA模式。
mHDD中有两个命令:RandomBad和 MakeBad

HDD中有两个命令:RandomBad和 MakeBadRandomBad命令是随机产生BADMakeBad 命令是制造(标记)BAD用途:1)使用makebad命令可以修复一些随机产生的坏道,例如:钻石硬盘能认盘,安装系统正常,读写也正常,但是在运行过程中会伴随有抵达抵达的响声,这样的问题就可以先用写零命令去对整个硬盘的一部分进行试验,写零区可以设置为0-50000,然后用makebad命令也对这部分地址进行操作,完成后在对这部分写零,异响消失,打开scan功能对这部分lba地址进行扫描,把自动修复和Remap打开循环几次,故障消失!如果还有红色标记块,可以用pc3000的通用Defectoscope来修复几次!!2)对全盘操作的化,也最好选择makebad,但是之前一定要对全盘进行写零,否则会有偏差,randombad命令最好不用!3)对一些小硬盘,特别是西部数据的硬盘,这个命令会有很神奇的效果如果配合pc3000使用,修复率会更加高!!关于MHDD1、MHDD是俄罗斯Maysoft公司出品的专业硬盘工具软件,具有很多其他硬盘工具软件所无法比拟的强大功能,它分为免费版和收费的完整版,本文介绍的是免费版的详细用法。
2、MHDD无论以CHS还是以LBA模式,都可以访问到128G的超大容量硬盘(可访问的扇区范围从512到137438953472),即使你用的是286电脑,无需BIOS支持,也无需任何中断支持;3、MHDD最好在纯DOS环境下运行;4、MHDD可以不依赖于主板BIOS直接访问IDE口,但要注意不要使用原装Intel品牌主板;5、不要在要检测的硬盘中运行MHDD;6、MDD在运行时需要记录数据,因此不能在被写保护了的存储设备中运行(比如写保护的软盘、光盘等);MHDD命令详解EXIT(热键Alt+X):退出到DOS。
ID:硬盘检测,包括硬盘容量、磁头数、扇区数、SN序列号、Firmware固件版本号、LBA数值、支持的DMA级别、是否支持HPA、是否支持AAM、SMART开关状态、安全模式级别及开关状态……等)。
数据恢复半期考试试题答案

数据恢复半期考试题及答案一、名词解释(每题3分,共15分)1.数据恢复:就是将通过正常途径不能恢复的数据通过一定的技术手段恢复的过程;2.主轴转速:指单位时间内硬盘盘片(或轴承)转动的圈数;3.全程访问时间:这是一种计算机方面的用词,是指磁头开始移动直到最后找到所需要的数据块所用的全部时间,单位为毫秒(ms);4.潜伏期:指当磁头移动到数据所在的磁道后,然后等待所要的数据块继续转动(半圈或多些、少些)到磁头下的时间;5.连续无故障时间:指硬盘从开始运行到出现故障的最长时间,单位为小时,一般硬盘的MTBF都在30000或50000小时之间;二、填空题(每题1分,共25分)1.根据使用的材料和存储原理的不同,存储介质可分为三大类:电存储介质、光存储介质、磁存储介质。
2.U盘是电存储介质、硬盘是磁存储介质。
3.硬盘的物理结构可以分为外部结构和内部结构,外部结构是由:电路板、接口、固定面板;4.硬盘面板上的透气孔主要作用是保持硬盘内外气压平衡;5.以下为硬盘的内部结构,请填出各部分的名称:6.磁头组件是硬盘中最精密的部位之一,它由读写磁头、传动手臂、传动轴三部分组成。
7.磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道;8.所有盘面上的同一磁道构成了一个圆柱,通常称柱面;9.每一个扇区包括512字节的数据和一些其他信息,一个扇区主要有两个部分:即存储数据的地点标识符和存储数据的数据段;10.修复MBR的方法之一,是从DOS启动盘启动,然后运行fdisk/mbr命令修复。
11.英文缩写MBR的含义硬盘主引导记录,英文缩写DBR的含义操作系统引导记录,英文缩写FAT的含义文件分配表区,英文缩写DIR的含义目录区,英文缩写DATA的含义数据区;三、单项选择题(每题1分,共20分)1.下面哪一个不是基本的的备份类型(A)A.正常备份B.完全备份 C.增量备份 D.差异备份2.用户的需求如下:每星期一需要正常备份,在一周的其他天内只希望备份从上一天到目前为止发生变化的文件和文件夹,他应该选择的备份类型是(B)A.正常备份B.增量备份C.副本备份D.差异备份3.硬盘主引导记录MBR位于整个硬盘的0柱面0磁头1扇区(可看作是硬盘的第一个扇区),共(C)字节A.2048B.1024 C.512D.2684.备份在(A)功能菜单下A.附件B.管理工具 C.系统工具D.辅助工具5.收藏夹的目录名称为(B)A.temp B.FavoritesC.Windows D.MyDocuments6.系统还原功能在(C)功能菜单下A.管理工具B.系统工具C.附件D.辅助工具7.文档资料一般存放目录为C盘下的(A)目录下A.MyDocuments B.Windows C.Windows\system32 D.temp8.磁道从外向内自数字(B)开始顺序编号A.001 B.0C.1D.10249.以下选项,不是MBR的组成部分的是(C)A.主引导程序B.硬盘分区表C.BPBD.分区有效的结束标志10.磁盘每一个有效盘面都有一个盘面号,按顺序从上而下自数字(A)开始依次编号,它与磁头号是对应的;A.0 B.1C.1024D.00111.以下选项中,(B)不是DBR的组成部分A.操作系统引导程序B.MFTC.扩展BPB D.结束标志12.第一个分区的DBR区通常位于硬盘的(C),共512字节A.0柱0磁头1扇区B.0柱1磁头0扇区C.0柱1磁头1扇区D.1柱1磁头0扇区13.若有一块硬盘,划分了C、D、E三个分区,MBR区有几个,分别占用几个扇区,位置在哪儿(A)A.1个,1个,CHS=001 B.3个,1个,CHS=011C.6个,不确定,不确定D.3个,不确定,不确定14.若有一块硬盘,划分了C、D、E三个分区,DBR区有几个,分别占用几个扇区,位置在哪儿(B)A.1个,1个,CHS=001 B.3个,1个,CHS=011C.6个,不确定,不确定D.3个,不确定,不确定15.若有一块硬盘,划分了C、D、E三个分区,FAT区有几个,分别占用几个扇区,位置在哪儿(C)A.1个,1个,CHS=001 B.3个,1个,CHS=011C.6个,不确定,不确定D.3个,不确定,不确定16.若有一块硬盘,划分了C、D、E三个分区,DIR区有几个,分别占用几个扇区,位置在哪儿(D)A.1个,1个,CHS=001 B.3个,1个,CHS=011C.6个,不确定,不确定D.3个,不确定,不确定17.若有一块硬盘,划分了C、D、E三个分区,DATA区有几个,分别占用几个扇区,位置在哪儿(D)A.1个,1个,CHS=001 B.3个,1个,CHS=011C.6个,不确定,不确定D.3个,不确定,不确定18.以下关于硬盘LBA寻址模式的描述,正确的是(B)A.称为三维地址模式B.称为线性地址模式C.是硬盘最早采用的寻址模式,现在基本已被淘汰D.不能管理容量大于1T的硬盘19.拆卸磁盘时,应一边沿(B)旋转盘片,一边向外轻移磁头A.左方向 B.逆时针方向C.顺时针方向D.右方向20.以下关于开盘用工具,说法正确的是(B)A.应使用有磁性的螺丝刀,这样可吸住螺丝,防止其滑落,损坏磁盘B.应在标准的洁净间或超净台里操作,防止灰层损伤磁盘C.只要手上无污渍,无需洗手D.取下的盘片应平放在干净的桌面上四、简答题(每题8分,共40分)1、简述硬盘低级格式化、分区、高级格式化各自主要完成了哪些操作?答:硬盘低级格式化:磁盘的逻辑划分,有效磁面、磁头、磁道、柱面、扇区等的编号;分区主要创建MBR 区;高级格式化主要创建DBR、Fat、DIR、DA TA区。
100寻址方式

100寻址方式寻址方式是计算机系统中用于定位和访问存储单元的一种方式。
在计算机系统中,寻址方式可以分为直接寻址、间接寻址、寄存器寻址、立即寻址、相对寻址等多种方式。
下面将详细介绍这100种寻址方式。
1.直接寻址:直接给出存储单元的地址,将数据直接存取到或者从指定的内存地址中读取数据。
2.立即寻址:将操作数直接给出,不需要通过寄存器或者内存来获取操作数。
3.间接寻址:通过首先获取引用存储地址(指针),然后再通过这个存储地址来间接引用数据。
4.寄存器寻址:将操作数存储在寄存器中,然后进行操作。
5.相对寻址:相对于当前指令的地址,获取指定地址中的数据。
6.基址寻址:在操作数中加上一个基址寄存器的内容,求得实际的操作数地址。
7.变址寻址:在基址寻址的基础上,再加上一个变址寄存器的内容,计算最终操作数地址。
8.通过堆栈寻址:将操作数存储在堆栈中,通过堆栈指针获取操作数。
9.通过堆栈寻址(相对):通过基址寄存器和变址寄存器作为堆栈指针的相对指针,获取操作数。
10.间接寄存器寻址:通过间接寄存器的内容来访问内存中的数据,而不是直接使用地址。
11.通过PC寻址:将程序计数器(PC)作为操作数地址,获取操作数。
12.通过条件寻址:通过指定的条件判断是否需要进行操作数的寻址。
13.通过比较结果寻址:通过比较指令的结果来判断是否需要进行操作数的寻址。
14.通过条件寄存器寻址:通过条件寄存器中的值来判断是否需要进行操作数的寻址。
15.比较状态标志位寻址:通过CPU中的比较状态标志位来判断是否需要进行操作数的寻址。
16.执行跳转指令寻址:通过跳转指令的目标地址来寻址操作数。
17.通过数据缓存寻址:通过缓存中存储的数据来寻址操作数。
18.通过地址缓存寻址:通过缓存中存储的地址来寻址操作数。
19.通过控制器寻址:通过外部控制器来寻址操作数。
20.通过DMA寻址:通过直接存储器访问(DMA)来寻址操作数。
21.通过虚拟内存寻址:通过虚拟内存映射表来寻址操作数。
CHS与LBA的转换关系

CHS与LBA的转换关系C/H/S与LBA的转换关系分类:Win32/64汇编2011-10-26 10:56279人阅读评论(3)收藏举报为了与C/H/S寻址模式相兼容,大容量的硬盘一般也支持模拟的C/H/S寻址,此时的C/H/S参数都是模拟出来的,而不是实际的物理值。
而且目前大多数的资料、磁盘工具类软件采用的硬盘参数介绍和计算方法,以及数据恢复技术中一般还是使用相对比较简单的C/H/S寻址模式进行定位,因此,应掌握C/H/S与LBA的转换关系。
1.C/H/S与LBA的转换规则硬盘系统在写入数据时,是按照从柱面到柱面的方式进行的,即在上一个柱面写满数据后才移动磁头到下一个柱面,并从柱面的第一个磁头的第一个扇区开始写入,从而使硬盘性能最优。
所以,在对物理扇区进行线性编址时,也会按照这种方式进行。
这里假设一个硬盘按物理扇区划分为1024个柱面、4个磁头、每磁道63个扇区,则C/H/S与LBA的转换关系如表1-1所示。
表1-1C/H/S与LBA的转换关系C/H/S地址LBA编号柱面磁头扇区00100021003~632~6201163012~6364~125021~63126~188031~63189~251101252102~63253~314111315…………知识提示:物理扇区是指某个扇区在硬盘上的绝对位置,可以由柱面、磁头与扇区来唯一定位,即柱面、磁头、扇区与硬盘上每一个扇区有一一对应关系。
2.C/H/S到LBA的转换公式掌握了C/H/S与LBA的转换规则,就可以通过公式对两种寻址模式进行相互转换。
这里首先讲解从C/H/S到LBA的转换公式。
以C、H、S分别表示当前硬盘的柱面号、磁头号、扇区号,CS、HS、SS分别表示起始柱面号、磁头号、扇区号,PS表示每磁道扇区数,PH表示每柱面总的磁道数。
则C/H/S到LBA的转换公式为: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/63时,LBA=62;当C/H/S=0/1/1时,LBA=63;当C/H/S=185/20/50时,LBA=2 973 334。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、磁盘寻址1.1、磁盘驱动器磁盘物理结构图如下:磁盘逻辑组成图如下:1.2、什么是CHS(cylinder head sector)通过上面材料,我们了解到磁盘通常由多个盘片、多个磁头组成。
每个盘片对应一个磁头(head),每个盘片被化成多个同心圆(track/cylinder),每个同心圆被切断成多个段(sector)。
磁盘存储最小单位是sector,那么如何对sector进行定位?CHS是早期在IBM PC架构上面用来进行磁盘寻址的办法。
CHS是一个三元组,组成如下:1. 一共24个 bit位。
2. 其中前10位表示cylinder,中间8位表示head,后面6位表示sector。
3. 最大寻址空间随着科技大发展,磁盘容量大幅提升。
远远超过了8GB寻址范围,如何对8GB之外空间进行寻址?历史上曾经CHS从24位扩展到多28位,实现寻址128GB,但是面对现在磁盘2TB容量还是无能为力,下面我们请出最终解决方案LBA。
1.3、什么是LBA(logical block addressing)正如上文所说,LBA是用来取代CHS。
那么LBA是怎么实现磁盘寻址?1. LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址。
2. LBA采用48个bit位寻址,最大寻址空间128PB。
LBA与CHS转换规则是怎么样的?CHS->LBALBA->CHS小结:不管CHS(寻址方式)也好,还是LBA(寻址方式)也好。
磁盘存储寻址都需要通过cylinder、head、sector 这三个变量来实现;CHS、LBA都是一个数字,CHS按照固定格式把24个bit位分成cylinder、head、sector;LBA则需要通过求模运算得出cylinder、head、sector。
即由chs值可以直接获得cylinder、head、sector这三个变量的值,而由LBA值则需要通过运算间接得出cylinder、head、sector这三个变量的值。
补充一下:a、CHS方式寻址是在传统的扇区分布下进行的,即过盘片中心画直线来分扇区,具体如下图所示:而LBA转换为CHS寻址则使用的ZBR(Zone Bit Recording)方式分配扇区,即圆周上的扇区长短都一样。
b、磁盘在经过磁盘低级格式化程序格式化后,才出现有扇区、磁道这些对象(一个柱面是由各个盘面上的同一位置的磁道组成的,所以柱面不是磁盘低级格式化程序直接产生出来的对象,而是由磁道这个对象引申出来的一个概念)的。
(不同的)磁盘低级格式化程序采用不同的寻址方式算法时,盘面划分后的图像也不一样(如上图)。
一个磁盘,比如,原先使用的CHS寻址方式,后来可以修改为LBA寻址方式,当然这样盘面划分后的图像也变了,总之,一个磁盘可以修改它的寻址方式。
c、还有,由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式。
137GB、2.1TB硬盘容量限制和CHS、LBA寻址及GPT分区表、UEFI/EFI 引言:各种寻址方式的所能寻址的寻址空间收到限制跟各个层次上寻址方式所能使用的寄存器个数(CPU 的寄存器个数对应能支持的操作系统的位数,BIOS的各个层次的寄存器个数对应能支持的寻址空间大小)有关。
目前市场上的硬盘价格越来越低,相比以前同样价格买的硬盘容量越来越大。
但是更换硬盘时,也要注意你的PC主板是否支持目前的大容量硬盘。
计算机的发展一直受着硬盘容量限制或BIOS(软件系统,主板是其硬件载体)访问容量限制的制约。
要明白这个原因我们需要对IDE接口硬盘的工作方式做一个介绍,即使到现在我们今天的IDE硬盘驱动依旧使用早先的DOS-BIOS(磁盘操作系统-基本输入/输出系统)的分层结构上。
它的基本工作模式就是:程序调用->DOS功能调用->文件管理设备->INT 13中断管理(读/写)->BIOS磁盘服务->IDE(ATA)界面->磁盘控制器。
也就是说我们如果需要对硬盘进行操作必须通过以上的一系列步骤才能完成,那么我们以下一起来看看这一系列步骤的作用。
文件管理设备其负责文件及其在磁盘上存储位置之间的映射关系,不过需要通过磁盘读写中断INT13执行读写命令来存储、调入文件。
当新文件被保存时,文件管理器决定它在当前目录里的存储位置,在文件分配表中为这个新文件添加文件目录项,并把文件写入磁盘。
当读文件时,文件管理器在FAT中找到文件在磁盘上的位置,接着就调入文件。
IDE(ATA) 界面在介绍IDE(ATA)界面前,简单说说硬盘的结构:硬盘分为一定数量的柱面(以硬盘中心为圆心的同心圆磁迹),每个柱面都需要磁头来读写数据。
另外,硬盘上的数据都是以每扇区512字节的格式存储的,所有的数据传输都是以扇区(柱面被等分的园弧磁迹)为单位的。
IDE(ATA)界面是寄存器驱动式的并口总线。
要传输数据,BIOS 首先往IDE(ATA)里特定的寄存器写入数据的开始地址和数据传输的长度,再把有关的读/写命令往特定的寄存器里发送从而开始数据传输。
现在的硬盘一般都支持逻辑块寻址(LBA)和柱面磁头扇区寻址(CHS),我们以CHS寻址方式来举例:数据传输的开始地址是写到4个8位寄存器里的,分别是:柱面低位寄存器柱面高位寄存器扇区寄存器设备/磁头寄存器柱面地址是16位[柱面低位寄存器(8位),柱面高位寄存器(8位)],扇区地址是8位(注意:扇区寄存器里第一个扇区是1扇区,而不是0扇区),而磁头地址是4位(没有完全占用8位)。
因此,硬盘柱面的最大数是65,536(2的16次方),磁头的最大数是16(2的4次方),扇区的最大数是255(2的8次方-1,注意刚刚我们提到的扇区寄存器问题)。
所以,能寻址的最大扇区数是267,386,880 (65,536x16x255)。
一扇区又是512字节,也就是说如果以CHS 寻址方式,IDE硬盘的最大容量为136.9GB。
LBA寻址方式,上述的总共28位可用的寄存器空间(16+8+4)被看作一个完整的LBA地址,因为包括位0(CHS里扇区不能从0开始计算),其能寻址的扇区数是268,435,456 (65,536x16x256),这时IDE硬盘的最大容量为137.4GB。
INT 13管理INT 13管理其实也是按照寄存器的模式来设计的,它的高层即文件管理器层发布数据读写命令和有关的参数给CPU,然后触发INT 13中断的进行,激活BIOS的磁盘服务来执行数据传输。
数据的开始地址被写到3个8位寄存器里,分别是:柱面低位寄存器柱面高位/扇区寄存器磁头寄存器柱面地址是10位(柱面低位寄存器占用8位、柱面高位寄存器占用2位),扇区地址为6位(8位-已经被计算过的高位寄存器的2位)。
磁头寄存器为8位。
因此如果这样的话:柱面的最大数是1024(2的10次方) ,磁头的最大数是256(2的8次方),扇区的最大数是63(2的6次方-1)。
所以,通过INT 13管理能寻址的扇区数是16,515,072 (1,024x256x63)。
一扇区是512字节,也就是说如果以CHS寻址方式,IDE硬盘的最大容量为8.456GB。
LBA寻址方式能寻址的扇区数是16,777,216(1024x256x64),这时IDE硬盘的最大容量为8.601GB。
看到这里,我们应该感到硬盘容量限制的成因有了一些“眉目”了吧,那么我们具体来到底是什么让硬盘出现了所谓的限制:528MB硬盘容量限制由于早先的硬盘容量比较小,因此设计的BIOS的时候当把地址从Int 13的地址寄存器转换为IDE(ATA)的地址寄存器时,仅仅把INT 13管理中10位的柱面地址用来对应IDE(ATA)界面中的16位柱面寄存器,而把没有用到的6位(高位寄存器)地址都设定为0。
并且也仅把6位的扇区地址来对应IDE(ATA)界面的8位扇区寄存器,其中没有用到的2位设置为0。
并且INT 13管理的磁头寄存器4位(又去掉了4位)来对应IDE(ATA)。
因此,此时的磁盘柱面最大数为1024(2的10次方),磁头的最大数是16(2的4次方),扇区的最大数是63(2的6次方-1)。
因此能寻址的扇区数就成了1,032,192 (1,024x16x63)。
一个扇区的容量是512字节,也就是说如果以CHS 寻址方式,IDE硬盘的最大容量为528.4MB。
因此528MB的硬盘容量限制就出现了。
2.1GB硬盘容量限制这里分为两个部分,一部分是由磁盘服务的限制造成的,另外一个是由于磁盘格式造成的,通常我们把前者称为2.1GB的硬件容量限制,后一种称为2.1GB的软件容量限制。
硬件容量硬件:为了528MB容量限制的问题,人们提出一些不同的办法,其中一个办法就是INT 13服务的磁头寄存器没有用到的4位中的2位(确切的说是高2位)保留给柱面数的第11、12位使用。
这样,最大的磁头数就是64(2的6次方)。
但是,当时的操作系统不使用这种转换方法,其认为磁头寄存器的所有位数只可能记录磁头数。
比如,为了正确地转换柱面数为2,048、磁头数为64的硬盘,就需要操作系统把柱面数除以4(512个逻辑柱面数),磁头数乘以4(256个逻辑磁头数)。
不过由于BIOS中并没有开放所有的磁头数寄存器,当然无法记录这样的磁头数。
因此遇到这种运行机制的BIOS,在系统自检的时候就会造成系统当机。
软件容量限制:当时DOS分区的限制是由文件分配表(FAT)决定的。
FAT处理存储空间是以簇为单位的,它处理一簇的最大长度是32,768字节,最多能处理65,536个簇,如果将两个数字相乘,就会得到DOS的最大分区界限值是2,147,483,648字节或2,048MB (2,147,483,648 / 1,0242)。
因此超过这个容量的硬盘,如果使用FAT格式,就最大只能识别2.048GB的硬盘容量。
3.2GB的容量限制一些版本的BIOS不能识别超过6322柱面的硬盘,不过这种BIOS比较少见,由于柱面有限制,其最高支持扇区数为6,372,576 (6,322x16x63),如果乘以512扇区容量的话,其最高支持容量为6,372,576x512=3,262,758,912/1024=3.18GB。
4.2GB的容量限制当时一些操作系统使用8位寄存器来存储磁头数,这样当BIOS报告硬盘的磁头数等于256(最高容量)时,只有磁头数的最先一位(即0)被系统保存,从而导致硬盘配置错误。
一旦硬盘的磁头数是16,柱面数大于8,192(2的13次方,由于后三位寄存器已经被磁头寄存器借用,其实这里牵涉到一个突破528MB容量限制的转换做法的问题,由于这一段比较复杂,在这里就不详细介绍了,我们只要明白有这个限制就够了),系统就无法正常识别了,因此其最大的容量就被限制在了4.2GB=8,192x16x63x512/1024。