Ubuntu Server 20.04启动报GRUB 'invalid environment block'错误且GRUB更新失败求助
Ubuntu Server 20.04启动报GRUB 'invalid environment block'错误且GRUB更新失败求助
兄弟,你这问题我之前踩过坑!是GRUB环境块损坏引发的连锁故障,给你几个亲测有效的解决步骤:
先搞定核心的GRUB环境块问题
启动时的invalid environment block错误,99%是因为/boot/grub/grubenv这个配置文件损坏了,先修复它:
- 先进入系统:启动时按任意键应该能正常进入系统,如果实在进不去,就用Ubuntu Live镜像(VirtualBox里加载ISO到光驱)启动,挂载你的系统分区到
/mnt,然后执行sudo chroot /mnt进入系统环境 - 先备份坏的文件,留个后手:
sudo cp /boot/grub/grubenv /boot/grub/grubenv.bak - 生成一个干净的GRUB环境文件:
sudo grub-editenv create - 调整文件权限,确保GRUB能正常读写:
sudo chmod 600 /boot/grub/grubenv sudo chown root:root /boot/grub/grubenv - 重新配置GRUB:
sudo update-grub
再解决DPKG的依赖报错
搞定环境文件后,再来处理GRUB包的配置失败问题:
- 先把状态异常的GRUB包强制清理掉:
sudo dpkg --purge --force-depends grub-common grub2-common grub-pc-bin grub-pc - 重新安装完整的GRUB套件:
sudo apt-get install --reinstall grub-common grub2-common grub-pc-bin grub-pc - 最后修复所有依赖问题:
sudo dpkg --configure -a sudo apt --fix-broken install
针对VirtualBox虚拟机的额外排查
因为你用的是VirtualBox的VDI镜像,还有两个细节可以检查:
- 看看虚拟机有没有开快照,如果有快照可能导致磁盘状态异常,试试恢复到最近正常的快照,或者删除快照后再操作
- 把GRUB重新安装到虚拟机的主引导记录(MBR):
注意这里是整个磁盘sudo grub-install /dev/sda/dev/sda,不是具体的分区(比如/dev/sda2)
最后验证
完成所有操作后重启虚拟机,看看启动时的错误提示会不会消失,再跑一次系统更新确认GRUB能正常安装:
sudo apt update && sudo apt upgrade
备注:内容来源于stack exchange,提问作者nightwatch
相关产品推荐
相关产品推荐

