Ubuntu 20.04中shim-signed更新失败问题求助
Ubuntu 20.04中shim-signed更新失败问题求助
嘿,我之前折腾GCP VM自动化部署时刚好踩过这个坑,太懂这种自动化脚本突然卡在交互步骤的崩溃感了!给你几个能解决问题的办法,都是适配自动化场景不用手动干预的:
先给你理清楚问题根源
你用快照创建新磁盘替换旧盘后,新磁盘的唯一标识符(UUID)和原来的不一样了,GRUB引导记录里的旧配置对应不上新磁盘,所以shim-signed在更新时会触发引导设备的检查,弹出选择框,而你的自动化脚本没人手动选择,就直接卡住了。
具体解决办法
从根源修复GRUB引导配置(推荐)
在你替换磁盘完成后、执行apt升级前,先把GRUB的引导记录更新到新磁盘上:- 如果是直接替换了VM的系统盘,重启后VM已经用新磁盘启动的话,直接在系统里执行下面的命令就行;如果新磁盘还没挂载,先挂载相关分区并chroot进去
- 执行
grub-install /dev/sda(GCP的VM系统盘通常都是/dev/sda,对应你的PersistentDisk) - 再更新GRUB的配置文件:
update-grub
完成这两步后再跑apt-get -y upgrade,shim-signed就不会再弹出那个选择框了。
用debconf预设选择,跳过交互
如果你不想改动GRUB的配置,也可以直接给debconf提前设置好要选择的引导设备,让apt升级自动完成:- 先执行这条命令预设选择:
echo "shim-signed grub2/update_grub_devices string /dev/sda" | debconf-set-selections - 然后再正常执行升级:
apt-get -y upgrade
这样shim-signed更新时就会自动选择正确的引导设备,不会卡住脚本。
- 先执行这条命令预设选择:
用GCP自定义镜像优化长期流程
如果你经常需要做这种快照恢复的操作,可以把修复好引导配置的系统做成GCP自定义镜像,以后直接用这个镜像创建VM或者磁盘,就不用每次都处理shim-signed的问题了,一劳永逸。
备注:内容来源于stack exchange,提问作者jaafar Nasrallah
相关产品推荐
相关产品推荐

