首页 / 操作系统 / Linux / Ubuntu 9.10 grub2的启动配置文件grub.cfg
摘记的比较乱,自己做个笔记,大家略去。(LinuxIDC) 升级到Ubuntu 9.10后,就要接触grub2了,它和以前的版本有了很多的不同。这里是一个基础教程。一、grub2的启动配置文件grub.cfggrub2的启动配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst。 如果你是多系统,有ubuntu和windows,那么用下面的命令,可以使grub2得到所以可以启动的系统。 sudo update-grub 实际就是让系统自己生成合适的grub.cfg文件。 这个grub.cfg文件是只读属性,so如果你要修改它,需要权限。 sudo chmod +w /boot/grub/grub.cfg 然后可以编辑grub.cfg了。 sudo gedit /boot/grub/grub.cfg二、默认系统和等待时间 1、set default=0 这是说从第一项启动。每个启动项都是以menuentry开始,menuentry后面“xxx”是启动项名称,然后{xxx}是启动代码。 ### BEGIN /etc/grub.d/10_linux ###menuentry “Ubuntu, Linux 2.6.31-14-generic” {recordfail=1if [ -n ${have_grubenv} ]; then save_env recordfail; fiset quiet=1insmod ext2set root=(hd0,6)search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro quiet splashinitrd /boot/initrd.img-2.6.31-14-generic}menuentry “Ubuntu, Linux 2.6.31-14-generic (recovery mode)” {recordfail=1if [ -n ${have_grubenv} ]; then save_env recordfail; fiinsmod ext2set root=(hd0,6)search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro singleinitrd /boot/initrd.img-2.6.31-14-generic}### END /etc/grub.d/10_linux ###### BEGIN /etc/grub.d/20_memtest86+ ###menuentry “Memory test (memtest86+)” {linux16 /boot/memtest86+.bin}menuentry “Memory test (memtest86+, serial console 115200)” {linux16 /boot/memtest86+.bin console=ttyS0,115200n8}### END /etc/grub.d/20_memtest86+ ###### BEGIN /etc/grub.d/30_os-prober ###menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)” {insmod ntfsset root=(hd0,1)search –no-floppy –fs-uuid –set 5c108a1c1089fd70drivemap -s (hd0) ${root}chainloader +1}if keystatus; thenif keystatus –shift; thenset timeout=-1elseset timeout=10fielseif sleep$verbose –interruptible 3 ; thenset timeout=10fifi### END /etc/grub.d/30_os-prober ###### BEGIN /etc/grub.d/10_linux ### menuentry “Ubuntu, Linux 2.6.31-14-generic” { recordfail=1 if [ -n ${have_grubenv} ]; then save_env recordfail; fi set quiet=1 insmod ext2 set root=(hd0,6) search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059 linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro quiet splash initrd /boot/initrd.img-2.6.31-14-generic } menuentry “Ubuntu, Linux 2.6.31-14-generic (recovery mode)” { recordfail=1 if [ -n ${have_grubenv} ]; then save_env recordfail; fi insmod ext2 set root=(hd0,6) search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059 linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro single initrd /boot/initrd.img-2.6.31-14-generic } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry “Memory test (memtest86+)” { linux16 /boot/memtest86+.bin } menuentry “Memory test (memtest86+, serial console 115200)” { linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)” { insmod ntfs set root=(hd0,1) search –no-floppy –fs-uuid –set 5c108a1c1089fd70 drivemap -s (hd0) ${root} chainloader +1 } if keystatus; then if keystatus –shift; then set timeout=-1 else set timeout=10 fi else if sleep$verbose –interruptible 3 ; then set timeout=10 fi fi ### END /etc/grub.d/30_os-prober ### 我的第五个启动项是menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)”,我要它默认是以xp启动,所以修改为set default=”4″。(hd0,1)表示第一块硬盘的第一个分区,我的Linux在(hd0,6)。 当然,你也可以把你需要默认启动的系统放到最前面,那么就还是set default=0 2、set timeout=10 if [ ${recordfail} = 1 ]; then set timeout=-1 else set timeout=10 fi 这里停留在grub选择系统界面的时间就是10秒,即set timeout=10。 有时候我并不想等待这么久,我直接启动xp,需要ubuntu时才按几下Shift键进入grub选择系统界面。可以添加如下代码: if keystatus; then if keystatus –shift; then set timeout=-1 else set timeout=10 fi else if sleep$verbose –interruptible 3 ; then set timeout=10 fi fi