EC2的GRUB引导程序问题

EC2死机,ssh无法连接。在管理控制台中重启,起不来了,从监控界面中可以看到界面。

[2J[01;01H[=3h[2J[01;01H[2J[01;01H[=3h[2J[01;01H[2J[01;01H[=3h[2J[01;01H[0m[35m[40m[2J[01;01H[=3h[2J[01;01H[0m[37m[40m[0m[30m[40m[2J[01;01H[0m[37m[40m[02;30HGNU GRUB version 2.12

Minimal BASH-like line editing is supported. For the first word, TAB

lists possible command completions. Anywhere else TAB lists possible

device or file completions. To enable less(1)-like paging, "set

pager=1".

系统卡在了 GRUB 命令行界面,意味着 GRUB 引导程序无法找到或加载其配置文件(grub.cfg),因此无法继续启动操作系统。

发起case找客服不知道什么时候可以联系上,现在有了AI,还是尝试自己解决。

使用EC2控制台,串口连接,进入了gure界面:
1.查看磁盘分区

grub>ls

(hd0) (hd0,gpt1) (hd0,gpt2)(hd0,gpt3).....

2.找到/boot 目录或内核文件的分区

一个个试,终于找到了(hd0,gpt3)带了boot目录

grub>ls (hd0,gpt3)/boot/

./ ../ bin/ boot/ dev/ etc/ home/ lib/ lib64/ mnt/ opt/ proc/ root/ run/ sbin/

selinux/ srv/ sys/ tmp/ usr/ var/ config.partids

3.设置根分区

grub>set root=(hd0,gpt3)

4.查找内核文件

grub>ls /boot/

.vmlinuz-6.4.0-150700.53.31-default.hmac System.map-6.4.0-150700.53.31-default

config-6.4.0-150700.53.31-default initrd-6.4.0-150700.53.31-default mbrid

symvers-6.4.0-150700.53.31-default.gz sysctl.conf-6.4.0-150700.53.31-default

vmlinux-6.4.0-150700.53.31-default.gz vmlinuz-6.4.0-150700.53.31-default

这个里面vmlinuz-6.4.0-150700.53.31-default是内核文件,内核版本是 6.4.0-150700.53.31-default

5.加载内核

grub>linux /boot/vmlinuz-6.4.0-150700.53.31-default root=/dev/???? ro

这里到底用哪个磁盘名称呢?我在EC2控制台中看到的设备名称是sda1,但是AI建议我不能用这个,我觉得不确定,所以试试用UUID

grub>cat /etc/fstab

LABEL=ROOT / xfs defaults

0 1-150700.53.31-default.hmac System.map-6.4.0-150700.53.31-default

LABEL=EFI /boot/efi vfat defaults

0 0150700.53.31-default.gz sysctl.conf-6.4.0-150700.53.31-default

UUID=a38ec4c0-0f8a-4ca2-b0f0-15abca47f07c /ek/log xfs defaults

0 0

UUID=5d0dd0a6-31a8-48dc-9620-75d5138f57f9 BLOCK_SIZE=4096 TYPE=xfs PARTLABEL

=primary 0 0

UUID=3388468c-3a14-4c40-bad3-d3b4028390a7 /ek/shared xfs defaults

0 0

UUID=150fcad5-43d3-4d86-afac-aef89565e178 /ek/data xfs defaults

不过AI建议我用LABEL,听它的。

grub>linux /boot/vmlinuz-6.4.0-150700.53.31-default root=LABEL=ROOT ro

6.启动

grub>boot

看到串口界面没有任何反应,Grub中输入任何都无反应,敲回车也无用。但是看到EC2控制台中机器在正常启动,后面用ssh可以连接了。

7.重新生成 GRUB 配置文件

ec2-user@ekdb01:~>sudo grub2-install /dev/sda

ec2-user@ekdb01:~> sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-6.4.0-150700.53.31-default

Found initrd image: /boot/initrd-6.4.0-150700.53.31-default

Warning: os-prober will not be executed to detect other bootable partitions.

Systems on them will not be added to the GRUB boot configuration.

Check GRUB_DISABLE_OS_PROBER documentation entry.

Adding boot menu entry for UEFI Firmware Settings ...

done

8.重新启动服务器

ec2-user@ekdb01:~>sudo reboot

原以为问题解决,结果重启后,系统又回到了grub界面了,进不了Linux系统。

9.重新修复

grub>set root=(hd0,gpt3)

grub>linux /boot/vmlinuz-6.4.0-150700.53.31-default root=LABEL=ROOT ro

grub>initrd /boot/initrd-6.4.0-150700.53.31-default

grub>boot

完成启动后,ssh可以连接服务器。

一直怀疑问题还是在磁盘标识上,这次用lsblk查看到的标识。

ec2-user@ekdb01:~>lsblk

nvme1n1 259:2 0 100G 0 disk

├─nvme1n1p1 259:7 0 2M 0 part

├─nvme1n1p2 259:8 0 20M 0 part /boot/efi

└─nvme1n1p3 259:9 0 100G 0 part /

ec2-user@ekdb01:~> sudo grub2-install /dev/nvme1n1

Installing for x86_64-efi platform.

Installation finished. No error reported.

ec2-user@ekdb01:~> sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-6.4.0-150700.53.31-default

Found initrd image: /boot/initrd-6.4.0-150700.53.31-default

Warning: os-prober will not be executed to detect other bootable partitions.

Systems on them will not be added to the GRUB boot configuration.

Check GRUB_DISABLE_OS_PROBER documentation entry.

Adding boot menu entry for UEFI Firmware Settings ...

done

10.重启服务器验证

ec2-user@ekdb01:~>sudo reboot

看到了系统一直忙碌,屏幕日志滚动飞快,一会儿系统成功启动。再重启一次还是能正常启动,不再卡grub界面,看来系统正常了。

相关推荐
哥布林学者11 小时前
深度学习进阶(三十一)FlashAttention:IO 感知的精确注意力
机器学习·ai
岳小哥AI19 小时前
AI大模型"幻觉"从何而来?解密GPT-4、DeepSeek一本正经胡说八道的真相
ai·ai基础
JaguarJack1 天前
Openai Codex 重大更新 已支持接入任意开源大模型
ai·openai·codex
Artech2 天前
[MAF预定义的AIContextProvider-02]AgentSkillsProvider——将Agent Skills引入MAF
ai·c#·agent·agent skills·maf
岳小哥AI2 天前
读懂计算机视觉CV、语言感知(ASR/TTS)、多模态,就能理解AI是如何“看到”与“听到”世界的
ai·ai基础
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
施小赞2 天前
普通 RAG vs GraphRAG 核心对比
人工智能·ai
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信