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

相关推荐
wanhengidc6 小时前
服务器租用有何优点
运维·服务器·安全·web安全
笨蛋©6 小时前
2026年质量管理指南:泡泡图(Bubble Drawing)与自动化检验计划实战
ai·数字化·cad·质量管理·制造业
ZGi.ai6 小时前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
艾莉丝努力练剑6 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约6 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行
wkd_0077 小时前
Ubuntu 22.04 Samba 连接故障排查记:从“用户名或密码错误”到 NTLM 版本不兼容
linux·运维·ubuntu
企服AI产品测评局7 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化
mixboot8 小时前
Linux 进程工作目录查看利器:pwdx 命令详解
linux·运维·服务器
盖小雅8 小时前
自动化排班如何破解劳动法合规难题:从规则冲突到可追溯的排班表
大数据·运维·机器学习·自动化
NiceCloud喜云9 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书