centos7 如何自动选择第一个内核?

2019-04-13 20:46:00 +08:00
 kentxxq
真的是搜了一大堆的 grub2 资料了,没有解决。。。
4491 次点击
所在节点    Linux
20 条回复
tozp
2019-04-13 20:49:38 +08:00
记不太清了,好多年前玩的,改 /boot/grub2 里面的配置就行了,能自定义启动菜单
kentxxq
2019-04-13 20:52:36 +08:00
@tozp 我看了 /boot/grub2/grub.cfg 文件,里面写着不要修改。
貌似是用 /etc/default/grub 配合 grub2-mkconfig 来生成。

但是我改了好多遍,都没效果
hahahe
2019-04-13 20:53:34 +08:00
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0
kentxxq
2019-04-13 21:03:24 +08:00
@hahahe 跑了一下,不行。。

我之前的操作是
/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
mikeguan
2019-04-13 21:10:05 +08:00
grub 目录下面有个 env 文件 改这个文件
HEROic
2019-04-13 21:29:57 +08:00
现在问题是? grup 倒计时之后不进入内核引导,还是你要选择某个内核为默认内核?
kentxxq
2019-04-13 21:36:42 +08:00
@HEROic 没有倒计时出现!
kentxxq
2019-04-13 21:39:40 +08:00
@HEROic 我装好 centos7 以后,update 了一下。
开机 2 个选择:
1.centos linux 3.10.0xxxxxxxx
2.centos linux 0-rescue-xxxxxxx

我必须手动选第一个,否则一直卡在这
kentxxq
2019-04-13 21:44:10 +08:00
还有一个,我不知道 efi 是什么东西。。可能有影响?我在看相关的资料中。。
Firxiao
2019-04-13 22:04:05 +08:00
#vim /etc/default/grub
GRUB_DEFAULT="xxxxxx"
# grub2-mkconfig --output=/boot/grub2/grub.cfg


很早之前的记录 应该没有变 你试下看
https://my.oschina.net/firxiao/blog/465691
jiqing
2019-04-13 22:11:10 +08:00
战略性马克
omph
2019-04-13 22:29:13 +08:00
[How to change default boot kernel permanently or temporarily on CentOS]( http://ask.xmodulo.com/change-default-boot-kernel-centos.html)
AllenHua
2019-04-13 22:59:40 +08:00
准备说和 3 楼一样的。
1、egrep ^menuentry /etc/grub2.cfg |cut -f 2 -d \’
2、grub2-set-default 0
3、reboot
HEROic
2019-04-14 00:03:05 +08:00
@kentxxq 试试找下

if [ x$feature_timeout_style = xy ] ; then set timeout_style=menu set timeout=2

类似 timeout 字样,修改一下
Nitroethane
2019-04-14 02:19:48 +08:00
@kentxxq 一直卡在 grub 选择内核界面应该是 timeout 的锅吧。配置文件里设置一下 timeout 的值应该就可以了
sholmesian
2019-04-14 08:42:43 +08:00
adadada
2019-04-14 10:30:15 +08:00
把 /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
kentxxq
2019-04-14 18:57:38 +08:00
@adadada 的确设置成 0 以后直接跳过了选择,开始进入默认的第一个内核了!
liuxu
2019-04-15 09:51:47 +08:00
现在看看安装的内核在 grub2.cfg 的什么位置上:

[root@liuquanhao ~]# 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 位为默认启动内核:

[root@liuquanhao ~]# grub2-set-default 0
内核设置好后就可以重启系统了:

[root@liuquanhao ~]# reboot



来源: https://www.liuquanhao.com/memory/2018/10/20/Centos7%E5%BC%80%E5%90%AFbbr.html
kentxxq
2019-04-15 15:40:19 +08:00
重装了几十次以后,总结一下问题

是用 rufus 制作的 u 盘启动盘。用的 centos7.6 版本的 iso

在安装前,选择引导设备的时候
1. uefi:usb
2. usb
3. ssd

选择第一个来安装
分区情况如下
/boot
/boot/efi
/
swap
我尝试了你们所有的方法,都没能成功。

@adadada 只能通过把 5 改成 0,grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 取消内核的选择。

选择第二个来安装,应该也就是 bios 方式
分区情况如下
/boot
/
swap
运行正常,grub2-mkconfig -o /boot/grub2/grub.cfg 所有改动的参数也能生效。


实在折腾不动了。。就这样用吧。

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/554879

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX