so NVIDIA, f**k you.
美好的一天,从 paru
滚动更新系统开始。
看到了内核 linux-zen
有更新,我还在期待能够解决最近新出现的与 AMDGPU
集显驱动相关的卡死 bug
。
就在新内核已经安装完成,正在 install nvidia dkms
时,系统卡死了…
切tty、键盘灯和 sysrq
都没有响应,这意味着我的 kernel
已经成功死掉了。
而 mkinitcpio
还未完成,意味着我的新 initramfs
初始化内存盘镜像还未生成,系统现在完全不可引导启动。
抱着做好抢救系统的准备,我强制关机并重启了。果然,在 GRUB
引导页面只看到进入 UEFI setting
的入口,linux
和 linux-fallback
引导都不可用。
在群里确认完抢救的注意事项之后,我拿出了我的 archiso
盘,引导进入并开始修复系统。
修复过程
问题出现在了更新内核的过程中卡死,这意味着正常的更新流程并没有完成,也就是上面卡住的 mkinitcpio
及其之后步骤。
那么,只要再次覆盖更新,确保流程顺利完成,对文件系统的更新完备就可以了。
进入 archiso
之后,和安装系统的前几个步骤类似, 禁用Reflector服务 -> 连接网络 -> 同步系统时间 -> 更新系统镜像源 -> 直接完整挂载系统分区 -> arch-chroot 进入系统
。
chroot
进入系统后,这个时候大概率 pacman
的运行占用锁还没有被正确释放,直接删除掉即可解除占用。
|
|
之后查阅 /var/log/pacman.log
,看一下最后一次未完成的更新都更新了哪些软件包,直接都再次覆盖安装一次即可。
|
|
安装后检查确保所有事务均已完成,如果不放心可以再次手动进行一次 mkinitcpio
。
|
|
完成系统覆盖更新并生成 initramfs
之后,和安装系统的后几个步骤,退出chroot -> umount系统分区 -> 重启
。
如果顺利的话,你的系统应该已经恢复正常了,从 GRUB
照常引导进入系统并继续完成你的工作吧~
后记
从群里的吐槽得知, mkinitcpio
在 install nvidia dkms
时卡死并不是什么稀奇事,又慢又危险。
谢谢你 NVIDIA,让我在茶颜悦色花表演了一个小时修系统,不过也倒送了我一篇博客选题。
顺便为了方便下次出事的时候通过 archiso
抢救,还立马搓了一个完成 arch-chroot
前摇的脚本。
或许还可以考虑一下,加入对 boot
的备份,免得未来出了什么不好处理的启动问题被创飞。
...