入门-我的无忧启动,磁盘数据结构,分区表,MBR,fbinst - USB启动区 - 无忧启动论坛 - Powered by Discuz!
入门-我的无忧启动,磁盘数据结构,分区表,MBR,fbinst 最近在无忧启动论坛泡了多个小时,深感入门之艰难。为了方便如我这样的。。。。。故总结一篇入门的帖子。也请高手们有空指出错误,让后来者少走弯路。另外,现在有计算机、网络,比原来到图书馆、书店找书方便多了。需要的是善用搜索,并静下心来。。。 可以google一下以下网页文章的(部分)标题,比如:“硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区”,能得到很多。。。 以下内容多是引用先辈高人在网上发布的文章,先在此给予崇高的敬意并衷心感谢! 注: (一)、容量计算(这里计算容量单位按计算机的1K=1024计算;厂商是按1K=1000计算的,数据用括号区别,厂商 这样计算显得容量偏大,提高忽悠你的几率);1KB=1024Byte=8192Bit=8Kb,注意Byte与bit的区别,任天堂8位游戏机ROM卡 的容量经常忽悠人的,呵呵! (二)、扇区上的字节是按左边低位,右边高位的顺序排列的。多字节(Byte)的数据是低位在前,高位在后;所以在取值时,需要把字节再反一下,让高位字节在左边,低位字节在右边。 (三)、MBR是由分区程序(如Fdisk)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的。 (四)、扇区号从1开始,所以其范围是1扇区-- 63扇区,扇区的最大数是63,1个扇区容量为512Byte。 相关软件下载在2楼底部。 请各高人不吝赐教,解答一下3楼的问题(不定期更新),谢谢! 磁盘柱面、磁头、扇区(Cylinder、Head、Sector)及容量限制 http://topic.csdn.net/u/20071223/00/843143e1-6ebb-4971-bf2d-aeb763a59b29.html 这里人多,问个技术问题,关于硬盘的访问模式问题,关于LBA的问题 硬盘的chs模式是指chs(Cylinder/Head/Sector)模式,很久以前, 硬盘的容量还非常小的时候, 人们采用与软盘类似的结构生产硬盘. 也就是硬盘盘片的每一条磁道都具有相同的扇区数. 由此产生了所谓的3D参数 (Disk Geometry). 既磁头数(Heads), 柱面数(Cylinders), 扇区数(Sectors per track),以及相应的寻址方式. 为了进一步提高硬盘容量, 人们改用等密度结构生产硬盘. 也就是说,外圈磁道的扇区比内圈磁道多. 采用这种结构后, 硬盘不再具有实际的3D参数, 寻址方式也改为线性寻址, 即以扇区为单位进行寻址. 为了与使用3D寻址的老软件兼容 (如使用BIOS Int13H接口的软件), 在硬盘控制器内部安装了一个地址翻译器, 由它负责将老式3D参数翻译成新的线性参数. 这也是为什么现在硬盘的3D参数可以有多种选择的原因 (不同的工作模式, 对应不同的3D参数,如 LBA, LARGE, NORMAL). CHS模式只能识别大硬盘的前面(8.456GB),LBA使用的线性寻址,突破了1024柱面的限制,能访问8G以外的空间了。 盘容量目前早已远远超过了当年(8.456GB)的极限,为了超越这个容量限制,人们又定义了新的扩展INT 13 。新的INT 13 不使用操作系统的寄存器传递硬盘的寻址参数,它使用存储在操作系统内存里 的地址包。地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA接口,如果不支持,操作系统就先把LBA地址转换为 CHS地址,再传递给ATA接口。通过这种方式,在ATA总线基础上CHS寻址最大容量是(136.9GB),而LBA 寻址最大容量是128GB(137.4GB)。 INT 13管理:数据的开始地址被写到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硬盘的最大容量为8GB(8.601GB)。 http://baike.baidu.com/view/1329184.html?fromTaglist 硬盘容量限制 http://www.cuan.cn/blogs/WebPostDetail.aspx?accountname=admin&PostGuid=e94d0f2cf6d54e2784c5822bc1ff0211 硬盘容量限制变化历史 磁盘数据结构、主引导扇区、主引导记录MBR、硬盘分区表DPT http://hi.baidu.com/gilbertjuly/blog/item/4db71f352101d0bbd1a2d3e1.html 硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区,电脑启动过程 文末的reference参考文件有链接,想深入了解的话非常值得一看 主引导扇区(master boot sector)的结构 它是硬盘的第一个扇区(0柱0面1扇区), 由主引导程序(masterboot record简称mbr),硬盘分区表(disk partition table简称dpt )和结束标识三部分组成。其结构如下 1、偏移0h~1bdh 主引导程序(占446个字节,但实际可能并没有到这么多的字节) 2、偏移1beh~1fdh 硬盘分区表(占64个字节,每个分区项占16个字节,最多可容纳4个分区项 3、偏移1feh~1ffh 结束标识 (占2个字节,结束标志,总为55h aah) 分区表上有四项,每一项表示一个分区,所以一个分区表最多只能表示4个分区。主 分区表上的4项用来表示主分区和扩展分区的信息。因为扩展分区最多只能有一个,所以硬盘最多可以有四个主分区或者三个主分区,一个扩展分区(扩展分区是特 殊的主分区)。另:逻辑区都是位于扩展分区里面的,并且逻辑分区的个数没有限制。 每个分区项的详细含义,假设一个分区占用的16个字节被标为00h~0fh 00h 引导标识字节,其值只能为00h或80h,为00h时表示该分区不可引导,为80h时表示该分区可用于引导 。 01h 分区起始磁头号 02h 其高2位为分区起始柱面号的高位,低6位为分区起始扇区号 03h 分区起始柱面号的低8位 04h 分区系统标志 05h 分区结束磁头号 06h 其高2位为分区结束柱面号的高位,低6位为分区结束扇区号 07h 分区结束柱面号的低位 08h~0bh 此4个字节为在线性寻址方式下的该分区的首扇区地址(从0开始计的扇区线性绝对地址,或者说是表示该分区起点之前已用了的扇区数)。当分区大于8G时,扩 展int13h是通过该信息进行寻址的,可以发现在这种方式下寻址最多可访问的空间为:ffffffffh扇区×512B/扇=2048G,也就是说用扩 展int13h最大可以访问的空间为2048G。 0ch~0fh 此4个字节为以扇区为单位的该分区大小(总扇区数)。 http://wenda.tianya.cn/wenda/thread?tid=52182293f34ef3a7 所有硬盘分区表结构是否一致 http://www.vckbase.com/document/viewdoc/?id=443 深入浅出硬盘分区表 文中:二.分区表的结构 注意4、分区表所在扇区通常在(0磁头,1扇区),而该分区的开始扇区通常位于(1磁头,1扇区),中间隔了63 个隐藏扇区。 个人认为应该是“中间隔了62 个隐藏扇区”。 http://www.45it.com/Article/pc120/dish/200706/16375.htm 硬盘维修基础:分区表结构 http://blog.chinaunix.net/u1/40527/showart_1389273.html 分区表结构分析及应用 http://wapedia.mobi/zh/%E9%82%8F%E8%BC%AF%E5%8D%80%E5%A1%8A%E4%BD%8D%E5%9D%80 逻辑区块地址 http://bbs.wuyou.net/viewthread.php?tid=150449&extra=&page=1 [解决] 引导扇区、启动扇区与mbr的区别与联系 -------本论坛的详解 分区表数据 在DiskGenius里面显示:磁头数255(编号0~254),每磁道扇区数63(编号1~63),因此我认为一般分区软件是这样处理的:磁头数、每磁道扇区数固定,柱面数因磁盘容量不同而改变。 主引导记录及保留扇区为:0柱面0磁头1~63扇区,共31.5KB容量,一般可以对该处2~63扇区进行DIM(Do it myself), 第1主分区开始于0柱面1磁头1扇区,结束于n柱面254磁头63扇区, 第2主分区(如果有3、4主分区应该类似)开始于n+1柱面0磁头1扇区,结束于m柱面254磁头63扇区, 扩展分区内的前63扇区也应该类似于主引导记录及保留扇区,第1逻辑分区、第2逻辑分区(如果有第3、4、5、6、7...逻辑分区应该类似第2逻辑分区)的开始、结束位置应该类似于1、2主分区。 用分区软件调整分区容量时,一般最小的变化单位应该是1个柱面,即255×63×512=8225280Byte,7.844238281M,共16065扇区。 当然也可以用软件精确调整到每个扇区,比如diskgen。fbinst强行格式化后的磁盘,第1主分区位于UD分区之后。 注意!硬盘如有重要数据,在备份数据前请勿随意使用硬盘分区工具! 上图硬盘的主引导扇区数据(winhex菜单-工具-打开磁盘。为什么我不能上传附件呢?明明把图片从99.8KB弄成了98.5KB?) winhex左下角的扇区数:斜线左边是扇区编号,从0开始(这个是当前扇区的LBA线性绝对地址?);右边是磁盘总扇区数,数值为最后一个扇区编号+1。 图中下部浅蓝色标注部分为第二分区的信息,共16个字节 00 00 C1 FF 07 FE FF FF 28 58 7D 02 D8 A8 71 0D 其中的08h~0bh :28 58 7D 02,为在线性寻址方式下的该分区的首扇区地址(或该分区起点之前已用了的扇区数), 16进制数据为:027D5828,换算为10进制为(可以用windows的计算器试试!winhex数据解释器也有显示!):41769000,如下图 (2010-09-03 继续) 第二分区的信息,共16个字节:00 00 C1 FF 07 FE FF FF 28 58 7D 02 D8 A8 71 0D 02h~03h 数值:C1 FF,二进制为:11000001 11111111 02h 低6位为分区起始扇区号,起始扇区为1扇区, 02h 其高2位为分区起始柱面号的高位,03h 分区起始柱面号的低8位 二进制数值为:1111111111,十进制为1023,起始柱面号为1023(柱面号超过1023的,此位置均显示为1023?)。 05h~07h 数值:FE FF FF,06h~07h 数值:FF FF,二进制为:11111111 11111111 05h 分区结束磁头号FE,即磁头号为254, 06h 低6位为分区结束扇区号,即扇区号为63 06h 其高2位为分区结束柱面号的高位,07h 分区结束柱面号的低位,结束柱面号为1023(柱面号超过1023的,此位置均显示为1023?)。 0ch~0fh 数值:D8 A8 71 0D 此4个字节为以扇区为单位的该分区大小(总扇区数),16进制数据为:0D71A8D8,算为10进制为:225552600。 如上述,第二分区起点之前已用了的扇区数为:41769000,加上第二分区大小(总扇区数)225552600,则第三分区起点之前已用了的扇区数(或在线性寻址方式下的第三分区的首扇区地址)为:267321600,大家可以核对一下上面截图的数值。 (不务正业啊!待续,更新也许要一周或更长时间。。。) [ 本帖最后由 forumuser 于 2010-9-4 14:26 编辑 ] |
forumuser 上士 UID 285055 精华 0 积分 461 帖子 16 威望 49 阅读权限 50 注册 2008-11-23 |
|
forumuser 上士 UID 285055 精华 0 积分 461 帖子 16 威望 49 阅读权限 50 注册 2008-11-23 |
|
沒有留言:
發佈留言