【Linux使用】Centos 7 GRUB与内核版本切换
文章目录
- 系统信息参考
- GRUB的配置文件
- 查找grub.cfg文件
- 列出所有的引导入口
- 列出默认的引导入口
- 修改默认的引导入口
- /etc/default/grub文件
- 重新生成/etc/default/grub文件
- 打印出所有安装的内核
- 删除指定的内核
系统信息参考
[tony@tony-dev ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
GRUB的配置文件
在启用了UEFI的系统上,CentOS 7的GRUB的有效配置文件是 /boot/efi/EFI/centos/grub.cfg。/boot/grub与/boot/grub2目录下已经不再保存配置文件 (参看后图)。
查看一下这个文件的头部说明,可以看到 “不可编辑这个文件”的警告信息,同时指明了修改这个文件的方法:即需要修改/etc/default/grub配置文件与/etc/grub.d目录下的模板后,再用grub2-mkconfig命令生成这个文件。
[root@tony-dev boot]# sudo cat /boot/efi/EFI/centos/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
# /boot目录结构图
[root@tony-dev boot]# tree -F /boot
/boot
├── config-3.10.0-693.11.6.el7.x86_64...
├── efi/
│ └── EFI/
│ ├── BOOT/
│ │ ├── BOOTX64.EFI*
│ │ ├── fallback.efi*
│ │ └── fbx64.efi*
│ └── centos/
│ ├── BOOT.CSV*
│ ├── BOOTX64.CSV*
│ ├── fonts/
│ │ └── unicode.pf2*
│ ├── fw/
│ ├── fwupia32.efi*
│ ├── fwupx64.efi*
│ ├── grub.cfg*
│ ├── grub.cfg.1554740803.rpmsave*
│ ├── grubenv*
│ ├── grubx64.efi*
│ ├── mmx64.efi*
│ ├── MokManager.efi*
│ ├── shim.efi*
│ ├── shimx64-centos.efi*
│ └── shimx64.efi*
├── grub/
│ └── splash.xpm.gz
├── grub2/
│ └── grubenv -> ../efi/EFI/centos/grubenv*
├── initramfs-0-rescue-2282c2e0651e46f796865aaa645ac7fe.img...
├── lost+found/
├── symvers-3.10.0-693.11.6.el7.x86_64.gz...
├── vmlinuz-0-rescue-2282c2e0651e46f796865aaa645ac7fe*...
└── vmlinuz-3.10.0-957.10.1.el7.x86_64.debug*9 directories, 56 files
查找grub.cfg文件
# 通常会打印出
# /boot/efi/EFI/centos/grub.cfg (UEFI-based system)
# 或者
# /boot/grub2/grub.cfg (Legacy system)[tony@tony-dev ~]$ sudo find /boot -name grub.cfg
/boot/efi/EFI/centos/grub.cfg
列出所有的引导入口
# 用单引号(')作分隔符,第一个域是"menuentry "的行,就是引导入口。
[root@tony-dev default]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' $(find /boot -name grub.cfg)
0 : CentOS Linux (3.10.0-957.10.1.el7.x86_64.debug) 7 (Core)
1 : CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-693.el7.centos.tony_base.x86_64.debug) 7 (Core)
4 : CentOS Linux (3.10.0-693.el7.centos.tony_base.x86_64) 7 (Core)
5 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
6 : CentOS Linux (0-rescue-2282c2e0651e46f796865aaa645ac7fe) 7 (Core)
列出默认的引导入口
[root@tony-dev default]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
修改默认的引导入口
[root@tony-dev default]# grub2-set-default 2
[root@tony-dev default]# grub2-editenv list
saved_entry=2
/etc/default/grub文件
默认的/etc/default/grub文件并不长,内容如下:
[root@tony-dev default]# 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 rhgb quiet”
GRUB_DISABLE_RECOVERY=“true”
重新生成/etc/default/grub文件
修改配置文件后,需要使用如下命令重新生成grub.cfg文件,以使配置文件生效。
grub2-mkconfig -o $(find /boot -name grub.cfg)
打印出所有安装的内核
[tony@tony-dev ~]$ sudo rpm -q kernel
kernel-3.10.0-693.el7.x86_64
kernel-3.10.0-693.el7.centos.tony_base.x86_64
kernel-3.10.0-693.11.6.el7.x86_64
kernel-3.10.0-957.10.1.el7.x86_64
删除指定的内核
[root@tony-dev boot]# sudo yum remove kernel-3.10.0-693.el7.centos.tony_base.x86_64
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
–> Running transaction check
—> Package kernel.x86_64 0:3.10.0-693.el7.centos.tony_base will be erased
–> Finished Dependency Resolution
&npsb;
Dependencies Resolved
&npsb;
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
kernel x86_64 3.10.0-693.el7.centos.tony_base installed 59 M
&npsb;
Transaction Summary
================================================================================
Remove 1 Package
&npsb;
Installed size: 59 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : kernel-3.10.0-693.el7.centos.tony_base.x86_64 1/1
Verifying : kernel-3.10.0-693.el7.centos.tony_base.x86_64 1/1
&npsb;
Removed:
kernel.x86_64 0:3.10.0-693.el7.centos.tony_base
&npsb;
Complete!
【Linux使用】Centos 7 GRUB与内核版本切换相关推荐
- linux内核版本切换
问题描述:在给linux18.4版本系统装某个驱动时一直装不好,尝试从另一个linux18.04的系统上但是kernel版本较低装同一个驱动,发现能够装好,因此猜测为内核版本过高导致驱动安装失败,于是 ...
- 当前服务器系统内核版本是多少,linux下如何查看系统和内核版本
linux下如何查看系统和内核版本 (2011-04-11 17:35:16) 标签: linux version 杂谈 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat ...
- linux下如何查看系统和内核版本
1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.d ...
- linux 包括CentOS ubuntu 国内下载源/版本选择/如何下载老版本
CentOS 国内下载源 下载地址: http://mirrors.aliyun.com/centos/7/isos/x86_64/ 阿里云开源镜像 https://mirrors.cn ...
- 基于linux环境采用update-alternatives 方式进行python版本切换
采用update-alternatives 切换版本 update-alternatives是Debian提供的一个工具,通过链接的方式,但是其切换的过程非常方便. 首先看一下update-alter ...
- 基于Linux python2.X与python3.X默认版本切换
Django的项目部署中,python的版本问题对项目的影响很重要,往往项目是用python3.X而Ubuntu的默认版本却是Python2.X.多方查找资料解决此疑,在此记录以备后查. 1. $py ...
- CentOS发行版本与内核版本对应关系
红帽企业 Linux 下表列出了主要和次要的 Red Hat Enterprise Linux 更新.它们的发布日期以及随附的内核版本. 红帽一般不会透露未来的发布时间表. 有关红帽企业 Linux ...
- Centos7升级到最新内核版本操作过程
虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,Linux 只是个内核.另一方面,发行版是一个完整功能的系统,它建立在内核之上,具有各种各样的应用程序工具和库. 在正常操作期 ...
- 践行全链路国产化,国产开源操作系统OpenCloudOS发布源社区内核版本
8月1日记者获悉,在2022开放原⼦全球开源峰会OpenCloudOS分论坛上,OpenCloudOS开源操作系统社区正式发布首个Linux源社区(L1)内核版本OCKS 2207,这也是OpenCl ...
最新文章
- R语言sys方法:sys.chmod函数改变指定文件的权限、Sys.Date函数返回系统的当前日期、Sys.time函数返回系统的当前时间
- 常用git命令思维图
- 查看文件more、less
- 慕课堂签到迟到怎么办_线上教学第一周:长安大学精品课程助力“云端课堂”...
- 第2章 状态机思维与状态机变量
- 关于Struts+Spring+Hibernate的理解
- django-元选项
- STL之stack容器
- 智能会议系统(35)---深入浅出sip协议
- .Net页面缓存OutPutCache详解
- python print不换行输出_python中print如何不换行输出
- Linux系统下烧录系统镜像
- 守望先锋外挂(OWG)透视原理分析
- Python中 'unicodeescape' codec can't decode bytes in position XXX: trun错误解决方案
- Notion为什么能让我放弃手账
- 单点登录系统中如何共享cookie
- ActiveSync与设备连接
- 使用Haskell和Hubris加强Ruby
- Sharding-Sphere的新一代Zookeeper注册中心实现剖析
- 艾永亮:为什么企业都在追求超级产品,超级产品的意义是什么?
热门文章
- 分类模型的衡量指标,召回率recall和准确率precision
- 虚拟机+Ubuntu+filezilla连接
- 如何卸载bytefence anti-malware
- JAVA JDK1.5-1.9新特性
- java中字符数组和字符串的相互转换
- Matrix Factorization: A Simple Tutorial and Implementation in Python
- Pandas dataframe列名重命名
- python getostime_python转换在os.utime中使用的datetime
- php4.3.x 5.2.x,XDEBUG for PHP 5.3.0
- 21_python基础—单例和 __ new __ 方法