文章目录

  • 系统信息参考
  • 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与内核版本切换相关推荐

  1. linux内核版本切换

    问题描述:在给linux18.4版本系统装某个驱动时一直装不好,尝试从另一个linux18.04的系统上但是kernel版本较低装同一个驱动,发现能够装好,因此猜测为内核版本过高导致驱动安装失败,于是 ...

  2. 当前服务器系统内核版本是多少,linux下如何查看系统和内核版本

    linux下如何查看系统和内核版本 (2011-04-11 17:35:16) 标签: linux version 杂谈 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat ...

  3. linux下如何查看系统和内核版本

    1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.d ...

  4. linux 包括CentOS ubuntu 国内下载源/版本选择/如何下载老版本

    CentOS 国内下载源 下载地址:    http://mirrors.aliyun.com/centos/7/isos/x86_64/    阿里云开源镜像  https://mirrors.cn ...

  5. 基于linux环境采用update-alternatives 方式进行python版本切换

    采用update-alternatives 切换版本 update-alternatives是Debian提供的一个工具,通过链接的方式,但是其切换的过程非常方便. 首先看一下update-alter ...

  6. 基于Linux python2.X与python3.X默认版本切换

    Django的项目部署中,python的版本问题对项目的影响很重要,往往项目是用python3.X而Ubuntu的默认版本却是Python2.X.多方查找资料解决此疑,在此记录以备后查. 1. $py ...

  7. CentOS发行版本与内核版本对应关系

    红帽企业 Linux 下表列出了主要和次要的 Red Hat Enterprise Linux 更新.它们的发布日期以及随附的内核版本. 红帽一般不会透露未来的发布时间表. 有关红帽企业 Linux ...

  8. Centos7升级到最新内核版本操作过程

    虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,Linux 只是个内核.另一方面,发行版是一个完整功能的系统,它建立在内核之上,具有各种各样的应用程序工具和库. 在正常操作期 ...

  9. 践行全链路国产化,国产开源操作系统OpenCloudOS发布源社区内核版本

    8月1日记者获悉,在2022开放原⼦全球开源峰会OpenCloudOS分论坛上,OpenCloudOS开源操作系统社区正式发布首个Linux源社区(L1)内核版本OCKS 2207,这也是OpenCl ...

最新文章

  1. R语言sys方法:sys.chmod函数改变指定文件的权限、Sys.Date函数返回系统的当前日期、Sys.time函数返回系统的当前时间
  2. 常用git命令思维图
  3. 查看文件more、less
  4. 慕课堂签到迟到怎么办_线上教学第一周:长安大学精品课程助力“云端课堂”...
  5. 第2章 状态机思维与状态机变量
  6. 关于Struts+Spring+Hibernate的理解
  7. django-元选项
  8. STL之stack容器
  9. 智能会议系统(35)---深入浅出sip协议
  10. .Net页面缓存OutPutCache详解
  11. python print不换行输出_python中print如何不换行输出
  12. Linux系统下烧录系统镜像
  13. 守望先锋外挂(OWG)透视原理分析
  14. Python中 'unicodeescape' codec can't decode bytes in position XXX: trun错误解决方案
  15. Notion为什么能让我放弃手账
  16. 单点登录系统中如何共享cookie
  17. ActiveSync与设备连接
  18. 使用Haskell和Hubris加强Ruby
  19. Sharding-Sphere的新一代Zookeeper注册中心实现剖析
  20. 艾永亮:为什么企业都在追求超级产品,超级产品的意义是什么?

热门文章

  1. 分类模型的衡量指标,召回率recall和准确率precision
  2. 虚拟机+Ubuntu+filezilla连接
  3. 如何卸载bytefence anti-malware
  4. JAVA JDK1.5-1.9新特性
  5. java中字符数组和字符串的相互转换
  6. Matrix Factorization: A Simple Tutorial and Implementation in Python
  7. Pandas dataframe列名重命名
  8. python getostime_python转换在os.utime中使用的datetime
  9. php4.3.x 5.2.x,XDEBUG for PHP 5.3.0
  10. 21_python基础—单例和 __ new __ 方法