静看光阴荏苒
不管不顾不问不说也不念

龟壳降配及彻底修复引导丢失的问题

前几天龟壳发邮件说让降配到2C12G,不然就删鸡了。。我登上去找半天才找到降配的页面:

把这里改成2和12:

保存之后小鸡会重新引导,然后不出意外就要出意外了,因为我是私自安装的Debian系统,所以又遇到了之前GRUB引导丢失的问题了:龟壳ARM Debian11 UEFI GRUB启动项丢失修复,如果按照我之前这篇文章的步骤操作,只能暂时修复,如果龟壳哪天又维护,估计引导又丢了。

我这回仔细研究了一下,发现是龟壳维护后以及某些场景下会重置小鸡的NVRAM(UEFI的非易失性存储),Debian在默认情况下又不会将GRUB安装到UEFI的fallback路径,这就导致找不到引导最终进入EFI shell。解决办法其实很简单,重新安装GRUB的时候带上--removable参数即可:

grub-install --target=arm64-efi --efi-directory=/boot/efi --bootloader-id=debian --removable

这会在/boot/efi/EFI/BOOT/目录下生成BOOTAA64.EFI文件:

/EFI/BOOT/BOOTAA64.EFI是UEFI规范中的默认路径,这样即便NVRAM被重置,系统也能自动识别并开机。

还有一个需要注意的地方:Debian自身的系统更新,如果Debian更新了grub-efi软件包,系统可能会重新运行默认的grub-install,从而只更新/EFI/debian而忘记更新/EFI/BOOT,最好运行以下命令重新配置grub-efi:

dpkg-reconfigure grub-efi-arm64

前面弹出配置内核参数的界面都保持默认直接回车就好了,在下面这两个界面选择Yes:

配置完成后,以后无论是龟壳维护,还是你自己运行apt full-upgrade升级系统内核与GRUB,系统都会自动保证/EFI/BOOT里的兜底文件是最新的。

另外现在创建控制台连接也不用那么麻烦了,可以直接用龟壳的Cloud Shell:

如果小鸡引导丢了,此时在Cloud Shell敲一个回车就能看到EFI shell了,然后输入exit还是quit我忘了= =,即可看到小鸡的BIOS界面:

然后按照之前文章里面的步骤从Boot维护管理里面的Boot From File先把机子启动再重新安装GRUB即可。

赞(0)
未经允许不得转载:荒岛 » 龟壳降配及彻底修复引导丢失的问题
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿