admin 管理员组文章数量: 1086019
2024年12月25日发(作者:windowsserver2008r2的安装类型有)
如何修改Grub 2(Ubuntu 9.10)的系
统启动项
在早期的Ubuntu中,使用Grub作为系统的启动引导程序,想修改系统启动项非
常简单,只要用gedit打开系统菜单设定文件( sudo gedit
/boot/grub/ ),修改该文件中到内容即可,但是到了Grub 2中,不
能采用这种方式修改系统启动项了。
Grub 2特性
Grub 2(GRand Unified Bootloader, version 2)是Grub的第二版。Grub 2
对Grub的接口进行了完整到重写,基于PUPA(详细介绍)项目到研究,Grub 2
更模块化并且更方便扩展,Grub 2的一些提升如下:
具有图形化界面,支持主题
模块化加载
夸平台的兼容性
支持脚本
自定义的启动项目定义
修改分区命名
Grub 2结构
Grub 2包含下面几个部分:
/boot/grub/ 文件
/etc/grub.d/ 文件夹
/etc/default/grub 文件
下面开始一个个介绍。
类似Grub中的 /boot/grub/。里面的格式于差不
多,但是现在不允许你通过直接修改该文件到方式来修改启动项,因为该文件是
在执行“update-grub”或者”update-grub2”之后,根据上面说到2、3两项动
态生成到,也就是说,如果你修改了这个文件当下次这两个命令被执行了,你修
改到内容就会背覆盖。我发现这两个命令应该经常会自动执行的,因为上次我修
改了启动画面的背景,需要通过这两个命令重新生成,但是后来我忘
了用这两个命令,所以背景一直没有生效,当时还很纳闷,不知道怎么回事,不
过今天开机用了会儿,系统又更新,装完之后重启就 好了,然后我突然想到上
次可能忘了执行这命令了,没想到系统更新会自动执行,:)。
文件中主要包含两个部分,一部分是各个启动项的定义,第二部分是
启动界面的设置。你可以直接用gedit打开该文件看其中的内容。既然
不能修改,那也没什么好详细说的了,稍微研究下就能看懂里面是怎么写的。下
面就介绍一下Grub 2的另外两个部分。
Grub 2的另外两部分内容其实就分别对应于中的两部分内容。首先 2.
/etc/grub.d/ 文件夹中定义各个启动项,其中的文件代表了一个或多个启动项,
命名规范都是“两个数字_名称”,前面的两位数字确定这个或这多个启动项在
启动界面的位置,默认的 “00_“是预留给“00_header“的,“10_”是预留给
当前系统内核的,”20_”是预留给第三方程序的,除了这些你都可以使用,增
加自己的,比如 05_ , 15_,数字越小越前面。这里的文件好像是代码,我还没
研究透,不会自己写,只会改,:(,要加油学习了。当执行前面说的“update-grub”
或者”update-grub2”命令之后,这个文件夹中的文件就是用于生成 中
启动项的定义的。
Grub 2的最后一部分是 3. /etc/default/grub 文件,该文件主要是启动界面
的配置,比如默认的启动项,等待用户选择启动项的时间等。文件内容很简单,
就是一些键值对,详细的可配置属性可以参考Grub 2的Wiki中“grub
(/etc/default/grub)”这一节。当执行前面说的“update-grub”或者”
update-grub2”命令之后,这个文件的内容就用于生成 中启动界面的
设置。
总结
好了,通过上面的介绍,应该对Grub 2有些了解了,聪明的你应该想到要怎么
修改默认启动项了,有下面三种方法:
根据以前修改 /boot/grub/ 的方法那样直接修改已经生成好的
/boot/grub/。这个方法的优点是简单,缺点是修改之后会被”
update-grub”命令覆盖掉。
修改 /etc/grub.d/ 中启动项的顺序,将你想要默认启动的项顺序设置为
较小的值。优点是修改不会被”update-grub”命令覆盖掉,好像没啥缺
电,只有另外的程序修改为比你的值更小了才会成为默认启动。
修改 /etc/default/grub 中默认的启动项,设置该文件中 GRUB_DEFAULT
为你想要的值,这个值是生成的 中各个启动项的从0开始的下
标。该方法优点是修改不会被”update-grub”命令覆盖,缺电是当启动
项的顺序变化之后,下标也就变了。。。
示例
在写这篇文章的时候,我的环境是这样的:安装了Ubuntu 9.10,内核是Linux
2.6.31-14,后来两次更新之后变成Linux 2.6.31-16,在安装Ubuntu之前是用
win7的,现在是双系统,现在的启动项有(根据已经生成的
/boot/grub/得到):
“Ubuntu, Linux 2.6.31-16-generic”
“Ubuntu, Linux 2.6.31-16-generic (recovery mode)”
“Ubuntu, Linux 2.6.31-15-generic”
“Ubuntu, Linux 2.6.31-15-generic (recovery mode)”
“Ubuntu, Linux 2.6.31-14-generic”
“Ubuntu, Linux 2.6.31-14-generic (recovery mode)”
“Memory test (memtest86+)”
“Memory test (memtest86+, serial console 115200)”
“Windows 7 (loader) (on /dev/sda1)”
呵呵,好多,我本来想根据第二种方法先删掉几个启动项的,不过想想以后可能
还是会用到的,就先留着吧,所以采用第三种方法修改。现在在
/boot/grub/ 有这么一行“set default=”0″”,注意这里的下标是
从0开始的,相当于我现在的默认启动项是上面的第一个“Ubuntu, Linux
2.6.31-16-generic”,我要改为默认启动win7,所以应该将默认启动项改为 8,
用下面的命令调出gedit。
sudo gedit /etc/default/grub
修改/etc/default/grub中GRUB_DEFAULT=0为GRUB_DEFAULT=8。
用下面的命令重新生成 /boot/grub/:
sudo update-grub
执行后显示:
rextu@rextu-laptop:/etc/default$ sudo update-grub
Generating „
Found Debian background:
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/-2.6.31-16-generic
Found linux image: /boot/vmlinuz-2.6.31-15-generic
Found initrd image: /boot/-2.6.31-15-generic
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done
这时候在执行:
sudo gedit /boot/grub/
可以看到其中的set default=”0″已经变成set default=”8″了。大功告成,
restart,哈哈。
版权声明:本文标题:UBuntu修改开机启动界面 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735201594a1641816.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论