使用grldr文件引导windows xp、ubuntu系统

目的:

使用 grldr文件引导windows xp、ubuntu系统

原因:

1、此方法经过实践论证,切实可行。

2、重新安装XP后,ubuntu使用的mbr引导方式被破坏。

3、重新安装xp可使用备份过的grldr与menu.lst文件,一劳永逸。

4、依照此方法的原理可引导更多的linux系统(wndows系列未尝试)。

5、根据此原理或许可实现Vista、win7等windows系统引导ubuntu(未尝试)。

6、U盘安装ubuntu后 mbr引导方式,部分笔记本开机不能识别光驱(台式机正常识别,联想n440笔记本出现此状况,也许只是特例)

 

不足之处:

1、未成尝试在新引导方式下的Windows系统,如Win7、Vista下运用此方法(如此方法仍然可行,敬请告知)。

2、ubuntu更新内核后,需手动编辑menu.lst的内核版本号,(如有人知道在windows系统所在的磁盘下通过 grldr直接调用root所在磁盘下的grub.cfg文件,敬请告知)。

引言:

由于当前ubuntu使用了grub2引导方式,以及ext4文件格式将被广泛使用,因此需要最新版的 grldr 引导文件,ubuntu系统引导文件由原来的menu.lst变成了 grub.cfg(放在/boot/grub目录下)。

 

 

具体方法:

1、下载grldr文件到xp所在磁盘,并创建menu.lst文件,通常是C盘。

2、终端输入:

sudo gedit  /boot/grub/grub.cfg

打开grub.cfg 部分代码如下:

menuentry 'Ubuntu, with Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os 

{

  recordfail

   insmod ext2

  set root='(hd0,3)'

   search --no-floppy --fs-uuid --set 60e7b603-38a6-4072-a4d5-5fea465d2132

   linux /boot/vmlinuz-2.6.32-24-generic root=UUID=60e7b603-38a6-4072-a4d5-5fea465d2132 ro   quiet splash

   initrd /boot/initrd.img-2.6.32-24-generic

}

在此不多做纠缠,得到 60e7b603-38a6-4072-a4d5-5fea465d2132(root文件所在磁盘的唯一识别码)和需要引导的内核版本号 2.6.32-24即可

 

menuentry "Windows NT/2000/XP (on /dev/sda1)" 

{

  insmod ntfs set

  root='(hd0,1)'

   search --no-floppy --fs-uuid --set a21883dd1883af3b

   drivemap -s (hd0) ${root}

   chainloader +1

}

此为引导xp的代码

 

4、编写 menu.lst

menu.lst是ubuntu8.04之前的引导文件,此方式现仍可用来引导后期的ubuntu系统,内容如下:

 

##指定默认引导

default  0

##选择引导时间
timeout  1
## ## End Default Options 

## 引导 Ubuntu 10.04, kernel 2.6.32-24-generic

title   Ubuntu 10.04, kernel 2.6.32-24-generic
uuid     60e7b603-38a6-4072-a4d5-5fea465d2132
kernel   /boot/vmlinuz-2.6.32-24-generic root=UUID=60e7b603-38a6-4072-a4d5-5fea465d2132
ro quiet splash 
initrd    /boot/initrd.img-2.6.32-24-generic
quiet

##引导 Ubuntu 10.04, kernel 2.6.32-23-generic

title   Ubuntu 10.04, kernel 2.6.32-23-generic
uuid     60e7b603-38a6-4072-a4d5-5fea465d2132
kernel   /boot/vmlinuz-2.6.32-23-generic root=UUID=60e7b603-38a6-4072-a4d5-5fea465d2132
ro quiet splash 
initrd    /boot/initrd.img-2.6.32-23-generic
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST 引导xp
title Other operating systems:
root
title   Microsoft Windows XP Professional
rootnoverify (hd0,0)
savedefault
chainloader +1

引导ubuntu部分:

依葫芦画瓢将 所有60e7b603-38a6-4072-a4d5-5fea465d2132替换成在 grub.cfg 文件中相应的磁盘识别码,将内核版本号也作相应的替换。

如需引导多个内核版本或者其他linux系统,只需多次复制以上代码,改变其内核版本号与root所在磁盘的识别码。

再此仅是进入正常的系统,recovery mode、Memory test 等模式同以上思路,不再复述。

引导xp部分:

xp装在c盘,以上代码不用修改即可用

xp装在其他盘,根据实际情况修改 rootnoverify (hd0,0)

 

5、修改xp所在磁盘下boot.ini文件:

增加 “C:\grldr=Ubuntu 10.04”例如:

[boot loader]

timeout=1

default=C:\grldr
[operating systems]

C:\grldr=Ubuntu 10.04

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP " /noexecute=optin /fastdetect

 

6、如果当前计算机使用ubuntu系统下的mrb方式引导,需通过相应的工具将磁盘"重建主引导记录(MBR)"。

windows下的DiskGenius磁盘工具,以及大多数xp系统的ghost光盘自带的磁盘工具均有此功能。

附1:

 修复ubuntu引导,安装mbr:

通过Live光盘或Live-U盘启动至桌面

终端输入

   sudo grub

  终端输入

   root (hd0,6)    ##  0代表第一快硬盘, 6代表root目录所在的分区

终端输入

  setup (hd0) 

终端输入

   quit            ##退出grub。 

附2:

制作LiveU盘的工具:

unetbootin-windows-282.exe

此工具在windows环境下运行,可在网上轻易下载到,使用方法简单

posted @ 2010-09-11 00:28  luyao  阅读(6189)  评论(1编辑  收藏  举报