grub4dos启动双系统的简单方案

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
头像
a14331990
帖子: 604
注册时间: 2009-03-25 9:38
系统: Fedora 22 x86_64

grub4dos启动双系统的简单方案

#1

帖子 a14331990 » 2012-05-19 12:28

双启动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启动参数。
附件
menu.lst.txt
(1.18 KiB) 已下载 104 次
上次由 a14331990 在 2012-05-30 9:00,总共编辑 1 次。
qq 591799783
email a14331990#hotmail.com a14331990#163.com
头像
youzhiyili
帖子: 2422
注册时间: 2012-03-22 20:42
系统: ubuntu22.04

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

#2

帖子 youzhiyili » 2012-05-26 19:37

先收藏了
@自由建客 @qy117121 @枫叶饭团 @cikekid @YeLee @jtshs256 @eexpress @ljj_jjl2008 @zhw2101024 @TeliuTe @月下叹逍遥 @leeaman @懒蜗牛Gentoo @灰色小狼 @photor @adagio @JiangHui @phoenixlzx @oneleaf
头像
youzhiyili
帖子: 2422
注册时间: 2012-03-22 20:42
系统: ubuntu22.04

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

#3

帖子 youzhiyili » 2012-05-26 19:42

问下楼主:能不能用脚本实现,内核升级后自动修改C盘文件
@自由建客 @qy117121 @枫叶饭团 @cikekid @YeLee @jtshs256 @eexpress @ljj_jjl2008 @zhw2101024 @TeliuTe @月下叹逍遥 @leeaman @懒蜗牛Gentoo @灰色小狼 @photor @adagio @JiangHui @phoenixlzx @oneleaf
头像
a14331990
帖子: 604
注册时间: 2009-03-25 9:38
系统: Fedora 22 x86_64

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

#4

帖子 a14331990 » 2012-05-27 10:52

在linux下挂载c盘,打开menu.lst然后替换内核版本号就行。
qq 591799783
email a14331990#hotmail.com a14331990#163.com
回复