br(引导记录):mbr(主引导记录,写在某硬盘的开头)、pbr(分区引导记录,写在某分区的开头),记录着某个引导程序在硬盘上的完整路径,包括文件名。
一、一般一个引导程序附加一个指导信息文件,如boot.ini(ntldr引导程序)、menu.lst(grldr引导程序)。此指导信息文件所记录的参数指导引导程序的工作。
二、引导程序可以直接启动某个分区的操作系统,或将引导权交给另一个分区的pbr。这由指导信息文件里的参数控制,若参数包含了操作系统的引导内核文件,则直接启动对应的操作系统;若参数只是指向某个分区,则表明将引导权交给对应分区的pbr,由此pbr所记录的引导程序来进行操作系统的引导工作。当然pbr记录的引导程序对应的参数若又指向另一个分区,则又将引导权交给另一个pbr。
三、若mbr中有引导程序的记录,则使用此引导程序进行引导。若mbr中没有任何引导程序的记录,则系统自动寻找硬盘中唯一一个Active分区,从此Active分区中读取引导程序的记录。
四、windows安装好之后自动将ntldr引导程序的路径写入pbr;linux在安装界面中一般有提供将grldr引导程序的路径写入mbr还是某个分区的pbr的选项。
五、将ntldr引导程序的记录写入pbr:windows在故障控制台下使用fixboot程序;将grldr引导程序的记录写入mbr或pbr:运行grub程序后使用setup(hd0)将记录写入mbr,使用setup(hd0,0)将记录写入第一个磁盘分区的pbr。
实际例子:若在hda0上装有windows,在hda2上装有suse linux。
一、清除mbr中的引导记录:使用windows 2003 server启动盘进入故障修复台,运行fixmbr程序;或使用DOS启动盘启动进入DOS,运行fdisk /mbr。再使用pqmagic将hda0或hda1置为active,以保证对应的pbr起引导作用。
二、在hda0(即windows)的pbr中写入ntldr引导程序:使用windows 2003 server启动盘进入故障修复台,运行fixboot c:(要保证C:下有ntldr程序与boot.ini文件)。
三、在hda2(即suse linux)的pbr中写入grldr引导程序:使用带grub.exe(grub for dos)程序的DOS启动盘启动系统,运行gurb.exe进行grub提示符,使用命令root(hd0,2)指定linux中的grldr所在的磁盘分区,再使用setup(hd0,2)将grldr引导信息写入hda2的pbr。
四、使用带grub.exe(grub for dos)程序的DOS启动盘引向hda0中的ntldr(ntldr配合boot.ini能引导windows):使用此启动盘启动系统,运行grub.exe,进入grub提示符后,使用命令root(hd0,0),再使用命令chainloader +1(两句可以合成一句:chainloader (hd0,0) +1)。
五、使用带grub.exe(grub for dos)程序的DOS启动盘直接启动hda2中的linux:使用此启动盘启动系统,运行grub.exe,进入grub提示符后,使用root(hd0,2)指定linux的目录,使用命令kernel /boot/grub/vmlinuz root=/dev/hda3 resume=/dev/hda2 splash=silent showopts指定内核文件,使用命令initrd /boot/initrd指定设备文件,再使用命令boot启动suse linux。