技术解析

centos7 如何自动选择第一个内核?
0
2021-06-21 04:08:23
idczone
真的是搜了一大堆的 grub2 资料了,没有解决。。。
记不太清了,好多年前玩的,改 /boot/grub2 里面的配置就行了,能自定义启动菜单

我看了 /boot/grub2/grub.cfg 文件,里面写着不要修改。
貌似是用 /etc/default/grub 配合 grub2-mkconfig 来生成。
但是我改了好多遍,都没效果

egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0

跑了一下,不行。。
我之前的操作是
/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 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap"
GRUB_DISABLE_RECOVERY="true"
GRUB_RECORDFAIL_TIME=$GRUB_TIMEOUT
然后 grub2-mkconfig -o /boot/grub2/grub.cfg

grub 目录下面有个 env 文件 改这个文件

现在问题是? grup 倒计时之后不进入内核引导,还是你要选择某个内核为默认内核?

没有倒计时出现!

我装好 centos7 以后,update 了一下。
开机 2 个选择:
1.centos linux 3.10.0xxxxxxxx
2.centos linux 0-rescue-xxxxxxx
我必须手动选第一个,否则一直卡在这

还有一个,我不知道 efi 是什么东西。。可能有影响?我在看相关的资料中。。

/etc/default/grub
GRUB_DEFAULT="xxxxxx"
grub2-mkconfig --output=/boot/grub2/grub.cfg

很早之前的记录 应该没有变 你试下看
https://my.oschina.net/firxiao/blog/465691

战略性马克

[How to change default boot kernel permanently or temporarily on CentOS]( http://ask.xmodulo.com/change-default-boot-kernel-centos.html)

准备说和 3 楼一样的。
1、egrep ^menuentry /etc/grub2.cfg |cut -f 2 -d \’
2、grub2-set-default 0
3、reboot

试试找下
if [ x$feature_timeout_style = xy ] ; then set timeout_style=menu set timeout=2
类似 timeout 字样,修改一下

一直卡在 grub 选择内核界面应该是 timeout 的锅吧。配置文件里设置一下 timeout 的值应该就可以了

grub2-set-default 1

https://holmesian.org/centos-7-config#修改启动内核

把 /etc/default/grub 里的 TIMEOUT 改成 0,然后再执行命令 grub2-mkconfig -o /boot/grub2/grub.cfg (如果你的 centos 走的是 EFI 启动,执行命令 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg) 重新生成 grub 配置文件。
CentOS wiki 上有一个简单的 grub2 页面: https://wiki.centos.org/HowTos/Grub2
grub2 自己的文档在: https://www.gnu.org/software/grub/manual/grub/grub.html

的确设置成 0 以后直接跳过了选择,开始进入默认的第一个内核了!

现在看看安装的内核在 grub2.cfg 的什么位置上:
[[email&~]egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux (4.18.15-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux 7 Rescue f630cedcce5f4a3cbc5dcb5acf68ddd3 (3.10.0-862.14.4.el7.x86_64)
CentOS Linux (3.10.0-862.14.4.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-00a62363617944e08db8db894ba6145e) 7 (Core)
排在第一行,因为位置是从 0 开始数,所以它排在第 0 位。
现在设置 0 位为默认启动内核:
[[email&~]grub2-set-default 0
内核设置好后就可以重启系统了:
[[email&~]reboot

来源: https://www.liuquanhao.com/memory/2018/10/20/Centos7%E5%BC%80%E5%90%AFbbr.html

重装了几十次以后,总结一下问题
是用 rufus 制作的 u 盘启动盘。用的 centos7.6 版本的 iso
在安装前,选择引导设备的时候
1. uefi:usb
2. usb
3. ssd
选择第一个来安装
分区情况如下
/boot
/boot/efi
/
swap
我尝试了你们所有的方法,都没能成功。
只能通过把 5 改成 0,grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 取消内核的选择。
选择第二个来安装,应该也就是 bios 方式
分区情况如下
/boot
/
swap
运行正常,grub2-mkconfig -o /boot/grub2/grub.cfg 所有改动的参数也能生效。

实在折腾不动了。。就这样用吧。
bios 方式基本够用了。
uefi 貌似有很多的优势。以后弄专门的存储服务器,不在乎升不升级的话,关掉内核选择也无所谓。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服