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界面,看来系统正常了。

相关推荐
知已难寻21 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
秋饼1 天前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
进击的雷神1 天前
我用 second-brain-skills 把 Claude Code 升级成了“第二大脑”:PPT、品牌手册、SOP 一人搞定
ai·claude·ppt·sop
Alluxio1 天前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
wflynn1 天前
Genie 4新增原生音频,实时世界模型加入声音生成
ai·技术
Sayai1 天前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
吴名氏.1 天前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent
效率工作实验室1 天前
企业级AI Agent平台评测:核心指标、能力对比与选型路径
ai·企业级ai·agent选型·agent平台评测·agent平台对比
Elastic 中国社区官方博客1 天前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜1 天前
Docker Volume -- 管理卷Volume详解
运维·docker·容器