Ubuntu grub2介绍

淺唱寂寞╮ 提交于 2019-12-03 07:42:25

Ubuntu grub2简介

  从Ubuntu 9.10起,grub2就已经是默认的BootLoader了。这里简要说要Ubuntu的grub2和其他发行版不一样的地方。
  对于所有的OS启动项,CentOS全都显示在一个grub选择界面,显得非常拥挤,而Ubuntu这里就使用了一个Submenu的概念,将kernel版本最高的OS启动项放在最顶端名为“Ubuntu”的选项中,其他的版本都放在一个名为“Advanced options for Ubuntu”中,这个就是前面说到的Submenu子菜单。进入子菜单后,就可以手动选择你需要的版本了。这里注意,每个版本都提供了普通版和recover mode两种选择。
  grub选择界面:


  grub配置文件如下:
……
   # OS启动版本选择
   set default="0"
fi
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-f7627d97-02da-4145-af58-0fe730f276b2' {
    menuentry 'Ubuntu, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-f7627d97-02da-4145-af5
8-0fe730f276b2' {
……
    menuentry 'Ubuntu, with Linux 3.13.0-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-24-generic-recovery-f7627d
97-02da-4145-af58-0fe730f276b2' {
……
}

  下载kernel源代码,执行make bzImage -j 4 && make modules -j 4 && make modules_install && make install,编译并安装后,就会在/boot目录生成对应版本的vmlinuz、initrd.img、.config等文件,并且会默认执行update-grub命令来生成最新的grub配置文件。如果未手动修改,默认会按照kernel版本号从高到低的顺序将各个版本的OS放入Submenu中,也就是说,默认启动的就是kernel版本最高的OS。

更新默认OS启动版本

  grub的配置文件有两个:/boot/grub/grub.cfg和/etc/default/grub,其中/boot/grub/grub.cfg为真正生效的文件,但其权限为只读的,也就是不建议直接修改;这是就需要/etc/default/grub文件了,通过修改该文件,再执行update-grub命令,即可将改动从/etc/default/grub更新到/boot/grub/grub.cfg了。打开/etc/default/grub:

# 选择的OS版本
GRUB_DEFAULT="1>2"
GRUB_HIDDEN_TIMEOUT_QUIET=true
# 停留在grub选择界面的时间
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

使用数字选择版本

  这里我们主要关注GRUB_DEFAULT这个选项,我们上面提到,OS启动版本中,第一项是kernel版本最高的OS,第二项就是Submenu,而所有OS版本都在这个Submenu中,包括版本最高的OS。打开/boot/grub/grub.cfg,索引从0开始,选择第几个index,update-grub并重启后,就会从选择的OS启动。比如我们要选择索引为2的OS版本,那么我们只需要GRUB_DEFAULT修改如下即可。然后执行命令update-grub,再重启OS即生效。1>2表示先选择第1项(索引从0开始的),即Submenu,再从Submenu中选择第2项。

GRUB_DEFAULT="1>2"

使用文字选择版本

  如果觉得数字的方式比较难以区分,也可以使用名称的方式,格式类似,如下。表示先选择名为Advanced options for Ubuntu的第一层,即Submenu,再从Submenu中选择名为Ubuntu, with Linux 3.9.0的OS版本。

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.9.0"

参考

  如果想了解更多关于Ubuntu grub2的信息,请参考官网:https://help.ubuntu.com/community/Grub2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!