Linux中修改系统启动项grub

2023-05-16

在修改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启动顺序的原理,具体的方法除本文外还有很多,不再详述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux中修改系统启动项grub 的相关文章

  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc

随机推荐

  • 温度对超声波换能器的影响

    我们都知道超声波换能器的主要参数有 xff1a 谐振频率 反谐振频率 谐振阻抗 反谐振阻抗 输出幅值 静态电容等 在平时使用换能器的时候 xff0c 除了超声波换能器有自身损耗的影响外 xff0c 很可能使用场合出现在室内或室外 xff0c
  • RC522模块学习

    目录 1 原理简介 2 SPI通信 3 获取卡号实验 3 驱动函数 参考 xff1a https www cnblogs com ivantang p 3904025 html https xiaolong blog csdn net ar
  • 从零学习GCC,Makefile,CMakeList编译

    近期想系统地学习一下C 43 43 软件开发 xff0c 因此记录一下自己的学习笔记 xff0c 方便复习 大多数内容都是整理搬运别的博主文章内容 xff0c 加上自己的理解归纳 如果大家想了解更深的内容或者有不明白的地方 xff0c 可以
  • AS608指纹模块

    目录 1 简介 2 上位机测试 3 stm32程序 1 简介 AS608指纹识别模块是一款高性能的光学指纹识别模块 模块配备了串口 USB通讯接口 xff0c 用户无需研究复杂的图像处理及指纹识别算法 xff0c 只需通过简单的串口 USB
  • 两个hc05蓝牙模块在两块单片机上通信(附完整代码)

    目录 第一步 xff1a 进入AT模式 第二步 xff1a 同时插在电脑上实现通信 第三步 xff1a 单片机上通信 代码链接 所需材料 xff1a 两个hc05蓝牙 xff0c 两个usb转串口模块 xff0c 两块单片机 第一步 xff
  • 代码随想录day2 leetcode977,209,59,54

    977 有序数组的平方 class Solution public vector lt int gt sortedSquares vector lt int gt amp nums vector lt int gt res nums siz
  • 代码随想录day3 leetcode203,707,206,剑指offer 76题,62题

    链表基础知识 单链表的定义 单链表 struct ListNode int val 节点上存储的元素 ListNode next 指向下一个节点的指针 ListNode int x val x next NULL 节点的构造函数 不定义构造
  • 代码随想录day4 leetcode24,19,02.07面试题,142,138

    感觉链表最难的就是处理越界问题 24 两两交换链表中的节点 class Solution public 链表题很容易出现段错误 xff0c 一定要注意判断是否为空 ListNode swapPairs ListNode head ListN
  • http协议分析软件-Fiddler 教程

    Fiddler是最强大最好用的Web调试工具之一 xff0c 它能记录所有客户端和服务器的http和https请求 xff0c 允许你监视 xff0c 设置断点 xff0c 甚至修改输入输出数据 使用Fiddler无论对开发还是测试来说 x
  • STM32寄存器开发以及库函数开发的区别,库函数基础工程创建以及源文件和头文件的作用,手把手教你创建第一个STM32的LL库开发的工程

    一 序 本文主要是简述如何创建一个STM32的基础工程 xff0c 以及在工程文件中所添加文件 xff08 头文件以及原文件 xff09 的意义 本文不使用RTE xff0c 使用的芯片为STM32F103ZET6 xff0c KEIL x
  • C++ 万能库文件

    大家是不是通常使用 lt iostream gt 这个库文件呢 xff1f 有时用到了其他代码动不动就来个 error xff0c 非常麻烦对吧 xff0c 今天告诉大家一个万能库 xff0c 包含了c 43 43 大多数库 xff0c 那
  • 三维模型转变为点云模型的好工具——CloudCompare使用小记

    普通三维模型能够直观地展示物体的三维全貌 xff0c 但是在一些场合需要将三维模型变为相应的点云模型进行展示 xff0c 而使用激光雷达等传感器采集到的点云信息往往只能反应模型表面的情况 xff0c 或是使用PCL库中的可执行文件进行转换
  • MyString(字符串类)实现

    字符串类 xff08 MyString xff09 说明文档 一 MyString 类的组成 1 1 私有成员 char data 字符型指针 int length 整型字符串长度 1 2 共有成员 1 2 1 构造与析构函数 MyStri
  • ROMFS的建立

    参考 xff1a VxWorks 7 File Systems Programmer s Guide
  • MyMatrix(二维矩阵类)实现

    二维矩阵类 xff08 MyMatrix xff09 说明文档 一 MyMatrix 类的组成 1 1 私有成员 int row 二维矩阵行数 int col 二维矩阵列数 T data 二维矩阵数据 1 2 共有成员 1 2 1 构造与析
  • 基于CUDA和TCP通信的大数据双机加速计算(CUDA加速、内存优化、TCP多机协同)

    1 环境 技术简介 1 1 程序运行环境 1 server端计算机 操作系统 xff1a Ubuntu 18 04 5 LTS 运行环境 xff1a VSCode或Bash终端 2 client端计算机 操作系统 xff1a Ubuntu
  • RGB888转换为RGB565格式

    RGB888转换为RGB565格式 RGB888用unsigned int 32位字节存储 00000000R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2
  • Keil5界面配置

    配置一 xff1a 绿色 Specification for text selection and caret line selection fore 61 00FFFF selection back 61 004000 caret for
  • Linux内核调试环境(centos+gdb+qemu)

    一 写在前面 主要介绍qemu在Centos中的安装过程 xff0c 以及遇到的一些麻烦 网上教程好多都是在Ubuntu环境下的安装 xff0c 但是公司给的环境大都是Centos xff0c 没办法花了一天的时间 xff0c 磕磕绊绊弄好
  • Linux中修改系统启动项grub

    在修改grub时看到很多资料 xff0c 上来就是直接修改 etc default grub配置文件中的GRUB DEFAULT配置项 xff0c 但是有时候修改不成功 xff0c 本文简单说明一下修改的原理 注 xff1a 根据本人机器上