关于win7、Ubuntu、xp三系统引导恢复

关于win7、Ubuntu、xp三系统引导恢复

win7, Ubuntu, 启动, 引导
本帖最后由 小小鸭 于 2010-6-19 13:58 编辑


以前一直在用xp、Ubuntu双系统,最近又安了个win7来看电影听歌,期间引导问题让人无比头疼,已解决,现总结了一下网上的方法,跟大家分享下经验。
首先说明一下,我硬盘分了5个区。第一分区装了xp,第二分区ext4格式装了Ubuntu10.04,第三分区用作交换分区,第四分区空闲,第五分区存放所有数据,我的win7就是装在空闲的第四分区。

因为windows得操作系统是高版本可以自动引导低版本,所以win7装完后没有什么问题,开机启动菜单自动生成了“早期版本的windows”,然后我用bcdedit命令改了个名字“windows xp”(win7使用专门的引导器来完成系统引导任务,具体bcdedit使用方法参见https://www.360docs.net/doc/c77371135.html,/?viewthread-38603)。但这时Ubuntu已经没了,我以前是改写的mbr用Ubuntu的grub引导的xp,现在再恢复grub引导估计得绕N个弯(所以最好在装Ubuntu时最好把grub装在Ubuntu分区,再去用其他系统去引导,否则一旦涉及到重装操作后悔莫及),所以我选择了重装Ubuntu10.04,这次我是把它装在了第二分区,最后把grub也装在了这个分区,因为没有改写mbr,装完后并不能立即看到Ubuntu的引导选项,需要在win7中手动添加引导(Ubuntu10.04使用grub2,所以网上的很多方法都过时了)。

下面是在网上搜索到的Ubuntu10.04的方法

1.让Windows 7能够启动Ubuntu,需要一个启动文件,就是刚才安装到Ubuntu分区的Grub内容。一般这些内容在Ubuntu分区的头512字节。在Ubuntu中可以用dd命令很方便地提取出来(dd if=/dev/sda2 of=/ubuntu.bin bs=512 count=1),在Windows中需要借助工具,我这里用的是WinHEX。
启动win7,下载WinHEX(太大没法传),打开WinHEX,点击Tools->Open Disk,选择Physical Media中的硬盘,OK。选中Ubuntu分区,点击Edit->Copy Sector->Into New File,保存到C盘根目录(我的win7物理位置并不是第一个分区,但系统自动识别win7系统分区为c盘,这倒方便了不少),文件名Ubuntu.bin

2.打开命令行窗口,添加Ubuntu启动项 bcdedit /create /d "Ubuntu 10.04" /application bootsector

3.此时会返回一个{GUID}号,例如{798718923-7891274-。。。}之类的,把你的那个复制下来,以下的{GUID}就用这个代替

4.bcdedit /set {GUID} device partition=C:

5. bcdedit /set {GUID} path \Ubuntu.bin

6. bcdedit /displayorder {GUID} /addlast

至此就可以了,开机你就会发现多出了Ubuntu10.04的开机菜单了,选择进入可以看到熟悉的grub引导菜单了,在grub引导菜单里面还会有一个windows 7 Loder的选项,选择可以返回win7引导菜单。如果你也是选择的windows引导Ubuntu的话,以上算是一种很完美的

了。

下面介绍一下grub4dos引导方法(因为悲剧所以才学会了这个方法)

一开始我按上面提到的的方法,解决了win7引导xp,Ubuntu的问题。因为我的xp是最常用的系统,但因为很久没换速度慢的跟蜗牛似地,昨天便重装了一下,我用的原版xp,装在了第一分区。虽然事前万分小心,可最后还是悲剧的破坏掉了里第一分区最近的第二分区的引导信息,致使没法在重装后用上面的方法提取引导扇区,恢复Ubuntu。
下面介绍具体方法(参考https://www.360docs.net/doc/c77371135.html,/viewtopic.php?f=139&t=229387)

1。在win7 xp双系统下重装xp,因为xp是比较低的版本,所以无法自动引导win7,借助工具BCDautofix (),修复了一下(具体操作件附件bcdautofix附件中的说明文档)

2。下载已经修改的grldr(,https://www.360docs.net/doc/c77371135.html,/viewtopic.php?f=139&t=229387也有下载),解压后把 g2ldr.mbr 和 g2ldr 放在win7的启动分区根目录 下,就是包含 bootmgr 的那个分区(因为我是用bcdautofix修复的双系统,所以转移到了装有xp的第一分区,只有win7系统的,就在win7分区就可以了)

3。然后在该分区根目录下新建 boot.ini(最后一行的C:可以换成具体你的分区,那个Grub4Dos可以改成任何名字)

[boot loader]
timeout=0
default=c:\g2ldr.mbr
[operating systems]
C:\g2ldr.mbr="Grub4Dos"

XP系统或XP/Win7双系统的,修改boot.ini 在最后加一行

C:\g2ldr.mbr="Grub4Dos"

这时已经可以了,重启后,win7loader自动识别出boot.ini中新加的启动项Grub4Dos,选择可以进入Grub4Dos,然后它自动找到Ubuntu分区,然后载入grub(这个绕了太大的弯),然后就可以启动Ubuntu了。因为是在boot.ini添加的,所以当你选择xp启动时,会看到二级启动菜单,里面多了个Grub4Dos,显然这个二级启动菜单已经没必要了,可以把xp启动菜单等待时间改为0,这样就看不见这个多余的Grub4Dos了。

undefined以上三系统过程已经包括了其中任意两个组成的双系统的启动修复方法,对于大多数情况都适用。

相关文档
最新文档