文章分类:大众软件
MBR为WIN7/VISTA的系统光盘写入的情况下,MBR会找bootmgr文件的,所以,为了让grub接管下面的步骤,就可以让grub的grldr改名为bootmgr,当然同时将WIN7的bootmgr改为其他名字,比如bootmgrw,接下来就可以在grub要查找的menu.lst里写启动项了。如下:
引用
title Microsoft Windows 7 Ultimate
find --set-root /bootmgrw
chainloader /bootmgrw
boot
##接下来是引导linux的选项。
title Ubuntu 8.04 LTS, kernel 2.6.24-16-generic
root (hd0,9)
kernel /boot/vmlinuz-2.6.24-16-genericroot=UUID=F71FBE6E-6D19-4BAD-B782-F729B774FD1D ro quiet splash
initrd /boot/initrd.img-2.6.24-16-generic
quiet
那么以后在安装ubuntu的时候就注意不要写入主引导记录(MBR)了,手动修改上述C盘的grub文件menu.lst即可。
以下为转载
今天我们一起来探讨如何让这三个系统和谐共处。
由于系统内核不同,它们引导方式也不尽相同,系统一般启动顺序是这样的:
1.按下电源按钮,计算机首先运行Power OnSelf Text(POST),加电自检;
2.将MBR(硬盘主引导记录)调入内存,接着开始查找活动分区和主引导扇区;
3.将控制权交给引导程序;
4. 列出操作系统选择菜单,根据不同选择进入各自系统,完成各自初始化操作。对于XP来说,它的MB R是NT52格式引导记录,引导程序则是活动分区下的NTLDR文件,接着NTLDR通过读取c:\boot.ini配置文件,并列出操作系统供用户选择进入。对于Vista、Windows 7来说,它的MBR是N T60格式引导记录,引导程序则是活动分区下的BOOTMGR文件,接着BOOTMGR读取c:\boot\bcd配置文件列出操作系统供用户选择。
对于Ubuntu来说,它的MBR是GRUB格式引导记录,引导程序则是活动分区下的GRLDR,它会读取Ubuntu安装分区下的“/boot /grub/menu.lst”文件,列出操作系统选择菜单。由于Ubuntu8.01开始会自动读取原来X P系统引导菜单,因此对于使用正常的先XP后Ubuntu用户,在安装Ubuntu后Grub会将引导记录写入硬盘。自检后读取的是G RUB的MBR,它会读取Ubuntu安装分区下的“/boot/grub/menu.lst”文件,列出操作系统选择菜单。在列出的启动菜单如果选择 “MicrosoftWindowsXPProfessional”则将引导权交给“c:\ntldr”,完成XP的启动。如果选择“Ubuntu 8.10 kernel 2.6.27-7-generic”,则开始引导Ubuntu。Ubuntu首先使用kernel命令装载Linux内核,接着使用initird进行Ubuntu系统初始化。
从上可以看出,引导故障的出现主要就是由于引导记录和引导程序不同导致的。比如,对于先Ubuntu后XP的安装,安装了XP后会将引导记录更改为N T52,导致安装后只能进入XP,同样故障也发生在先Windows 7后XP安装情况下。因此三系统正确安装程序应该是:先Windows XP,接着Windows7,最后Ubuntu。
这样可以保证正常的引导。不过由于Ubuntu不会自动读取BOOTMGR引导信息,即使最后安装Ubuntu,我们也需要进入Ubuntu添加BOOTMGR的引导才能修复三系统的引导。
对症下药解决常见引导故障从启动流程图可以看到,整个的引导实际上是一个多级嵌套的引导过程,一级是GRUB主引导记录启动,二级是grub引导Ubuntu和BOOTMGR,三级则是BOOTMGR引导XP和Windows 7。
故障1:开机没有出现正常的GRUB启动,三个系统都无法进入从流程图可以知道,这时由于系统GRUB主引导记录被破坏导致。常见的原因是由于系统感染了引导记录病毒,或者自行对引导记录进行错误编辑所致。由于本地硬盘系统已经无法启动,要恢复GRUB主引导记录,可以借助Ubuntu的系统光盘启动进行修复。
第一步:进入BIOS将光驱设置为第一启动,插入Unbuntu安装光盘启动电脑,在启动界面选择“试用Ubuntu而不改变计算机中的任何内容”,用光盘启动系统。
第二步:进入光盘启动的Ubuntu后,单击桌面上方的“application→附件→终端”。启动终端后依次输入下列命令重写MBR,
sudo grub
root (hd0,5)
setup (hd0)
quit
第三步:当屏幕提示“succeeded”则表示成功写入MBR,此时重启系统就可以恢复原来的启动了。
故障2:可以启动系统,但只能进入Ubuntu,没有显示“启动到Windows 7”菜单如果开机可以顺利进入Ubuntu,这说明硬盘M BR并没有损坏。从流程图可以知道,这是由于menu.lst菜单丢失,或者进行错误编辑所致。解决方法是在Ubuntu编辑menu.lst,重新添加 BOOTMGR启动项即可。
第一步:由于Ubuntu对重要系统文件采取保护措施,这里先要取得menu.lst完全读取权限。进入Ubuntu桌面后,单击桌面上方的 “application→附件→终端”。启动终端后输入“sudo chmod 777 /boot/grub/menu.lst”,按提示输入管理员账户密码更改权限。
第二步:单击桌面上方的“application→附件→文本编辑器”,启动程序后单击“文件→打开”,打开“/filesystem/boot /grub/menu.lst”文件,在文中“end defaultoption”下添加如下内容并保存即可,这样重启后就可以修复了。
title 启动到Windows 7
root (hd0,0)
savedefault
makeactive
chainloader +1
故障3 : 可以启动系统,但只能进入BOOTMGR启动,无法进入Ubuntu这种情况大多出现在安装Ubuntu后,用户又使用原来gho备份恢复系统所致(或者重装 Windows 7)。由于恢复更改了硬盘MBR,导致无法使用Grub引导Ubuntu。因此解决的方法是重新添加Ubuntu启动。因此也可以使用上述方法进行修复,如果没有Ubuntu光盘,可以直接在XP下进行Ubuntu启动的添加。
第一步:到http://download.gna.org/grub4dos/grub4dos-0.4.4.zip下载grubdos,下载后将其中的grldr复制到c:\,打开“c:\boot.ini”,在文件最后添加如下启动项:C:\grldr=启动到Ubuntu
第二步:用记事本在C盘新建一个menu.lst文件,代码如下(#后为注释无需输入):
Title Ubuntu
# grub中0-3为主分区,Ubuntu安装在第二逻辑分区,所以分区标示为(hd0,5)root (hd0,5)
#加载位于第二逻辑分区boot目录下的内核(加载简体中文语言文件)并进行初始化,启动设备是hda6,在Ubuntu中1-4是主分区序号
Kernel (hd0,5)/boot/vml inuz-2.6.27.7-generic root=/dev/hda6 ro local=zh_cnquiet
splash
Initrd (hd0,5)/boot/initrd.img-2.6.27.7-generic
quit
第三步:重新启动系统,在XP系统中显示的多重启动菜单选择“启动到Ubuntu”即可引导进入Ubuntu操作系统了。
故障4:开机选择“启动到Windows 7”后,无法进入任何系统,屏幕提示BOOTMGR丢失
从启动流程图可以看到, 这是在BOOTMGR三级引导中出现的启动故障,其实就是“XP+Windows 7”双系统启动故障了。故障看上去和上述“故障2”类似。实际上前面故障修复的前提是假设“XP+Windows 7”双系统启动文件没有受损。现在的故障则是由于BOOTMGR启动文件受损所致。
由于误操作删除重要启动文件BOOTMGR,导致无法加载多重启动菜单,但是仍可进入Ubuntu,因此可以在Ubuntu中进行修复。只要把启动文件BOOTMGR重新复制到活动分区下即可,文件可从Windows 7安装光盘中获取。
第一步:如果活动分区是FAT32格式,在Ubuntu单击桌面“untitled folder”,打开Ubuntu文件浏览器,单击上方的“computer”按钮,打开类似Windows资源管理器界面,按提示插入Windows7 光盘,复制其中的BOOTMGR到C:\下即可。
第二步:对于采用NTFS格式系统分区,我们需要手动加载NTFS驱动。同上,启动终端后输入“sudo mount -tntfs-3g/dev/hda1/media/hda1 -oforce”,命令的意思是将NTFS分区hsda1加载到/media目录,这是可以读写的加载。操作同上,将提取的BOOTMGR文件复制到 /media目录即可。
故障5:开机选择“启动到Windows 7”后,显示Windows 7+XP的多重启动菜单,但是却无法进入任何一个操作系统从上面流程图可以可知道,这个原因主要是由于c:\bbot\bcd启动配置文件受损或者丢失所致。解决方法是重置BCD配置文件。具体可使用Windows7安装光盘的自动修复功能。
第一步:准备winbdows 7安装光盘启动电脑,在出现启动提示时按下任意键光盘启动。在出现的安装界面单击左下角的“修复计算机”,接着在出现的操作系统列表选择Windows 7,继续单击“下一步”,在“系统恢复选项”窗口,单击“启动修复”,按屏幕提示完成修复。
第二步:重启后进入Windows7后,从网上搜索并下载运行Easybcd,然后切换到“Add/RemoveEntries”,在“Addaentry”下切换到“Windows”,按提示添加WindowsXP启动,这样就修复“XP+Windows 7”双系统启动。不过由于使用上述的修复命令,硬盘主引导记录又会变成NT60,接下来只要添加Ubuntu启动即可。具体可参考上述“故障3”的介绍。
故障6:可以显示多重启动,但是只能进入Windows 7或者XP中的一个系统这种故障的主要是由于BCD配置文件会受损所致,由于我们仍然可以进入其中一个系统,只要使用前面介绍的Easybcd添加另外一个系统的启动即可。
Tips
本文Ubuntu主要是介绍使用独立分区安装,GRUB引导文件和Ubuntu内核默认安装在ext3分区,在Windows下是无法访问的,因此 windows下操作并不会删除Ubuntu启动文件。这里只要添加Ubuntu启动入口即可。即使是正常三系统,我们也可以使用上述方法,把 Ubuntu启动迁移到boot.ini中。
Tips
命令中的(hd0,5)为安装Ubuntu分区,(hd0,5)是指第一硬盘的第二逻辑分区。在GRUB中,主分区编号是0~3,扩展分区中的逻辑分区从(hd0,4) 开始。如果你不记得Ubuntu在哪个分区,也没有问题。可以先输入“ find /boot/grub/stage1”查找,然后再输入“setup(hd0)”写入即可。
写在最后
三系统的启动故障比较复杂,出现的情况也多种多样。最后我们总结一下一般修复思路。由于ubuntu和windows7系统安装光盘均具备修复功能。因此首先要准备这些修复光盘,其次要了解三系统的启动流程,在出现故障的时候,能够根据故障表现判断出产生的可能原因,然后对症下药解决即可。一般来说如果三个系统都无法进入,则要使用ubuntu光盘添加grub启动,如果可以进入其中一个系统,则可以在这个系统中对其他系统进行手动修复操作。