win7的启动原理
启动流程:BIOS–>MBR–>DPT–>PBR–> Bootmgr–>BCD–>Winload.exe–>内核加载 –>整个windows7系统
电脑加电后,首先是启动BIOS程序,BIOS自检完毕后,找到硬盘上的主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区,然后读取活动主分区的PBR(分区引导记录),PBR再搜寻分区内的启动管理器文件 BOOTMGR(相当于xp下的NTLDR),在BOOTMGR被找到后,控制权就交给了BOOTMGR,BOOTMGR读取/boot/bcd文件(BCD=Boot Configuration Data ,也就是“启动配置数据”,相当于xp下的boot.ini文件),如果存在着多个操作系统并且选择操作系 统的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。在我们选择启动WINDOWS7后,BOOTMGR就会去启动盘寻找 WINDOWS/system32/winload.exe,然后通过winload.exe加载windows7内核,从而启动整个windows7系统。
win7和xp等引导原理区别
NT5.X | NT6.X | |
对应版本 | WindowsNT/2000/XP/2003 | WindowsVISTA/2008/7/8 |
启动文件 | \NTLDR \Ntdetect.com | \bootmgr \Windows\System32\Winload.exe |
启动配置数据 | \boot.ini \bootfont.bin | \boot\bcd |
配置编辑工具 | 记事本 | bootice\bcdedit.exe |
以上知识来自:http://yuedu.biz/principle-and-bootice-boot-win7-boot-tools-recommended/
操作过程中发现的东西:
在你安装了win7之后,系统所在的分区确实有个bootmgr 这个的文件,即使你设置了隐藏文件也可见,它也不会出现,借助其他工具(我是使用disk genius)是可以看到的。Windows\System32\Winload.exe 这个文件是一直存在的,随时都可以看的到。
替换过程:
1、使用bootice工具将grub4dos写进硬盘的MBR里;
2、在google code下载grub4dos文件包,将里边的grldr文件复制到任意一个分区的根目录下即可,grub4dos会遍历所有硬盘的分区去找它。注意:所放grldr文件的这个分区必须是FAT36 或FAT12,反正不能是ntfs格式的,否则grub4dos就找不见grldr文件。至于为什么,这里grub4dos的开发者有提过,传送门。说是“This is due to the limitation of NTFS boot code. ”,反正我不知道有啥限制。
我在使用window的磁盘管理工具分区的时候,如果分区容量分的大了,只让你格式化成ntfs格式,所有要想分成FAT格式的就分区容量分的小点。
0.4.6a版本的grub4dos是不用你创建menu.lst,它会自动监测电脑上所安装的系统自己生成 menu.lst,真方便。以前的版本估计的自己配置menu.lst。
3、重启电脑,在菜单中选择grub4dos监测到的win7菜单启动即可。