使用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环境下运行,可在网上轻易下载到,使用方法简单