分页: 1 / 1

grub4dos启动双系统的简单方案

发表于 : 2012-05-19 12:28
a14331990
双启动windows xp(windows 7)和linux

下载grub4dos
http://code.google.com/p/grub4dos-chena ... loads/list
grub4dos-0.4.5b-2010-12-30.7z
(
因为我不喜欢这个更新
2010-12-31 更新
2.hiddenmenu命令增强。增加一个--chkpass参数
功能: 在隐藏菜单的时候按Esc键要输入正确的密码才可以显示菜单。
注意: 1.该功能启用之后,如果按了其它按键则直接启动默认菜单。
默认的Esc按键可以自由设置。使用--chkpass=KEY
2.菜单初始化有password命令时才需要输入密码。
3.按键代码如果不清楚可以使用上面的功能来获取。
例子: hiddenmenu --chkpass=0x8500 按F11键才可以显示菜单。
hiddenmenu --chkpass 按Esc键才可以显示菜单。
hiddenmenu --chkpass=0x2200 按Alt+G显示菜单。

解压
把grldr放在C盘根目录
修改C:\boot.ini

C:\GRLDR="Start GRUB"

windows 7的情况
把grldr grldr.mbr放在C盘根目录
修改C:\boot.ini

C:\GRLDR.MBR="Start GRUB"

编辑文件
C:\menu.lst
内容来自
/boot/grub2/grub.cfg

代码: 全选

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (3.3.6-3.fc17.x86_64)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7da680b2-c704-4829-a583-d2a970a909cf' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos9'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 --hint='hd0,msdos9'  7da680b2-c704-4829-a583-d2a970a909cf
	else
	  search --no-floppy --fs-uuid --set=root 7da680b2-c704-4829-a583-d2a970a909cf
	fi
	echo 'Loading Fedora (3.3.6-3.fc17.x86_64)'
	linux	/boot/vmlinuz-3.3.6-3.fc17.x86_64 root=UUID=7da680b2-c704-4829-a583-d2a970a909cf ro rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True  KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8 rhgb quiet
	echo 'Loading initial ramdisk ...'
	initrd /boot/initramfs-3.3.6-3.fc17.x86_64.img
}
submenu 'Advanced options for Fedora Linux' $menuentry_id_option 'gnulinux-advanced-7da680b2-c704-4829-a583-d2a970a909cf' {
}
if [ "x$default" = 'Fedora Linux, with Linux 3.3.0-1.fc17.x86_64' ]; then default='Advanced options for Fedora Linux>Fedora Linux, with Linux 3.3.0-1.fc17.x86_64'; fi;
### END /etc/grub.d/10_linux ###
摘取并修改为

代码: 全选

default=0
timeout=5
splashimage=(hd0,8)/boot/grub/splash.xpm.gz
hiddenmenu

###Fedora 17
title Fedora 17 (3.3.6-3.fc17.x86_64)
	root (hd0,8)
	kernel	/boot/vmlinuz-3.3.6-3.fc17.x86_64 root=UUID=7da680b2-c704-4829-a583-d2a970a909cf ro rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=latarcyrheb-sun16  KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8 rhgb quiet
	initrd	/boot/initramfs-3.3.6-3.fc17.x86_64.img
另外如果linux使用grub1
直接复制/boot/grub/menu.lst到C:\就行

完整的menu.lst见附件

确保双系统都可以正常启动,就可以用windows安装盘修复MBR去除MBR里的GRUB了。

每次重装windows记得备份C:\boot.ini C:\grldr C:\grldr.mbr C:\menu.lst
每次linux内核升级记得改menu.lst

另外grub4dos也可以引导grub2的,但麻烦很多

用这个办法还有个好处就是方便修改linux启动参数。

Re: grub4dos启动双系统的简单方案

发表于 : 2012-05-26 19:37
youzhiyili
先收藏了

Re: grub4dos启动双系统的简单方案

发表于 : 2012-05-26 19:42
youzhiyili
问下楼主:能不能用脚本实现,内核升级后自动修改C盘文件

Re: grub4dos启动双系统的简单方案

发表于 : 2012-05-27 10:52
a14331990
在linux下挂载c盘,打开menu.lst然后替换内核版本号就行。