BT3 NTFS硬盘完美启动 - 让Windows 7支持BackTrack3

【BT3 NTFS硬盘完美启动 - 让Windows 7支持BackTrack3】Windows7 RTM 已经发布了,很多人都已经用上还没正式上市的 Windows7,但是 Windows7 类似 Vista 的引导机制导致不能像 XP 时代那样采用 GRLDR 直接启动 BT3 并和 XP 共存了,至少我到现在还没看到有解决办法 。
Window 7 的核心版本号是 NT6.1 ,和 Vista NT6.0 还是属于一个系列的,因此采用了一样的启动管理机制 。对于双系统来说,正如 98 和 XP 共存的双系统一样, XP 和 Win7 共存的算系统安装也是要有先后顺序的 。因为 Windows 的启动管理属于向下兼容, Win7 的可以兼容 XP ,而 XP 不可以兼容 Win7. 所以要先装 XP 再装 Win7 才不会出问题 。
先解释一下一些 Windows 7 中跟引导有关系的文件和关键位置
* Mbr&dpt : 硬盘主引导记录和分区表(分区表中包括四部分用来记载四个主分区的物理位置),位于硬盘的第一个扇区,不属于任何系统分区 。
* Bootmgr : Windows NT6 系列的引导管理器,位于主激活分区内,属于系统隐藏文件
* Boot.bak : boot.ini 的备份,双系统的时候会存在 。
* Bootsect.bak: bootsect.bak 是该活动分区的前 16 个扇区的备份文件,所以它的大小是 8KB, 就是 pbr 的备份 。
* PBR : 分区引导代码
* /boot/[ 语言 ]/bootmgr.exe.mui: 在主分区 boot 目录下包括 24 个语言的 BOOTMGR.EXE.MUI ,用来和 bootmgr 组合形成启动菜单
* /boot/bcd: 相当于 xp 时代的 boot.ini ,不过 bcd 是基于数据库的,不是基于文本的,也是为了安全性考虑吧 。微软专门提供了一个修改 bcd 的程序 bcdeit 来修改相应的参数
* /boot/bcd.log&bcd.log1&bcd.log2 : log 文件,具体干嘛的未知 。
* /boot/bootstat.dat : 引导时候用来记录引导状态的数据文件
* /boot/ memtest.exe :内存测试工具
下面来解释一下 Window 7 的启动原理 。(正常流程 , 因为还有很多非正常的情况启动过程有些区别,就不再这里赘述了)
首先加电之后是 bios 程序启动, bios 自检完成之后,将 mbr 的代码读入内存,管理权交给 mbr , mbr 再读取 dpt ,从 dpt 找出硬盘的所有分区哪一个是激活的主分区 。到这里为止,所以系统都是一样的 。下面就有区别了 。Dpt 读完找到主分区之后然后找到这个主分区的 pbr , pbr 位于激活主分区的第一个扇区 。安装不同操作系统的时候 pbr 是会被改变的, XP 的 pbr 写死的代码是去找 ntldr。而 Vista 和 Win7 的 pbr 里写进的就是去找 bootmgr。
这个时候显示器上还没有显示引导管理器的界面 。Bootmgr 被找到之后管理权就交到了 bootmgr。Boot Manager 首先从 BCD 中读取 Boot Manager 菜单的语言版本信息,然后再调用 BOOTMGR 与相应语言的 BOOTMGR.EXE.MUI 组成相应语言的启动菜单,之后才会在显示器上显示引导管理器,也就是选择多操作系统的那个文字界面 。最后,当你选择了相应的操作系统,这里当然是 7 (如果选择 xp, 会转入 xp 的启动流程,找到 xp 的 ntldr 然后启动), bootmgr 就去寻找系统分区(系统分区和主分区的概念不是一样的哦) Windows/system32 下的 winload.exe 加载操作系统内核 。剩下的事就是启动 Windows7 了 。
虽然不能利用 GRLDR 直接启动 BT3 ,但是还是可以利用 mbr 来引导的,也就是把 mbr 文件和 boot.ini 文件放到 C 盘,再读取 menu.lst 去启动 bt3 ,但是此方法不支持中文菜单 。不过基本上没影响 。
请下载以下附件,请注意目录里面的 boot.ini 文件,此文件是带隐藏属性的 。
安装方法:解压缩附件
boot.ini:引导文件
bt3.xpm:背景图片
FONTS:字体文件
GRLDR:跨平台引导文件
grldr.mbr:写入硬盘 mbr 或者 NT 引导系统中 boot.ini 来调用

推荐阅读