每次启动服务器都要手动选择启动项

存在的问题

如下图所示:

每次启动服务器的时候,都需要手动将光标选择到第二条,敲回车,才能正常启动系统。

在这里插入图片描述

从图片可以看到,这是一个 GRUB 启动菜单,显示了三个选项:

CentOS Linux (3.10.0-1160.119.1.el7.x86_64) 7 (Core) (第一项)

CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) (第二项)

CentOS Linux (0-rescue-ca5ae51a1ab446b3b3c13faf5e483b80) 7 (Core) (第三项)

需要选择第二项 才能正常开机。这意味着默认启动的选项是错误的,我们需要修改 GRUB 的配置文件,使其默认选择第二项。

解决步骤

1. 登录系统

首先,通过手动选择第二项来进入系统。如果可以正常进入系统,则继续以下步骤。

2. 查看当前 GRUB 配置

在终端中运行以下命令,查看当前的 GRUB 配置文件:

cat /etc/default/grub

打印内容如下所示:

(base) [root@root ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline nomodeset rhgb quiet vga=0x0351"
GRUB_DISABLE_RECOVERY="true"

重点关注以下几行:

  • GRUB_DEFAULT=0:这是设置默认启动项的索引号,从 0 开始计数。
  • GRUB_TIMEOUT=5:这是 GRUB 菜单的超时时间,单位是秒。如果设置为 0,则直接跳过菜单,使用默认选项。

3. 编辑 GRUB 配置文件

使用文本编辑器(如 nanovim)打开 /etc/default/grub 文件:

sudo nano /etc/default/grub
修改 GRUB_DEFAULT

根据测试,第二项是正确的启动项,因此需要将 GRUB_DEFAULT 设置为 1(因为索引是从 0 开始的):

GRUB_DEFAULT=1
确保超时时间足够长

如果希望 GRUB 菜单始终显示,可以将 GRUB_TIMEOUT 设置为一个较大的值(例如 5 秒),或者保留默认值即可。

示例修改后的文件内容:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=1
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline nomodeset rhgb quiet vga=0x0351"
GRUB_DISABLE_RECOVERY="true"

4. 更新 GRUB 配置

保存并退出编辑器后,运行以下命令更新 GRUB 配置:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

对于 CentOS 7,通常使用的是 grub2-mkconfig,而不是 update-grub

但是当我执行这条命令的时候,提示 grep: /boot/grub2/grub.cfg: 没有那个文件或目录 。如下所示:

(base) [root@root ~]# grep -oP '^menuentry.*?"' /boot/grub2/grub.cfg
grep: /boot/grub2/grub.cfg: 没有那个文件或目录

此时使用 find 命令查找 find /boot -name "grub.cfg" ,如下所示:

(base) [root@root ~]# find /boot -name "grub.cfg"
/boot/efi/EFI/centos/grub.cfg

查找结果为 /boot/efi/EFI/centos/grub.cfg",那么使用下面的命令进行更新 GRUB 配置

grep -oP '^menuentry.*?"' /boot/efi/EFI/centos/grub.cfg 

5. 重启系统

重启服务器以应用更改:

sudo reboot

6. 验证结果

重启后,系统应该会自动选择第二项启动,而不需要手动干预。

✅ 操作步骤

步骤命令
编辑 GRUB 默认配置sudo nano /etc/default/grub
设置默认为第 2 项GRUB_DEFAULT=1
更新 GRUB 配置sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
重启系统sudo reboot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/2606.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#.NET BackgroundService 详解

简介 BackgroundService 是 .NET Core 引入的用于实现长时间运行后台任务的基类,位于 Microsoft.Extensions.Hosting 命名空间。它是构建 Worker Service 和后台处理的核心组件。 为什么使用 BackgroundService?优雅的生命周期管理:自动处理启…

数据结构与算法学习(一)

1 字典树(前缀树) 前缀树是N叉树的一种特殊形式。通常来说,一个前缀树是用来存储字符串的。前缀树的每一个节点代表一个字符串(前缀)。每一个节点会有多个子节点,通往不同子节点的路径上有着不同的字符。子…

LeetCode Hot 100 二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。示例 1:输入:root [3,9,20,null,null,15,7] 输出:3示例 2:输入:root [1,null,2] 输出&#…

Flutter基础(前端教程①①-底部导航栏)

1. 主页面(BottomNavBarPage)用 _currentBarIndex 记录当前选中的导航索引(默认 0,即首页)。用 IndexedStack 管理 4 个页面,通过 _currentBarIndex 控制显示哪个页面(比如索引 1 就显示 NodePa…

HTML 入门教程:从零开始学习网页开发基础

一、HTML简介 1.1 什么是HTML? HTML全称是Hyper Text Markup Language(超文本标记语言),由Tim Berners-Lee和同事Daniel W. Connolly于1990年创立。它是一种用于创建网页的标准标记语言,而不是编程语言。 1.2 HTML的…

LeetCode Hot100【4. 寻找两个正序数组的中位数】

4. 寻找两个正序数组的中位数 自己做 分析 解1&#xff1a;归并思想 class Solution { public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int sum 0;double value;queue<double> value2;int i 0, j 0;if ((nums…

JobSet:Kubernetes 分布式任务编排的统一解决方案

JobSet–Kubernetes 分布式任务编排的统一解决方案 在 Kubernetes 生态中&#xff0c;分布式机器学习训练和高性能计算&#xff08;HPC&#xff09;工作负载的编排一直是技术难点。随着大语言模型&#xff08;LLM&#xff09;等大型 AI 模型的兴起&#xff0c;单主机资源已无法…

【电脑】显示器的基础知识

显示器是计算机系统中用于显示图像、文本和其他视觉内容的重要组件。它将电子信号转化为可见的图像&#xff0c;使用户可以直观地查看和操作数据。以下是关于显示器的一些详细知识&#xff1a;1. 显示器的基本类型CRT显示器&#xff08;阴极射线管显示器&#xff09;工作原理&a…

【删库跑路】一次删除pip的所有第三方库

进入命令行&#xff0c;先list看下库存pip list导出所有的第三方库至一文件列表pip freeze >requirements.txt按照列表卸载所有库pip uninstall -r requirements.txt -y再list看下&#xff0c;可见库存已清空

19.如何将 Python 字符串转换为 Slug

如何将 Python 字符串转换为 Slug(URL 友好格式) 什么是 Slug? Slug 是一种 URL 友好、便于人类阅读的字符串。只包含小写字母、数字和连字符(-)。常见于文章标题、商品名等生成的网址路径中。例如: "Hello World!" → "hello-world"1. Slugify 的…

3.2数据库-关系代数-函数依赖-范式

1、关系代数基础1、并U&#xff1a;记录合并&#xff0c;相同记录只显示一次2、交&#xff1a;两张表都有的记录。3、差&#xff1a;S1-S2 表示S1减去S2中也有的数据。笛卡尔积&#xff08;重要&#xff09;1、笛卡尔积&#xff1a;S1*S2 :列是所有列全部加起来&#xff0c;重复…

[ROS 系列学习教程] ROS动作通讯(Action):通信模型、Hello World与拓展

ROS 系列学习教程(总目录) ROS2 系列学习教程(总目录) 文章目录一、动作通讯模型二、动作通讯流程2.1 任务添加阶段2.2 任务执行阶段2.3 任务完成阶段三、Action Hello World3.1 创建并初始化功能包3.2 确定Action名称及消息格式3.3 配置编译文件3.4 实现服务端与客户端&#x…