windows操作系统的DBR引导代码

windows操作系统的DBR引导代码——硬盘最底层之总结

最近从网上找了一个windows 7操作系统 完全硬盘 安装的教程 ,其中有一步是在CMD中输入一段命令,大概是改写引导分区 的DBR。大家知道,windows 7和vista的系统主引导文件 是 bootmgr,XP和windows 2003的主引导文件是NTLDR,系统分区引导代码的作用就是负责找到这些最基本的引导文件,所以windows 7与XP系统分区DBR中的引导代码是完全不一样的。当前我的C盘是FAT32文件系统,装的是XP。运行完那段改写分区DBR的命令并向C盘中拷入 bootmgr和boot 以及source这三个windows 7系统引导文件后,倒是可以出现教程中所说的windows7的安装界面并进行安装,但我的XP系统的启动菜单却不见了,一开面就直接引导进入win 7了。我只是想试一下教程中的方法,并没有真的想安装,我的XP中还有好多应用软件 呢。于是进PE删除 bootmgr,boot文件夹,还有source文夹,重启后并没有出现熟悉的windows xp滚动条,屏幕左上角光标闪烁。重进PE,用winhex 打 开系统所在的硬盘,检查MBR,正常,定位C盘DBR所在的63扇区,发现NTLDR is missing变成了bootmgr is missing,问题就出在这里,直接找到一个正常XP系统分区的引导代码复制过来,save重启后还是黑色的屏幕左上角光标闪烁。当时由于手头没有XP 的安装光盘,无法进入系统修复控制台运行fixboot命令修复引导,而又急着用电脑 ,所以就直接重做了系统。过后认真研究了一下,发现在XP系统分区dbr之后的第12个扇区中有一段重要的引导代码 , 内容如 下:660FB64610668B4E2466F7E16603461C660FB7560E6603C2668946FC66C746F4FFFFFFFF668B462C6683F8020F82A6FC663DF8FFFF0F0F839CFC66506683E802660FB65E0D8BF366F7E3660346FCBB00828BFBB90100E887FC382D741EB10B56BE707DF3A65E741B03F983C7153BFB72E84E75DA6658E8650072BF83C404E955FC002083C4048B75098B7D0F8BC666C1E0108BC76683F8020F823AFC663DF8FFFF0F0F8330FC66506683E802660FB64E0D66F7E1660346FCBB0000068E068180E81DFC076658C1EB04011E8180E80E000F83020072D08A5640EA0000002066C1E002E8110026668B016625FFFFFF0F663DF8FFFF0FC3BF007E660FB74E0B6633D266F7F1663B46F4743A668946F46603461C660FB74E0E6603C1660FB75E2883E30F74163A5E100F83ABFB52668BC8668B462466F7E36603C15A528BDFB90100E89DFB5A8BDAC300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055AA
    这段代码共512字节,也就是整个一个扇区,它与DBR中的引导代码共同构成了寻找NTLDR的过程。这段代码必不可少,否则系统无法引导。经过测试发现,这段代码是在系统安装过程中才会产生的,对于直接格式化 后的分区,是没有这段代码的。顺便把DBR中的引导代码也贴在这了:
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000464154333220202033C98ED1BCF47B8EC18ED9BD007C884E028A5640B408CD137305B9FFFF8AF1660FB6C640660FB6D180E23FF7E286CDC0ED0641660FB7C966F7E1668946F8837E16007538837E2A007732668B461C6683C00CBB0080B90100E82B00E94803A0FA7DB47D8BF0AC84C074173CFF7409B40EBB0700CD10EBEEA0FB7DEBE5A0F97DEBE098CD16CD196660663B46F80F824A00666A0066500653666810000100807E02000F852000B441BBAA558A5640CD130F821C0081FB55AA0F851400F6C1010F840D00FE4602B4428A56408BF4CD13B0F96658665866586658EB2A6633D2660FB74E1866F7F1FEC28ACA668BD066C1EA10F7761A86D68A56408AE8C0E4060ACCB80102CD1366610F8254FF81C300026640490F8571FFC34E544C4452202020202020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0A4E544C4452206973206D697373696E67FF0D0A4469736B206572726F72FF0D0A507265737320616E79206B657920746F20726573746172740D0A0000000000000000000000000000000000ACBFCC000055AA
这段引导代码是从4641开始的。fixboot应该也就是修复这两个扇区中的这些引导代码了吧。而且这两段代码对下fat32分区下的XP或是2003是通用,所以大家如果碰到类似的系统不引导问题,可以直接用正常系统中对应扇区中的引导代码加以覆盖。
   以上只是针对FAT32下的XP或2003,对于NTFS 分区,系统分区中的引导代码是格式 化 后产生的,系统安装过程并不改变这些代码。这些引导代码也是通用的,共占用8个扇区,也就是从DBR开始的7个扇区。注:DBR的前84个字节的内容并非 引导代码,这部分不可以乱改的,不然你的分区会挂掉的。也就是说覆盖这些代码时直接从0X54处开始就可以了。(相应的扇区内容附件中提供下载
   windows 7和vista必须安装在NTFS分区中,由于其引导文件变成了bootmgr,所以其系统分区的EBR及其之后的引导代码也就相应的变成了一段寻找bootmgr的程序 。win7 DBR及其引导代码共点用9个扇区,这段引导代码同样是通用的。(附件中提供相应扇区内容的下载)。
   在此提供一种全新的windows 7或vista安装方法 。将附件中“win 7引导代码”中的内容覆盖到一个NTFS文件系统主分区的DBR及其之后的扇区中,再次提醒一下,一定要从0X54处开始覆盖,附件中0X54之前全是用零填充的。 保存后,将win 7镜像中的bootmgr ,boot文件夹拷入分区中,然后再在分区中新建一个source文件夹,把镜像里source文件夹中的boot.wim拷入刚才所建的souce文件夹中,把分区设为活动。重启,是不是win7的安装界面出现了?进入命令提示 符,cd到镜像中的source文件夹里面,运行setup,就可以安装win7。当然得提前把win 7镜像解压了某个分区的要目录下。如果要将系统安装到先前所用的引导分区中,还要记得在命令提示符中del掉一开始拷进去的引导文件!

      注:附件中的文件须用winhex打开!

      以上完全为本人从网上查资料 并反复测试所得出的结果,如有疑问望提出共同讨论!

引自: http://blog.sina.com.cn/s/blog_628bd6570100kjen.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值