添加elrepo源

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm


vim /etc/yum.repos.d/elrepo.repo

启用[elrepo-kernel]源

yum clean all && yum makecache

#查找内核

yum search kernel-lt --showduplicates

下载内核

方法1

yum install --downloadonly --downloaddir=/temp kernel-lt-5.4.258-1.el7.elrepo.x86_64

方法2

yumdownloader kernel-lt-5.4.258-1.el7.elrepo.x86_64 /temp


CentOS 6 系统更改内核启动顺序方法:

1、查看编辑/etc/grub.conf 文件

cat /boot/grub/grub.cfg |grep menuentry

lrwxrwxrwx. 1 root root 22 Aug 10 2022 /etc/grub.cfg -> ../boot/grub/grub.cfg

2、在grub.conf文件中决定开机使用哪个内核版本做启动的参数是default,默认值为0,代表从最新的内核启动。代表启动的内核版本从上往下依次是0、1、2等。

vim  /etc/grub.conf
GRUB_DEFAULT=0 修改为
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-166-generic"

CentOS 7 系统更改内核启动顺序方法:

由于CentOS7使用grub2作为引导程序,所以和CentOS 6有所不同,并不是通过修改/etc/grub.conf来调节启动项。

方法1

1、执行如下命令,查看系统内部有多少个内核。

cat /boot/grub2/grub.cfg  | grep menuentry

2、参考如下命令,配置从默认内核启动。内核名称根据系统内部查到的实际名称来替换。

grub2-set-default 'CentOS Linux (3.10.0-123.9.3.el7.x86_64) 7 (Core)'

3、执行如下命令,确认配置成功。

grub2-editenv list

方法2

vim /etc/default/grub 
GRUB_DEFAULT=xx
grub2-mkconfig > /boot/grub2/grub.cfg

CentOS 8 系统更改内核启动顺序方法:

CentOS 8系统与centos 7有一些变化

1、执行下述命令查看默认内核

grubby --default-kernel

执行下述命令查看所有内核

grubby --info=ALL

2、设置需要设置的启动的默认的内核

grubby --set-default /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64

ubuntu系统切换内核启动顺序方法:

1、 查看当前内核的启动顺序

cat /boot/grub/grub.cfg |grep menuentry

2、修改grub文件

假设要修改为3.13.0-166内核启动, 修改文件/etc/default/grub

vim /etc/default/grub
GRUB_DEFAULT=0 修改为
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-166-generic"

更新修改后的grub后执行下

update-grub

在CentOS中,grub2-set-default命令用于设置默认的引导项,而update-grubgrub2-mkconfig通常是与GRUB引导配置文件相关的命令,用于重新生成GRUB引导配置文件。这两个命令的作用是不同的。

当你运行grub2-set-default时,它只改变默认的引导项,而不涉及配置文件的更改。这意味着你不需要运行update-grubgrub2-mkconfig来生效,因为默认引导项的更改是即时生效的。

相反,当你进行了引导配置文件的更改,例如添加新的内核选项或自定义菜单项时,你需要运行update-grubgrub2-mkconfig来重新生成引导配置文件,以确保新的配置生效。这通常是在升级内核或进行其他引导配置更改后需要执行的操作。

所以,grub2-set-defaultupdate-grub(或grub2-mkconfig)有不同的目的和用法。前者用于更改默认引导项,后者用于管理引导配置文件。


具体来说,grub2-mkconfig 做以下事情:

  1. 收集系统上已安装内核和其他操作系统的信息。
  2. 生成引导菜单的配置项,将这些信息添加到 grub.cfg 中。
  3. 创建菜单项,其中包括各个操作系统内核、引导参数和启动项。
  4. 根据 /etc/default/grub 文件中的设置以及其他配置文件中的选项,为 GRUB 引导菜单指定默认启动项、超时等设置。
  5. 生成一个可供 GRUB 使用的配置文件。