一次休眠导致的 Linux 启动项丢失

最近更新 Arch Linux 的时候,我一次想要重新开机时,却发现 systemd-boot 的启动项没了。一开始,我以为是配置文件被更新删除了,但在我进入系统之后却发现了意想不到的情况。

我的系统在内核更新到一半的时候正好休眠了!正好卡在老的内核镜像文件已经删除,新的内核还未安装的那个节骨眼上。这个系统的待机是有问题的,所以配置成自动进行休眠,但是却没想到正好卡在了更新内核的那个时刻休眠了。休眠尽管会把内存的状态写入到硬盘当中,但是下次再次启动的时候,仍然需要一个内核初始化之后才能进行休眠恢复的操作。

这个不得不说是非常巧合的一个情况。这下我也深刻理解了 Windows 下系统更新时常见的一个提示「正在配置更新,请勿关闭您的计算机」到底有何用意。

对于 Arch Linux 这种不保留老内核的更新方式来说,还是更新之后尽快重启比较好,因为从不同版本的内核恢复也会导致问题。

This entry was posted in Linux. Bookmark the permalink.

3 Responses to 一次休眠导致的 Linux 启动项丢失

  1. Karuboniru says:
    Firefox 113.0 GNU/Linux x64

    看描述大概是用 systemd-inhibit 能解决的 corner case,有没有可能要么在 pacman 内部或者处理内核更新期间用 systemd-inhibit 阻止休眠?

  2. tomJakson says:
    Firefox 113.0 GNU/Linux x64

    准备一个备用的 linux-lts 可以避免这类问题嘛

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.