grubcfg.docx
《grubcfg.docx》由会员分享,可在线阅读,更多相关《grubcfg.docx(23页珍藏版)》请在冰豆网上搜索。
grubcfg
Ubuntu9.10grub2的启动配置文件grub.cfg
[日期:
2009-12-03]来源:
Ubuntu社区作者:
smallapplehacklong1
摘记的比较乱,自己做个笔记,大家略去。
(LinuxIDC)
升级到Ubuntu9.10后,就要接触grub2了,它和以前的版本有了很多的不同。
这里是一个基础教程。
一、grub2的启动配置文件grub.cfg
grub2的启动配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst。
如果你是多系统,有Ubuntu和windows,那么用下面的命令,可以使grub2得到所以可以启动的系统。
sudoupdate-grub
实际就是让系统自己生成合适的grub.cfg文件。
这个grub.cfg文件是只读属性,so如果你要修改它,需要权限。
sudochmod+w/boot/grub/grub.cfg
然后可以编辑grub.cfg了。
sudogedit/boot/grub/grub.cfg
二、默认系统和等待时间
1、setdefault=0
这是说从第一项启动。
每个启动项都是以menuentry开始,menuentry后面“xxx”是启动项名称,然后{xxx}是启动代码。
###BEGIN/etc/grub.d/10_linux
###menuentry“Ubuntu,Linux2.6.31-14-generic”{
recordfail=1if[-n${have_grubenv}];
thensave_envrecordfail;
fisetquiet=1insmodext2setroot=(hd0,6)search–no-floppy–fs-uuid–set040508ff-fec7-4c66-ba64-a09f8abe8059linux/boot/vmlinuz-2.6.31-14-genericroot=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059roquietsplashinitrd/boot/initrd.img-2.6.31-14-generic}menuentry“Ubuntu,Linux2.6.31-14-generic(recoverymode)”{recordfail=1if[-n${have_grubenv}];
thensave_envrecordfail;fiinsmodext2setroot=(hd0,6)search–no-floppy–fs-uuid–set040508ff-fec7-4c66-ba64-a09f8abe8059linux
/boot/vmlinuz-2.6.31-14-generic
root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059
rosingleinitrd/boot/initrd.img-2.6.31-14-generic}
###END/etc/grub.d/10_linux
######BEGIN/etc/grub.d/20_memtest86+
###menuentry“Memorytest(memtest86+)”{linux16/boot/memtest86+.bin}menuentry“Memorytest(memtest86+,serialconsole115200)”{linux16/boot/memtest86+.binconsole=ttyS0,115200n8}
###END/etc/grub.d/20_memtest86+
######BEGIN/etc/grub.d/30_os-prober
###menuentry“MicrosoftWindowsXPHomeEdition(on/dev/sda1)”{insmodntfssetroot=(hd0,1)search–no-floppy–fs-uuid–set5c108a1c1089fd70drivemap-s(hd0)${root}chainloader+1}ifkeystatus;thenifkeystatus–shift;thensettimeout=-1elsesettimeout=10fielseifsleep$verbose–interruptible3;thensettimeout=10
Fi
fi
###END/etc/grub.d/30_os-prober
######BEGIN/etc/grub.d/10_linux
###menuentry“Ubuntu,Linux2.6.31-14-generic”{
recordfail=1
if[-n${have_grubenv}];thensave_envrecordfail;fi
setquiet=1
insmodext2
setroot=(hd0,6)
search–no-floppy–fs-uuid–set040508ff-fec7-4c66-ba64-a09f8abe8059
linux/boot/vmlinuz-2.6.31-14-genericroot=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059roquietsplash
initrd/boot/initrd.img-2.6.31-14-generic
}
menuentry“Ubuntu,Linux2.6.31-14-generic(recoverymode)”{
recordfail=1
if[-n${have_grubenv}];thensave_envrecordfail;fi
insmodext2
setroot=(hd0,6)
search–no-floppy–fs-uuid–set040508ff-fec7-4c66-ba64-a09f8abe8059
linux/boot/vmlinuz-2.6.31-14-genericroot=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059rosingle
initrd/boot/initrd.img-2.6.31-14-generic
}
###END/etc/grub.d/10_linux###
###BEGIN/etc/grub.d/20_memtest86+###
menuentry“Memorytest(memtest86+)”{
linux16/boot/memtest86+.bin
}
menuentry“Memorytest(memtest86+,serialconsole115200)”{
linux16/boot/memtest86+.binconsole=ttyS0,115200n8
}
###END/etc/grub.d/20_memtest86+###
###BEGIN/etc/grub.d/30_os-prober###
menuentry“MicrosoftWindowsXPHomeEdition(on/dev/sda1)”{
insmodntfs
setroot=(hd0,1)
search–no-floppy–fs-uuid–set5c108a1c1089fd70
drivemap-s(hd0)${root}
chainloader+1
}
ifkeystatus;then
ifkeystatus–shift;then
settimeout=-1
else
settimeout=10
fi
else
ifsleep$verbose–interruptible3;then
settimeout=10
fi
fi
###END/etc/grub.d/30_os-prober###
我的第五个启动项是menuentry“MicrosoftWindowsXPHomeEdition(on/dev/sda1)”,我要它默认是以xp启动,所以修改为setdefault=”4″。
(hd0,1)表示第一块硬盘的第一个分区,我的Linux在(hd0,6)。
当然,你也可以把你需要默认启动的系统放到最前面,那么就还是setdefault=0
2、settimeout=10
if[${recordfail}=1];then
settimeout=-1
else
settimeout=10
fi
这里停留在grub选择系统界面的时间就是10秒,即settimeout=10。
有时候我并不想等待这么久,我直接启动xp,需要Ubuntu时才按几下Shift键进入grub选择系统界面。
可以添加如下代码:
ifkeystatus;then
ifkeystatus–shift;then
settimeout=-1
else
settimeout=10
fi
else
ifsleep$verbose–interruptible3;then
settimeout=10
fi
fi
三、其他详细配置说明
请点击此处下载grub2基础教程-修订版.pdf
四、我的grub.cfg文件
安装了xp和Ubuntu,默认启动xp,在电脑启动grub时,按Shift键进入系统选择界面。
#
#DONOTEDITTHISFILE
#
#Itisautomaticallygeneratedby/usr/sbin/grub-mkconfigusingtemplates
#from/etc/grub.dandsettingsfrom/etc/default/grub
#
###BEGIN/etc/grub.d/00_header###
if[-s/boot/grub/grubenv];then
have_grubenv=true
load_env
fi
setdefault=”4″
if[${prev_saved_entry}];then
saved_entry=${prev_saved_entry}
save_envsaved_entry
prev_saved_entry=
save_envprev_saved_entry
fi
insmodext2
setroot=(hd0,6)
search–no-floppy–fs-uuid–set040508ff-fec7-4c66-ba64-a09f8abe8059
ifloadfont/usr/share/grub/unicode.pf2;then
setgfxmode=640×480
insmodgfxterm
insmodvbe
ifterminal_outputgfxterm;thentrue;else
#Forbackwardcompatibilitywithversionsofterminal.modthatdon’t
#understandterminal_output
terminalgfxterm
fi
fi
if[${recordfail}=1];then
settimeout=-1
else
settimeout=10
fi
###END/etc/grub.d/00_header###
###BEGIN/etc/grub.d/05_debian_theme###
setmenu_color_normal=white/black
setmenu_color_highlight=black/white
###END/etc/grub.d/05_debian_theme###
###BEGIN/etc/grub.d/10_linux###
menuentry“Ubuntu,Linux2.6.31-14-generic”{
recordfail=1
if[-n${have_grubenv}];thensave_envrecordfail;fi
setquiet=1
insmodext2
setroot=(hd0,6)
search–no-floppy–fs-uuid–set040508ff-fec7-4c66-ba64-a09f8abe8059
linux/boot/vmlinuz-2.6.31-14-genericroot=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059roquietsplash
initrd/boot/initrd.img-2.6.31-14-generic
}
menuentry“Ubuntu,Linux2.6.31-14-generic(recoverymode)”{
recordfail=1
if[-n${have_grubenv}];thensave_envrecordfail;fi
insmodext2
setroot=(hd0,6)
search–no-floppy–fs-uuid–set040508ff-fec7-4c66-ba64-a09f8abe8059
linux/boot/vmlinuz-2.6.31-14-genericroot=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059rosingle
initrd/boot/initrd.img-2.6.31-14-generic
}
###END/etc/grub.d/10_linux###
###BEGIN/etc/grub.d/20_memtest86+###
menuentry“Memorytest(memtest86+)”{
linux16/boot/memtest86+.bin
}
menuentry“Memorytest(memtest86+,serialconsole115200)”{
linux16/boot/memtest86+.binconsole=ttyS0,115200n8
}
###END/etc/grub.d/20_memtest86+###
###BEGIN/etc/grub.d/30_os-prober###
menuentry“MicrosoftWindowsXPHomeEdition(on/dev/sda1)”{
insmodntfs
setroot=(hd0,1)
search–no-floppy–fs-uuid–set5c108a1c1089fd70
drivemap-s(hd0)${root}
chainloader+1
}
ifkeystatus;then
ifkeystatus–shift;then
settimeout=-1
else
settimeout=10
fi
else
ifsleep$verbose–interruptible3;then
settimeout=10
fi
fi
###END/etc/grub.d/30_os-prober###
###BEGIN/etc/grub.d/40_custom###
#Thisfileprovidesaneasywaytoaddcustommenuentries.Simplytypethe
#menuentriesyouwanttoaddafterthiscomment.Becarefulnottochange
#the‘exectail’lineabove.
###END/etc/grub.d/40_custom###
一、grub.cfg详解(红色为说明)
说明:
grub.cfg默认为只读,需要个性化配置文件的,建议不要直接修改grub.cfg,请参考链接的pdf文档和google文档。
setdefault=0
#默认为0
insmodjpeg
#添加jpg支持,如要使用png或tga文件做背景,加上insmodpng或insmodtga
insmodext2
#除了用作启动的分区外,其他分区格式可在menu底下再添加
setroot=(hd0,7)
#设定root分区
search--no-floppy--fs-uuid--setf255285a-5ad4-4eb8-93f5-4f767190d3b3
#设定uuid=****的分区为root,和上句重复,可删除
#以下为终端配置
ifloadfont/usr/share/grub/unicode.pf2;then
#设置终端字体,unicode.pf2支持中文显示
setgfxmode=640x480
#设置分辨率,默认为640x480,可用800x600,1024x768,建议跟你想设定的图片大小一致
insmodgfxterm
#插入模块gfxterm,支持中文显示,它还支持24位图像
insmodvbe
#插入vbe模块,GRUB2引入很多模块的东西,要使用它,需要在这里加入
ifterminal_outputgfxterm;thentrue;else
#Forbackwardcompatibilitywithversionsofterminal.modthatdon't
#understandterminal_output
terminalgfxterm
#设置GRUB2终端为gfxterm
fi
fi
settimeout=10
background_image(hd0,7)/boot/images/1.jpg
#设置背景图片
###END/etc/grub.d/00_header###
###BEGIN/etc/grub.d/05_debian_theme###
setmenu_color_normal=white/black
setmenu_color_highlight=cyan/black
#这两行为Debian下的菜单颜色设置,如果默认的话,你会发现背景完全被蓝色挡住了,你需要修改blue为black,这样背景就会出现
###END/etc/grub.d/05_debian_theme###
#10_linux为自动添加的当前root分区linux引导项
###BEGIN/etc/grub.d/10_linux###
#菜单项,要包括menuentry双引号""和大括号{}才完整,否则不显示菜单
menuentry"Ubuntu,Linux2.6.31-9-386"{
insmodext2
setroot=(hd0,7)
search--no-floppy--fs-uuid--setf255285a-5ad4-4eb8-93f5-4f767190d3b3
#这句与setroot=(hd0,7)重复,可删除
linux/boot/vmlinuz-2.6.31-9-386root=UUID=f255285a-5ad4-4eb8-93f5-4f767190d3b3roquitesplash
#不喜欢看到一长串的,roo=UUID=***可用root=/dev/sda7代替
initrd/boot/initrd.img-2.6.31-9-386
}
###END/etc/grub.d/10_linux###
###BEGIN/etc/grub.d/20_memtest86+###
menuentry"Memorytest(memtest86+)"{
linux16/boot/memtest86+.bin
}
###END/etc/grub.d/20_memtest86+###
#自动添加存在于其他分区的系统引导项
###BEGIN/etc/grub.d/30_os-prober###
#windows启动菜单
menuentry"WindowsVista(loader)(on/dev/sda1)"{
insmodntfs
#windows格式为ntfs,或为fat32改为insmodfat
setroot=(hd0,1)
search--no-floppy--fs-uuid--setece067d2e067a196
#可删除
#grub2比较先进的地方就是如果发现windows启动是通过ntldr引导的,定为2000/xp/2003,会在这加上drivemap-s(hd0)${root},作用相当于grub的map,可正常启动非第一硬盘的xp/2003系统。
chainloader+1
}
#查找到其他分区上的linux系统并自动添加
menuentry"Ubuntukarmic(developmentbranch)(9.10)(on/dev/sda3)"{
insmodext2
setroot=(hd0,3)
search--no-floppy--fs-uuid--set4d893970-0685-44ed-86b3-1de45b2db84a
linux/boot/vmlinuz-2.6.31-9-genericroot=/dev/sda3
initrd/boot/initrd.img-2.6.31-9-generic
}
#若存在macos会自动在这里添加。
###END/etc/grub.d/30_os-prober###
#以下为手动添加的菜单项
###BEGIN/etc/grub.d/40_custom###
menuentry"CDLinux"{
setroot=(hd0,8)
linux/CDlinux/bzImageroot=/dev/ram0vga=791CDL_LANG=zh_CN.UTF-8
initrd/CDlinux/initrd
}
###END/etc/grub.d/40_custom###
#手动添加时,硬盘编号从0开始(hd0),主分区编号从1开始(hd0,1),逻辑分区从5开始(hd0,5)
本篇文章来源于Linux公社网站()原文链接:
http:
//www.linuxidc.c