在修改grub时看到很多资料,上来就是直接修改/etc/default/grub配置文件中的GRUB_DEFAULT配置项,但是有时候修改不成功,本文简单说明一下修改的原理。注:根据本人机器上的配置文件讲解,其他人可能不一样,所以只做参考。

介绍的是Ubuntu下的修改方式,Centos下的修改方式不一样。

Centos下可参考:https://cloud.tencent.com/developer/article/2086777

一、查看内核信息和启动界面:

1、查看当前内核启动顺序:可以看到有两个内核Linux 5.4.0-147-genericLinux 5.4.0-146-generic

book@book-vm:~$ cat /boot/grub/grub.cfg |grep "menuentry "
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-56e2ca8b-3d73-46df-9a2a-58fa2247002f' {menuentry 'Ubuntu, with Linux 5.4.0-147-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-147-generic-advanced-56e2ca8b-3d73-46df-9a2a-58fa2247002f' {menuentry 'Ubuntu, with Linux 5.4.0-147-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-147-generic-recovery-56e2ca8b-3d73-46df-9a2a-58fa2247002f' {menuentry 'Ubuntu, with Linux 5.4.0-146-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-146-generic-advanced-56e2ca8b-3d73-46df-9a2a-58fa2247002f' {menuentry 'Ubuntu, with Linux 5.4.0-146-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-146-generic-recovery-56e2ca8b-3d73-46df-9a2a-58fa2247002f' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {

2、在启动系统时,grub的菜单界面为:

可以看到有四个菜单选项,这个界面是由配置文件 /boot/grub/grub.cfg 定义的,此文件一般是通过配置文件 /etc/default/grub 生成,命令为 sudo update-grub 。

二、相关配置文件

1、/boot/grub/grub.cfg

ubuntu@ubuntu-vm:/boot/grub$ ls
fonts  gfxblacklist.txt  grub.cfg  grubenv  i386-pc  locale  unicode.pf2

打开此配置文件,这里对照grub菜单看:

(1)Ubuntu 选项,在配置文件中的定义为:

此选项下,启动的内核为Linux 5.4.0-147-generic,在配置文件/etc/default/grub中,GRUB_DEFAULT=0时,会默认选择此选项,从而启动相关内核。

(2)Advanced options for Ubuntu 选项

在配置文件中的定义为:

此选项下有四个选项,分别启动相关内核。其它选项就不详述了。

2、/etc/default/grub

此配置文件内容为:

(1)GRUB_DEFAULT 配置项:默认菜单项

说明:GRUB_DEFAULT=0时,默认选择grub菜单界面的第一项Ubuntu;GRUB_DEFAULT=1时,默认选择grub菜单界面的第二项Advanced options for Ubuntu 。在本人的菜单界面或者配置文件 /boot/grub/grub.cfg 下,如果只修改GRUB_DEFAULT=1,则只选择了第二项,但是没有指定此选项下的哪一个,所以修改不会成功。

修改方法如下:要根据配置文件 /boot/grub/grub.cfg 定义的grub界面修改。

$ sudo vim /etc/default/grub
GRUB_DEFAULT=0 ##修改为
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-31-generic"

参考:Linux系统修改默认内核启动顺序

(2)其余的配置项可参考以下资料:

GRUB配置文件详解

(3)修改完成后,使用命令重新配置 /boot/grub/grub.cfg 文件,然后重启reboot。

$ sudo grub-mkconfig  -o /boot/grub/grub.cfg
或者
$ sudo update-grub    //此命令本质上就是grub-mkconfig

总结:

修改Linux系统默认内核启动顺序时,要参考配置文件 /boot/grub/grub.cfg 定义的grub,从而修改 /etc/default/grub 中的GRUB_DEFAULT配置项。本文介绍了修改grub启动顺序的原理,具体的方法除本文外还有很多,不再详述。

Linux中修改系统启动项grub相关推荐

  1. linux环境配置以后生效,Linux中修改环境变量及生效方法

    Linux中修改环境变量及生效方法 在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且 ...

  2. linux路由修改密码,Linux中修改Mysql root用户密码的方法

    Linux中修改Mysql root用户密码的方法 下面给大家分享下在Linux下如何修改Mysql的用户(root)的密码,分两种情况:第一种当拥有原来的mysql的root密码,第二种情况忘记原来 ...

  3. Linux中修改登录提示文件

    Linux中修改登录提示文件 一.登录前提示信息文件:/etc/issue和/etc/issue.net 1.进行清空修改 ①.方法一: ②.方法二 ③.方法三 二.登录后提示信息文件:/etc/mo ...

  4. 联想开机启动项按哪个_win7系统如何修改系统启动项 win7系统修改系统启动项方法【步骤】...

    我们在使用电脑的过程当中,电脑开机时很多软件都会跟着启动,这就导致了系统启动变慢,这时我们就需要修改启动项了,不过有很多电脑用户都不知道怎么修改系统启动项,那么win7系统怎么修改系统启动项呢?今天为 ...

  5. Linux中修改用户UID和组GID的方法

    Linux中修改用户UID和组GID的方法 http://www.sijitao.net/2401.html 发表时间:2016-04-20 21:30 | 分类: Linux | 浏览:2,344 ...

  6. Linux中修改文件名

    Linux中修改文件名 # 没有直接修改的方式,需要借用mv或cp命令.# mv会把原路径文件删除(移动文件) # 参数1:原文件路径 参数2:新文件路径 mv oldFilePath newFile ...

  7. linux环境变量生效方式,Linux中修改环境变量及生效方法

    Linux中修改环境变量及生效方法 方法一: 在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户 ...

  8. 在Linux中修改打开文件数量和进程数量限制的3种方法

    方法一:使用ulimit命令 ulimit命令可用来增加在shell中打开文件的数量.这个命令是系统内置命令,因此它只影响bash和从它启动的程序. ulimit -n 65535 方法二:使用PAM ...

  9. linux双系统启动项grub,grub双系统启动顺序更改

    多人都说更改 /boot/grub/grub.conf文件,将其中的default=0改成defualt=1. 我不太清楚这种方法是否在linux下正确,但我知道这在ubuntu下是不正确的, 因为在 ...

最新文章

  1. linux java 栈_关于Java中栈与堆的思考
  2. 04使用模板显示内容
  3. 大数据和高并发的解决方案汇总
  4. Windows Phone(三)WP7版 记账本 开发(使用SQLite数据库)
  5. 开源无人机_开源无人机,欧洲开源等等
  6. Scalaz(38)- Free :Coproduct-Monadic语句组合
  7. [hdu 1003] Max Sum
  8. 在html种颜色的代码,html颜色代码生成器
  9. 克隆的虚拟机一直重复出现登录界面_QQ空间里的装扮怎样才能克隆到自己空间?...
  10. 离散数学经典教材及资料(整理)
  11. 微信PC端多开的秘密
  12. 超级计算机通信工程研发相关高校,美国签证技巧
  13. thrift编写规则,及常见问题
  14. 试述HDFS中的名称节点和数据节点的具体功能
  15. java操作Excel:技巧
  16. 【ChatGPT】你会是被AI抢饭碗的那类人吗?
  17. 洪特规则计算孤立原子/离子磁矩
  18. java memorystream 包_C#使用MemoryStream类读写内存
  19. python floor函数_Python floor() 函数
  20. 《2021大数据产业年度趋势人物》榜重磅发布丨金猿奖

热门文章

  1. Java前端,悬浮窗口html+js
  2. 通达信数据接口api的编写脚本
  3. CPS---(Cyber-Physical Sytem,信息物理融合系统)
  4. 程序员需要明白这九件事
  5. c语言作业制作仓库管理系统,C语言课程设计 仓库管理系统
  6. 东北大学计算机学院保研去向,东北大学计算机科学与工程学院(专业学位)计算机技术保研条件...
  7. JS逆向:【硬干货】手把手实战某条_signature参数破解(下)——WebSocket与JS函数
  8. jdk配置教程详(sha)细(gua)版
  9. 雅思IELTS精讲——【作文】
  10. PCL——基于惯性矩与偏心率的描述子进行包围盒提取