IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【Linux】如何设置Centos启动默认使用的内核 -> 正文阅读

[系统运维]【Linux】如何设置Centos启动默认使用的内核

目录

修改方法

原理说明

?报错处理


修改方法


?(1)主动修改:

使用Linux下自带的grub工具 “grub2-set-default” 和 “grub2-reboot” 修改,其中后者真正设置的是next_entry参数,只在下次启动时有效。

可能需要先安装grub2和生成grub.cfg

sudo yum install -y grub2
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

? ? ? ? ? ? 修改步骤:
?? ??? ??? ??? ?a. 查看当前系统具有的内核
? ? ? ? ? ? ? ? ? ? sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
?? ??? ??? ??? ?b. 设置默认的启动内核
?? ??? ??? ??? ??? ? sudo grub2-set-default (0~N)或者(‘a 中得出的名称’单引号必须加)
?? ??? ??? ??? ?c. 查看当前的配置状态
?? ??? ??? ??? ??? ? sudo grub2-editenv list
?? ??? ??? ?
?? ?(2)让系统主动记录上次的内核选项:
?? ??? ??? ?在 '4' 所述的/etc/default/grub 参数中,
?? ??? ??? ??? ?设置GRUB_DEFAULT=saved
?? ??? ??? ??? ?同时增加GRUB_SAVEDEFAULT=true? 系统在每次启动时,会主动将当前选择的内核选项更新到'5' 中的两个文件中
?? ??? ??? ??? 注:此参数不设置时,默认为true,但如果记录过程遇到错误,将不再强制记录。

(注意:如果同时设置(1)默认内核和 (2)“主动记录上次的内核选项”,则启动的时候linux会使用上次的的内核启动,只是centos 7 是这样的)

原理说明

1. 背景:
?? ?x86架构下,Linux的启动过程中,BIOS操作完毕后,由grub进行内核的启动
?? ?CentOS7下grub介入之后的启动界面如下:

    CentOS Linux (4.16.7) 7 (Core)?????????????????????????????????????????????????????????????????????????????????????????? ?
    CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)??????????????????????????????????????????????????????????????????????????? ?
    CentOS Linux (0-rescue-5d2e988e8b5b4bdf81b86a690b19ea19) 7 (Core)

  在此界面下,可以进行
?? ??? ?  1. 内核版本的选择
?? ??? ?  2. 按下“e”在选定的内核启动前编辑启动相关细节
?? ??? ?  3. 按下“c”进入grub命令行,手动键入命令,设置参数,选定内核及其他文件进行启动


2. 此界面是怎么生成的:
?? ?此界面是grub根据其配置文件生成的,配置文件为:
?? ??? ?EFI模式配置文件:?? ?/boot/efi/EFI/centos/grub.cfg
?? ??? ?legacy配置文件:?? ?/boot/grub2/grub.cfg
?? ?配置文件的内容在这里不详细解释了,之前组内分享“Linux启动引导”部分已经详细分析过了。

3. 配置文件如何更改:
?? ?(1) 先修改/etc/default/grub文件中的参数
?? ?(2) 然后使用grub2-mkconfig工具生成上述grub.cfg配置文件
?? ??? ?EFI模式配置文件生成:?? ??? ?grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
?? ??? ?legacy模式配置文件生成:?? ?grub2-mkconfig -o /boot/grub2/grub.cfg

4. 默认启动的内核是什么决定的
?? ?在/etc/default/grub的参数中可以设置启动时默认选择的内核,参数是:
?? ??? ?GRUB_DEFAULT?? ??? ?= ??? ?0~N?? ??? ?默认从数字启动项启动
?? ??? ??? ??? ??? ?= ?? ?saved?? ??? ?使用系统中记录的saved_entry的值作为默认启动项
?? ?注意修改之后要重新按照‘3' 中操作生成配置文件。

5. 上述saved_entry的值在哪里?
?? ?EFI模式: ?? ??? ?/boot/efI/EFI/centos/grubenv
?? ?legacy模式:?? ??? ?/boot/grub2/grubenv
?? ?在CentOS7 中,/boot/efI/EFI/centos/grubenv文件是原始文件,/boot/grub2/grubenv是它的链接文件。

6. 上述saved_entry的值怎么修改?
?? ?警告:/boot/efI/EFI/centos/grubenv和/boot/grub2/grubenv不可以直接进行编辑修改,需要使用工具
?? ?修改方法:
?? ??? ?(1)主动修改:使用Linux下自带的grub工具 “grub2-set-default” 和 “grub2-reboot” 修改,其中后者真正设置的是next_entry参数,只在下次启动时有效。

(可能需要先安装grub2和生成grub.cfg

sudo yum install -y grub2
sudo grub2-mkconfig -o /boot/grub2/grub.cfg


?? ??? ??? ?修改步骤:
?? ??? ??? ??? ?a. 查看当前系统具有的内核
?? ??? ??? ??? ??? ?awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
?? ??? ??? ??? ?b. 设置默认的启动内核
?? ??? ??? ??? ??? ?grub2-set-default (0~N)或者(‘a 中得出的名称’单引号必须加)
?? ??? ??? ??? ?c. 查看当前的配置状态
?? ??? ??? ??? ??? ?grub2-editenv list
?? ??? ??? ?
?? ??? ?(2)让系统主动记录上次的内核选项:
?? ??? ??? ?在 '4' 所述的/etc/default/grub 参数中,
?? ??? ??? ??? ?设置GRUB_DEFAULT=saved
?? ??? ??? ??? ?同时增加GRUB_SAVEDEFAULT=true? 系统在每次启动时,会主动将当前选择的内核选项更新到'5' 中的两个文件中
?? ??? ??? ??? ??? ?注:此参数不设置时,默认为true,但如果记录过程遇到错误,将不再强制记录。
7. 其他:
?? ?如果 '6' 中没有使用工具修改,而是强制修改的话,系统主动记录上次启动内核将会失败。

?报错处理

我们经常会在CentOS 6和CentOS 7升级中遇到/boot/grub/grub.conf not found 和 /boot/grub2/grub.cfg not found 错误,这里是解决的方法:

/boot/grub/grub.conf?缺失:

sudo yum install -y grub
sudo grub-mkconfig -o /boot/grub/grub.conf

/boot/grub2/grub.cfg?缺失:

sudo yum install -y grub2
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

参考或摘抄:

解决/BOOT/GRUB/GRUB.CONF NOT FOUND 和 /BOOT/GRUB2/GRUB.CFG NOT FOUND 问题:https://wzfou.com/question/17884/

Centos下Linux启动时默认内核设置机制;https://www.cnblogs.com/guoqingpeng/p/13216084.html

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:32:30  更:2022-04-01 00:35:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:47:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码