Grub 2 结构
Grub 2包含下面几个部分:
/boot/grub/grub.cfg 文件
/etc/grub.d/ 文件夹
/etc/default/grub 文件
grub.cfg类似Grub中的 /boot/grub/menu.lst。里面的格式于menu.lst差不多,但是现在不允许你通过直接修改该文件到方式来修改启动项,因为该文件是在 执行"update-grub"或者update-grub2"之后,根据上面说到2、3两项动态生成到,也就是说,如果你修改了这个文件当下次这两个命 令被执行了(比如说更新内核后),你修改到内容就会背覆盖。官方文件只说/boot/grub/grub.cfg不要手工修改,这个文件是运行 update-grub自动生成的。要修改配置文件的只要打开/boot/grub/grub.cfg文件,找到想修改的地方,然后根据注释找到相应的 /etc/default/grub或/etc/grub.d/ (folder)进行修改。
/etc/grub.d/ 文件夹中定义各个启动项,其中的文件代表了一个或多个启动项,命名规范都是"两个数字_名称",前面的两位数字确定这个或这多个启动项在启动界面的位置, 默认的 "00_"是预留给"00_header"的,"10_是预留给当前系统内核的,20_是预留给第三方程序的,除了这些你都可以使用,增加自己的,比如 05_ , 15_,数字越小越前面,因此可以通过更改数字调整启动项的前后顺序。
Grub 2的最后一部分是 /etc/default/grub 文件,该文件主要是启动界面的配置,比如默认的启动项,等待用户选择启动项的时间等。文件内容很简单,就是一些键值对,详细的可配置属性可以参考Grub 2的Wiki中"grub (/etc/default/grub)"这一节。当执行前面说的"update-grub"或者update-grub2"命令之后,这个文件的内容就用于生成 grub.cfg 中启动界面的设置。
删除多余驱动项
第一步:列出所有当前已经安装了的内核文件:
$dpkg --get-selections|grep linux-image
linux-image-2.6.32-24-generic deinstall
linux-image-2.6.32-25-generic install
linux-image-2.6.32-27-generic install
linux-image-2.6.32-31-generic install
linux-image-generic install
第二步:删除旧的内核,用以下命令:
$sudo apt-get remove [内核文件名]
同时删除多个可以在内核文件名之间加空格。比如我要删除25,27我就输入以下命令:
$sudo apt-get remove linux-image-2.6.32-25-generic linux-image-2.6.32-27-generic
第三步:更新grub2:sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-31-generic
Found initrd image: /boot/initrd.img-2.6.32-31-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done