如何修改ubuntu 的Grub来修改启动项
来源:互联网 发布:apk软件编写 编辑:程序博客网 时间:2024/05/01 11:30
基本文件
1. /boot/grub/grub.cfg 文件
2. /etc/grub.d/ 文件夹
3. /etc/default/grub 文件
grub.cfg的文件中包含了两部分的内容,一部分是各个启动项的定义,第二部分是启动界面的设置。
功能介绍
/etc/grub.d/文件夹中定义的各个启动项,其中的文件夹代表了一个或者多个启动项,使用的命名规范都是“两个数字_名称”,前面的两个数字确定这个或者这多个启动项在启动界面中的位置,默认的“00_"是预给”00_header"的,“10_"是预留给当前系统内核的,"20_"是预留给第三方程序的,除了这些你都可以使用,增加自己的,比如"05_"数字越小的越前面。/etc/default/gurb文件,该文件主要是启动界面配置,比如默认的启动项,等待用户的选择时间等。
好了,通过上面的介绍,应该对Grub 2有些了解了,聪明的你应该想到要怎么修改默认启动项了,有下面三种方法:
•根据以前修改 /boot/grub/menu.lst 的方法那样直接修改已经生成好的 /boot/grub/grub.cfg。这个方法的优点是简单,缺点是修改之后会被”update-grub”命令覆盖掉。
•修改 /etc/grub.d/ 中启动项的顺序,将你想要默认启动的项顺序设置为较小的值。优点是修改不会被”update-grub”命令覆盖掉,好像没啥缺电,只有另外的程序修改为比你的值更小了才会成为默认启动。
示例:
1.vim /etc/default/grub
2. 把GRUB_DEFAULT= 和 GRUB_TIMEOUT= 两个字符串后面的数字改为我们自己想要的并保存关闭
怎样得到需要启动系统的顺序呢,可以通过根据已经生成的 /boot/grub/grub.cfg得到。
这是我的现有启动项:
- 0 Ubuntu,Linux 3.2.0-27-generic
- 1 Ubuntu,Linux 3.2.0-27-generic (恢复模式)
- 2 submenu "Previous Linux versions":
- #这是子项
- Ubuntu,Linux 3.0.0-23-server
- Ubuntu,Linux 3.0.0-23-server (恢复模式)
- Ubuntu,Linux 3.0.0-12-server
- Ubuntu,Linux 3.0.0-12-server (恢复模式)
- 3 Ubuntu GNU/Linux,Xen 4.1-amd64 和 Linux 3.2.0-27-generic
- Ubuntu GNU/Linux,Xen 4.1-amd64 和 Linux 3.2.0-27-generic (恢复模式)
- Ubuntu GNU/Linux,Xen 4.1-amd64 和 Linux 3.0.0-23-server
- Ubuntu GNU/Linux,Xen 4.1-amd64 和 Linux 3.0.0-23-server (恢复模式)
- Ubuntu GNU/Linux,Xen 4.1-amd64 和 Linux 3.0.0-12-server
- Ubuntu GNU/Linux,Xen 4.1-amd64 和 Linux 3.0.0-12-server (恢复模式)
- Memory test (memtest86+)
- Memory test (memtest86+, serial console 115200)
但是:submenu "Previous Linux versions"中的系统都属于2,xen是个编号为3.所以修改GRUB_DEFAULT=3。
3. 最后sudo update-grub 不要忘记了。
最简单的做法:
其实个人觉的最简单的是直接阅读/boot/grub/grub.cfg的内容。
查找关键字menuentry。内核的顺序就是menuentry的顺序。你可能会看到:
- if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
- menuentry 'Ubuntu,Linux 3.5.0-rc1+' --class ubuntu --class gnu-linux --class gnu --class os {
- recordfail
- gfxmode $linux_gfx_mode
- insmod gzio
- insmod part_gpt
- insmod ext2
- set root='(hd0,gpt2)'
- search --no-floppy --fs-uuid --set=root 47caf968-871e-40da-b292-7d5683ef3e94
- linux /vmlinuz-3.5.0-rc1+ root=/dev/mapper/ubuntu-root ro
- initrd /initrd.img-3.5.0-rc1+
- }
- menuentry 'Ubuntu,Linux 3.5.0-rc1+ (恢复模式)' --class ubuntu --class gnu-linux --class gnu --class os {
- recordfail
- insmod gzio
- insmod part_gpt
- insmod ext2
- set root='(hd0,gpt2)'
- search --no-floppy --fs-uuid --set=root 47caf968-871e-40da-b292-7d5683ef3e94
- echo '载入 Linux 3.5.0-rc1+ ...'
- linux /vmlinuz-3.5.0-rc1+ root=/dev/mapper/ubuntu-root ro recovery nomodeset
- echo '载入初始化内存盘...'
- initrd /initrd.img-3.5.0-rc1+
- }
- submenu "Previous Linux versions" {
- menuentry 'Ubuntu,Linux 3.2.0-27-generic' --class ubuntu --class gnu-linux --class gnu --class os {
- recordfail
- gfxmode $linux_gfx_mode
- insmod gzio
- insmod part_gpt
- insmod ext2
- set root='(hd0,gpt2)'
- search --no-floppy --fs-uuid --set=root 47caf968-871e-40da-b292-7d5683ef3e94
出现了submenu就说明里面包含子菜单。
例如
1.直接进入主菜单的某个内核
我要启动linux 3.5.0-rc1+,它是主菜单的第一个。我就修改这个文件中的set default="0"(注意,要取得写得权利)。
或者直接修改 /etc/default/grub中的GRUB_DEFAULT="0"(这样就要执行update-grub)。
2.使用">"进入子菜单
我要启动
Ubuntu,Linux 3.2.0-27-generic可以看出,它属于排在主菜单第三位的submenu的子菜单的第一个。所以就修改这个文件中的set default="2>0"(注意,要取得写得权利)。或者直接修改 /etc/default/grub中的GRUB_DEFAULT="2>0"(这样就要执行update-grub)。
- 如何修改ubuntu 的Grub来修改启动项
- 如何修改ubuntu 的Grub来修改启动项
- [ubuntu]修改GRUB的默认启动系统
- 修改ubuntu grub启动菜单的顺序
- ubuntu升级后修改grub启动项
- ubuntu修改grub,删除多余启动项
- 双系统,修改ubuntu的grub更改启动项
- ubuntu grub 启动菜单 修改
- Ubuntu 修改GRUB启动信息
- 修改Ubuntu Grub启动次序
- 修改grub启动项
- 修改grub启动项
- 修改grub 启动项
- ubuntu修改grub,修改开机顺序,配置grub启动顺序
- ubuntu grub修改 启动时间 启动项选择
- 修改grub的启动文件
- Ubuntu多系统修改默认启动项(grub)
- GRUB启动默认项修改
- C++项目中的extern "C" {}
- vsprintf
- 网络协议01 邮差与邮局 (网络协议概观)
- 写了个最简单的jQuery插件
- 第六次作业
- 如何修改ubuntu 的Grub来修改启动项
- 复制不完全和自我赋值问题
- 设计优秀API的五大规则
- 一语中的
- LA_2678 - Subsequence( 二分 )
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用
- struts拦截器拦截ajax异步调用失败问题
- shell基础一
- DataGridView控件在VB.Net中的操作技巧