硬盘访问模式
- 格式:doc
- 大小:104.50 KB
- 文档页数:9
mac目标磁盘模式Mac 目标磁盘模式(Mac Target Disk Mode)是一种使 Mac 电脑在开机时作为外部硬盘驱动器使用的模式。
目标磁盘模式可以使用户在两台 Mac 电脑之间快速、方便地传输文件,进行数据恢复或进行其他维护操作。
本文将详细介绍 Mac 目标磁盘模式及其使用方法。
首先,要使用Mac 目标磁盘模式,您需要两台支持FireWire、Thunderbolt 或 USB-C 连接的 Mac 电脑及其相应的连接线。
确保两台电脑关闭。
然后,将两台电脑连接起来,即可开始使用目标磁盘模式。
启动目标磁盘模式的方法取决于您正在使用的Mac 电脑型号。
对于大多数 MacBook 型号,您只需按住 T 键,并在开机时保持按住不放。
在 MacBook 上,您需要按住 T 键并同时按下电源键,以开启目标磁盘模式。
一些较老的 Mac 电脑可能需要使用启动器制定的特定启动组合键。
一旦成功进入目标磁盘模式,您可以在显示文件和文件夹视图的 Mac 桌面上看到一个硬盘驱动器图标,该图标代表了目标磁盘模式所连接的电脑。
此时,目标磁盘模式的 Mac 电脑相当于一个外部硬盘驱动器,可以通过另一台 Mac 电脑来访问和操作其中的文件和文件夹。
使用 Mac 目标磁盘模式,您可以以与使用本地硬盘驱动器相同的方式访问目标磁盘模式的文件和文件夹。
您可以打开、复制、粘贴、删除和重命名文件,以及移动文件夹和文件。
您还可以通过拖放方式将文件从一台 Mac 电脑拖到另一台 Mac 电脑上。
目标磁盘模式还可用于备份数据。
通过将目标磁盘模式的Mac 电脑连接到另一台 Mac 电脑上,您可以轻松将文件备份到另一台设备上,以防意外数据丢失或系统崩溃。
此外,目标磁盘模式还可以用于数据恢复。
如果您的 Mac 电脑无法正常启动,您可以将其连接到另一台可以正常启动的Mac 电脑上,然后使用目标磁盘模式访问和恢复其中的文件。
使用完目标磁盘模式后,您可以通过重新启动或关闭目标磁盘模式的 Mac 电脑来退出该模式。
目标磁盘模式什么意思
目标磁盘模式是一种常见的磁盘存储模式,常见于服务器和存储系统中,旨在提高存储效率和数据安全性。
它结合了不同类型的磁盘驱动器,如机械硬盘(HDD)、固态硬盘(SSD)和高速硬盘阵列(RAID),利用它们的优势来满足不同应用场景的需求。
在目标磁盘模式下,各个磁盘驱动器被组织成一个逻辑卷(Logical Volume)或存储池(Storage Pool)。
这些逻辑卷或存储池可以跨越多个物理磁盘,形成一个大容量的集合。
通过统一管理这些磁盘驱动器,目标磁盘模式可以提供了灵活的数据存储和访问方式。
目标磁盘模式的一个关键特点是数据的冗余备份,其中冗余数据存储在其他磁盘驱动器上,以提高数据的可靠性和恢复性。
这就意味着即使一块磁盘驱动器出现故障,存储系统仍然可以通过备份数据进行恢复,避免了数据丢失的风险。
除了提供数据冗余备份之外,目标磁盘模式还能通过多个磁盘驱动器之间的并行读写操作,来提高数据的访问速度和处理能力。
这在数据密集型应用程序和高并发场景中非常有用,例如大规模数据库、虚拟化环境和云计算平台。
另外,目标磁盘模式还支持数据存储和检索的各种功能,如数据压缩、数据快照和数据迁移。
数据压缩可以减少存储空间的占用,提高存储效率;数据快照能够在不中断正常操作的情况下拍摄数据备份,保证数据可恢复性;数据迁移可以将数据从
一种磁盘驱动器类型迁移到另一种类型,以灵活适应不同的应用需求。
综上所述,目标磁盘模式是一种高性能、高可靠性的磁盘存储模式,能够提供灵活的数据存储和访问方式,满足不同应用场景的需求。
它的广泛应用于服务器和存储系统中,为数据中心和企业提供了可靠的数据存储基础设施。
hd tune pro用法-回复HD Tune Pro是一款功能强大的硬盘健康检测软件,它可以帮助用户监测、诊断和评估硬盘的性能和健康状态。
无论是普通用户还是技术人员,在使用HD Tune Pro时都能从中受益良多。
本文将以HD Tune Pro的用法为主题,逐步回答相关问题,帮助读者更好地了解和使用这款软件。
首先,我们需要从官方网站( Tune Pro软件。
下载完成后,双击安装程序并按照提示完成安装过程。
安装完成后,打开软件,我们将会看到软件的主界面。
主界面的顶部是一个菜单栏,包括“Options”、“Benchmark”、“Health”、“Error Scan”、“Info”、“File Benchmark”以及“Extra”等选项。
接下来,我们将逐个介绍这些功能。
首先是“Options”选项。
点击“Options”菜单,在下拉菜单中选择“Settings”。
在“General”选项卡下,我们可以设置软件的语言、界面样式等。
在“Access”选项卡下,我们可以设置访问硬盘的方式,如选择DMA模式或PIO模式等。
接下来是“Benchmark”功能。
点击“Benchmark”菜单,在下拉菜单中选择“Benchmark”。
在打开的新窗口中,我们可以选择硬盘进行性能测试。
点击“Start”按钮,软件将开始对选定的硬盘进行性能测试,包括读写速度、CPU利用率、访问时间等。
测试完成后,我们可以通过结果和图表来了解硬盘的性能表现。
然后是“Health”功能。
点击“Health”菜单,在下拉菜单中选择“Health”。
在打开的新窗口中,我们可以看到硬盘的健康状态信息。
软件会自动检测硬盘的各项参数,包括温度、S.M.A.R.T.状态、剩余寿命等。
我们可以根据这些信息来判断硬盘的健康情况,及时采取措施,防止数据丢失。
接下来是“Error Scan”功能。
点击“Error Scan”菜单,在下拉菜单中选择“Error Scan”。
硬盘三种模式的含义
硬盘三种模式的含义。
NORMAL(普通模式),是最早的IDE方式。
以此方式访问BIOS和IDE控制器对参数不做任何转换。
该模式支持的最大柱面数为1024,最大磁头数为16,最大扇区为63,每个扇区字节数为512。
因此这种模式所支持的硬盘最大容量为528MB(1024*16*63*512),既使硬盘实际的物理空间要比这个大,但能够访问的空间也只有528M。
LBA(逻辑寻址方式),这种模式将硬盘访问空间增加至8.4GB,在LBA模式下设置的柱面、磁头、扇区等参数并不是实际硬盘的物理参数,在访问硬盘时,由IDE控制器把硬盘的柱面、磁头、扇区等逻辑地址转换成实际的物理地址。
LBA与NORMAL设置的区别就在于可设置的最大磁头数为255(1024*255*63*512)。
LARGE(大硬盘模式),当硬盘的柱面超过1024而又不为LBA所支持时,采用此模式。
这种模式是把柱面数除以2,磁头数乘以2,其总容量不改变。
你做系统不用改这些,就改串口和并口就行。
通过以上内容,相信大家对于这三种硬盘模式已经有所了解了,大家只要设置好硬盘模式,那么问题就会迎刃而解。
1。
硬盘运行与“AHCI 模式”还是“IDE 模式”如今SA TA硬盘越来越流行,最新购买或者组装的电脑,基本都安装新一代的SA TA硬盘,由于绝大多数BIOS初始设置是“IDE模式”,安装的windows XP 和vista系统,并没有运行发挥最大性能的“AHCI模式”。
到底自己的系统是否运行与“AHCI模式”?该如何开启“AHCI模式”?弄清楚“是否运行于AHCI模式”很简单:其一,主板BIOS设置是“AHCI模式”,而不是“IDE 模式”(即兼容模式);其二,在“设备管理器”的“IDE ATA/A TAPI 控制器”中,存在运行正常的“SATA”控制器驱动程序,而不是仅有“A TA”或“IDE”。
以上两个要点,必须同时具备缺一不可。
在Windows XP或Windows Vista系统开启“AHCI模式”,成功方法有三五种之多但难易程度不同。
以我过去几年的实践经验,选择其中最为简单的一种方法(实践平台:1。
电脑主板为Intel芯片组;2。
Windows XP专业版;3。
Windows Vista 旗舰版),与各位网友共同交流:第一步,如果是Windows XP系统,下载sata.rar后解压,鼠标右键/安装“ahciraid”。
如果是Windows Vista系统,在“运行”中键入regedit命令,找到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci,鼠标右键/“名称”列中的“Start”/选择“修改”,在“数值数据”框中,键入“0”,“确定”并退出注册表编辑器。
特别提示:如若这一步操作失误,那么进行“第二步”后就就会出现蓝屏并自动重启不能进入系统。
第二步,重启计算机,进入BIOS,找到有关设置选项,将“IDE模式”改为“AHCI模式”(注:由于大家的主板BIOS版本各异,“模式选项”所在位置和具体表述不同,因此难以在此说得一清二楚,建议查阅主板制造商官方网站有关说明或参考附后的BIOS相关文章),按“F10”保存退出。
将硬盘从PIO模式改成DMA模式不必每次⼿动设定1. 右键“我的电脑”选择“属性”,再选择“硬件”选项卡下的“设备管理器”:2. 展开“IDE ATA/ATAPI 控制器”节点;3. 双击您的“主要IDE控制器”;4. 点击“⾼级设置”,改为DMA即可下⾯为⼤家详细解析下硬盘的DMA模式和PIO模式。
DMA的英⽂拼写是“Direct Memory Access”(存储器直接访问)。
这是指⼀种⾼速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU⼲预。
整个数据传输操作在⼀个称为"DMA控制器"的控制下进⾏的。
CPU除了在数据传输开始和结束时做⼀点处理外,在传输过程中CPU可以进⾏其他的⼯作。
这样,在⼤部分时间⾥,CPU和输⼊输出都处于并⾏操作。
因此,使整个计算机系统的效率⼤⼤提⾼。
(Ultra-DMA/33),1996年由Intdl和Quantum制定的⼀种数据传输⽅式,该⽅式I/O系统的突发数据传输速度可达33MB/s,还可以降低I/O系统对CPU资源的占⽤率。
现在⼜出现了UDMA/66,速度多出两倍。
PIO的英⽂拼写是“Programming Input/Output Model”,PIO模式是⼀种通过CPU执⾏I/O端⼝指令来进⾏数据的读写的数据交换模式。
是最早先的硬盘数据传输模式,数据传输速率低下,CPU占有率也很⾼,⼤量传输数据时会因为占⽤过多的CPU资源⽽导致系统停顿,⽆法进⾏其它的操作。
PIO数据传输模式⼜分为PIO mode 0、PIO mode 1、PIO mode 2、PIO mode 3、PIO mode 4⼏种模式,数据传输速率从3.3MB/s到16.6MB/s不等。
受限于传输速率低下和极⾼的CPU占有率,这种数据传输模式很快就被淘汰。
如何使⽤磁盘的DMA模式呢?使⽤hdparm⼯具可以查看:⽐如我们查看磁盘缓存时,会出现如下错误:[cnangel@cadev03 ~]$sudo hdparm -i /dev/sda/dev/sda:HDIO_GET_IDENTITY failed: Invalid argument禁⽌使⽤DMA模式:[cnangel@cadev03 ~]$sudo hdparm -d0 /dev/sda/dev/sda:setting using_dma to 0 (off)HDIO_SET_DMA failed: Invalid argument因为系统安装完毕后,硬盘的 DMA 模式默认是没有打开的,⼀般⽅法是在 /etc/rc.d/rc.local 最后⾯加上⼀⾏:/sbin/hdparm -d1 -c3 -m16 /dev/sda这样每次开机后,硬盘的 DMA 就会开启,不必每次⼿动设定。
移动硬盘拒绝访问的处理办法移动硬盘无法打开提示需要格式化属性中查看容量为0 格式RAW的解决方法产生RAW格式的原因:可能是c盘原先格式为FAT32,后重装XP系统时被改为NTFS,结果原先是NTFS格式的G盘成为RAW格式,无法识别,而原本是FAT32的D、E、F盘正常。
解决方法:(请逐一尝试,不行的才进入下一种解决方法)第一种:进“控制面板”找到“管理工具”,将其打开,在将“本地安全策略”打开,在将“安全选项”打开,在右面窗口找到“网络访问:本地帐户的共享和安全模式”后的“仅来宾”改为“经典”,退出回到我的电脑,在D盘上点右键找“安全”标签,将其乱码删掉,然后添加本计算机的用户即可。
(我在使用的时候发现自己本来就已经是“经典”了)第二种:在RAW格式盘符上点右键,选属性,再选安全,将无用的用户删除,添加自己的用户名,再改一下权限即可。
若无安全选项,可以在文件夹选项(打开我的电脑,选工具菜单,再选文件夹选项) 中,去掉“使用简单文件共享”前的勾,即可在NTFS格式的盘中点右键,属性菜单中显示安全选项。
(我按照步骤做了以后仍然看不到安全选项,只好进入下一阶段。
)第三种:安装“易我分区表医生V3.0”,进入安全模式,运行“易我分区表医生V3.0”,注册该软件,关闭软件重新打开。
在“创建紧急启动盘”的对话框中点“取消”,右击坏掉了的磁盘,在弹出对话框中点“修复引导”,在“修复引导”框中点“自动”,几秒钟后就成功了。
易我分区表医生V3.0 下载地址:http://61.163.92.167:82/down/ptd.rar注册码:用户名:www.xpi386. com注册码:00038600-C138FF18-4D399FBC-DA92A748-5DA05CC9第四种:使用软件EasyRecovery Pro恢复(因为我用第三种方法已经成功了,所以这种我没试过,现在只能给出参考步骤,详细过程还是靠大家自己摸索。
外网访问的几种方法:1.公网静态IP接入如果您可以联系电信或者网通运营商提供静态的公网IP那么只需要将相关的网络IP,掩码,网关参数填写进设备DVR/DVS然后重新启动设备,就可以通过客户端软件或者IE输入IP来实现对于设备的远程访问了.2.pppoe 接入DVS支持PPPOE自动拨号的功能可以连接Modem进行ADSL拨号获取公网IP地址进行访问,方法是:一:将设备ip 、掩码、网关均设置为0.0.0.0二:开启PPPOE 输入ADSL拨号的用户名密码然后重起机器。
三:设备重起后等待一段时间那么会在IP地址处显示拨号获得的IP地址,然后通过拨号的公网IP地址进行访问。
但是通过这种方式获得的ip 地址是动态的,那么会给用户访问时造成困扰,IP总是会改变。
一种解决的方法是,在一台具有公网静态IP地址的电脑上运行我们公司提供的IPSERVER软件,将电脑IP地址填写进设备的DNS地址处,这时就可以在IPSERVER软件中发现这台DVR的IP地址,产品序列号等,通过客户端软件进行访问,注册时将注册模式选择为“私有域名解析”通过这种域名解析的方式,来访问设备;然而用户使用比较多的方式还是第三种方式,请看3。
3.路由器方式接入。
DVS/DVR连接路由器,设置DVS ip地址、掩码、网关(设置为路由器内网IP )与硬盘录像机在一个网段,路由器通过拨号或者别的方式获得公网IP在路由器中做端口映射,路由器如果是动态IP可以通过路由器的DDNS功能来绑定域名,通过客户端软件或者IE直接输入域名的方式来访问。
以上方式均为设备接入外网的方式,至于访问方式可以通过两种方式来进行访问:一:通过IE 输入设备的IP地址或者域名(不管是局域网还是内网),只要知道设备IP地址或域名,并且通过ping命令来查看网络连接正常,那么都可以在IE 地址处输入设备IP地址域名访问,只是第一次通过IE访问时需要从DVR/DVR下载一个控件,请减低您IE的安全级别,控件顺利安装后,就可以进入登陆界面输入DVR/DRS用户名密码(出厂为admin 12345)访问了。
BIOS里设置硬盘的兼容模式端口设置成 auto 就可以了。
一般主板默认都是这样。
找不到硬盘,大部分和接线有关,查下数据线和电源线接好没。
计算机启动时 F2 进入 BIOS 设置,Advanced->IDE Configuration->SATA Operation Mode->Compatible(即设置为兼容模式)希望你的电脑设置的方法与我的一样,呵呵,给楼主一个参考。
$进入BIOS,选择Integrated Peripherals > On-Chip SATA Mode > 设置为Combined你需要的是一个STAS驱动,换成兼容模式也于是无补!多换几张XP的盘吧,有的盘里带这个驱动的!在主板上有硬盘跳线,你把跳线换一下应该就可以了。
最好是找一下你的主板说明书里面有跳线的说明[bios 设置]BIOS正确设置不是BIOS的问题!一.联想慧盾软硬件需求l 带有安全芯片的主板l Intel Pentium III 667MHz以上的CPUl 128M以上内存l 100M以上可用硬盘空间l Windows XP Professional简体中文版操作系统l 联想慧盾安装光盘二.联想慧盾的安装1.启用安全芯片启动计算机,按Del键进入BIOS Setup Utility界面,选择Advanced Chipset Features进入下一界面,在进入的界面中选择左下方的“TPM Physical Presence”,并设置选项为Enable,保存设置退出,重新启动计算机。
2.安装安全芯片驱动程序启动计算机,进入Windows XP操作系统,在光驱中插入“联想慧盾”安装光盘,单击“安装安全芯片驱动程序”进行安装,按默认提示操作,直至安全芯片驱动程序安装完成。
注意:安装结束后请务必重新启动计算机如果重复安装芯片的驱动程序将导致慧盾运行时报错。
安装前请检查在设备管理器的系统设备中Lenovo Trusted Platform Module硬件是否存在,不存在时再安装。
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 弹出介质功能调用内部使用的.。