内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
rhinolt
帖子: 83
注册时间: 2017-01-03 19:08
系统: RHEL7

内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

#1

帖子 rhinolt » 2020-09-06 23:09

情况是这样的,几年前在本机上装了WIN10(弃用)、ubuntu 16.04.4(也忘了)、centos7(跑了2年)
然后因为docker使用问题升级了内核,完成后:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.4.235-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.12.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-4fbc13c077274eb389c062851ff570b5) 7 (Core)
操作了
1.grub2-set-default 0
2.grub2-mkconfig -o /boot/grub2/grub.cfg
3.reboot now

但是发现重启后仍然进入的是内核升级前的 CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core),原来是EFI内容没变,菜单也不是上述0-3的内容
现在如何在centos 3.10.0运行下,更改(添加)EFI启动指向?
/boot/efi/EFI:
QQ截图20200906231746.jpg
/boot:
QQ截图20200906231837.jpg
funicorn
帖子: 1318
注册时间: 2005-09-13 4:56
系统: Ubuntu Jammy Jellyfi

Re: 内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

#2

帖子 funicorn » 2020-09-06 23:52

1. df 查看系统运行时是否挂载了efi分区,如果没有,手动挂载上
2. upgrade-grub2,看输出结果
rhinolt
帖子: 83
注册时间: 2017-01-03 19:08
系统: RHEL7

Re: 内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

#3

帖子 rhinolt » 2020-09-07 0:19

funicorn 写了: 2020-09-06 23:52 1. df 查看系统运行时是否挂载了efi分区,如果没有,手动挂载上
2. upgrade-grub2,看输出结果
点赞
但是进阶问一下,这样操作以前的ubuntu、win10的efi记录就没了,假如要恢复,怎么操作
funicorn
帖子: 1318
注册时间: 2005-09-13 4:56
系统: Ubuntu Jammy Jellyfi

Re: 内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

#4

帖子 funicorn » 2020-09-07 1:40

update-grub会自动遍历efi分区上的.efi驱动文件,正常是不会没有的。如果确实没有了,说明原先的ubuntu和win10不是以uefi方式引导的。

但是,update-grub同时也会自动遍历legacy方式的磁盘或分区引导信息,如果没有找到,说明原先的ubuntu和win10的引导信息已经丢失了。

对于ubuntu,可以进入系统重新安装grub解决。对于win10,可以通过grub2手动加载.efi驱动(哪怕efi分区里的驱动没有了,win10系统分区里还有),然后在win10的高级启动功能里修复引导。grub2手动命令类似这样:

insmod ntfs
set root=(hdX,gptX)
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
boot

如果分区表是msdos格式的,gpt改为msdos。
头像
qy117121
论坛版主
帖子: 50546
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

#5

帖子 qy117121 » 2020-09-07 12:16

UEFI 又不管引导哪个内核,他只是引导启动grub2 , 至于grub2 启动菜单里的选项是grub.cfg的事
我看你这/boot 下面,有grub 和grub2 ,我很怀疑, 启动菜单选择内核那里的并不是grub2下面的grub.cfg

你看看/boot/grub/下面有没有grub.cfg ,有的话有几个内核选项
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
头像
qy117121
论坛版主
帖子: 50546
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

#6

帖子 qy117121 » 2020-09-07 12:28

rhinolt 写了: 2020-09-06 23:09 然后因为docker使用问题升级了内核,完成后:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.4.235-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.12.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-4fbc13c077274eb389c062851ff570b5) 7 (Core)
?? 为什么是/etc/grub2.cfg ?

rhinolt 写了: 2020-09-06 23:09 1.grub2-set-default 0
2.grub2-mkconfig -o /boot/grub2/grub.cfg
3.reboot now
/boot/grub2/grub.cfg 里有新安装的4.10内核的条目吗?
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
rhinolt
帖子: 83
注册时间: 2017-01-03 19:08
系统: RHEL7

Re: 内核升级完了才发现…情况比较复杂,GRUB2没写入EFI?

#7

帖子 rhinolt » 2020-09-07 15:23

qy117121 写了: 2020-09-07 12:28
rhinolt 写了: 2020-09-06 23:09 然后因为docker使用问题升级了内核,完成后:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.4.235-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.12.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-4fbc13c077274eb389c062851ff570b5) 7 (Core)
?? 为什么是/etc/grub2.cfg ?

rhinolt 写了: 2020-09-06 23:09 1.grub2-set-default 0
2.grub2-mkconfig -o /boot/grub2/grub.cfg
3.reboot now
/boot/grub2/grub.cfg 里有新安装的4.10内核的条目吗?
是的,升级完的内核启动项在 /boot/grub2/grub.cfg
回复