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

相关推荐
MicrosoftReactor8 小时前
技术速递|Canvas 如何让 Agentic Workflow 更可见、可控、更高效
ai·agent·canvas
前沿在线8 小时前
百度文心助手推出任务引擎 2.0,日活用户同比增长 83%,日均对话轮次增长超 2 倍
人工智能·ai·大模型
JoyCong19989 小时前
ToDesk个人版、专业版、游戏版、设计版、性能版、团队版权益介绍
大数据·运维·游戏·远程工作·远程操作
Elastic 中国社区官方博客11 小时前
ES95:面向 Elasticsearch 时间序列指标的自适应压缩
大数据·运维·elasticsearch·搜索引擎·架构·全文检索
mqiqe12 小时前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络
mennekes12 小时前
数据中心安全配电设备如何选择?
运维·人工智能·科技·安全·制造
张忠琳12 小时前
【deepseek-harness】DeepSeek Harness (dsh) 系统级架构分析之二
ai·agent·deepseek·harness
DevOps老兵13 小时前
AI全栈知识07:向量数据库 - Milvus/Chroma实战
数据库·ai·milvus
开始学AI13 小时前
Codex2API Docker 使用宿主机代理:OAuth Token 兑换 403 问题排查与解决方案
运维·docker·容器