Ubuntu 22.04启动时卡在GRUB菜单,无法从指定分区启动求助
Ubuntu 22.04启动时卡在GRUB菜单,无法从指定分区启动求助
嘿,我懂你现在卡在GRUB命令行的头疼——别担心,咱们一步步来搞定这个启动问题,不仅能临时启动系统,还能彻底修复GRUB避免下次再踩坑!
第一步:确认目标分区确实是Ubuntu根分区
在GRUB的命令提示符下,先输入以下命令验证:
ls (hd2,gpt5)/
如果输出里能看到bin、etc、boot这些Ubuntu根目录的标志性文件夹,说明这个分区就是你要找的根分区,没问题。
第二步:确定分区对应的真实设备名(或用UUID更稳妥)
GRUB里的(hd2,gpt5)对应系统里的/dev/sdc5——因为GRUB里的hd0对应/dev/sda,hd1对应/dev/sdb,以此类推,hd2就是/dev/sdc,gpt5是第5个GPT分区,所以组合起来就是/dev/sdc5。
不过推荐用UUID(不会因为磁盘顺序变化而失效),在GRUB里输入:
ls -l (hd2,gpt5)
输出里会显示类似UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx的内容,把这个UUID记下来。
第三步:手动加载内核和initramfs并启动
- 先设置GRUB的root指向目标分区:
set root=(hd2,gpt5)
- 查看boot目录里的内核和initramfs文件(替换成你实际看到的版本号):
ls (hd2,gpt5)/boot/
你会看到类似vmlinuz-5.15.0-78-generic和initrd.img-5.15.0-78-generic的文件,把这个版本号记好。
3. 加载内核(二选一即可,优先选UUID写法):
- 设备名写法:
linux /boot/vmlinuz-5.15.0-78-generic root=/dev/sdc5 rw
- UUID写法(把xxxx换成你刚才记的UUID):
linux /boot/vmlinuz-5.15.0-78-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw
- 加载initramfs文件:
initrd /boot/initrd.img-5.15.0-78-generic
- 最后启动系统:
boot
回车之后,系统应该就能正常启动了!
第四步:启动后彻底修复GRUB,避免下次再卡
进入Ubuntu系统后,打开终端,运行以下命令修复GRUB:
- 更新GRUB配置:
sudo update-grub
- 重新安装GRUB到磁盘(注意:这里的
/dev/sdc是对应GRUB里的hd2,也就是你的Ubuntu所在磁盘,不要加分区号!):
sudo grub-install /dev/sdc
执行完这两步,下次重启就会正常进入GRUB菜单,不用再手动输入命令啦。
备注:内容来源于stack exchange,提问作者John Miller
相关产品推荐
相关产品推荐

