我有带有全盘加密的 Void Linux 设置。我的带有内核和加密密钥的启动分区位于美元驱动器上。一切工作正常,直到我将笔记本电脑转入睡眠模式,我的睡眠按钮 ACPI 处理程序脚本是:
button/sleep)
case "$2" in
SBTN|SLPB)
# suspend-to-ram
logger "Sleep Button pressed: $2, suspending..."
sleep 0.5
zzz
;;
*) logger "ACPI action undefined: $2" ;;
esac
;;
问题是有时睡眠后笔记本电脑无法唤醒并显示黑屏。重新启动后,它找不到带有启动分区的 USB 驱动器。要修复它,我需要插入另一个带有 grub 的启动 USB,在 grub 中找到第一个启动驱动器并从第一个驱动器手动启动。然后我重新配置内核以重新安装引导加载程序:
sudo xbps-reconfigure --force linux6.2-6.2.13_1
之后它工作正常。如果不重新配置内核,问题将在下次启动时出现,并且笔记本电脑将无法再次找到启动分区。
我怀疑睡眠模式可以从 EFI 启动管理器中删除该驱动器,因为当我检查efibootmgr
输出时,我没有在这里找到我的 USB 驱动器。
我不经常看到这个问题,大约每 10 次睡眠就会出现一次。睡眠时间长短并不重要:笔记本电脑可以在睡眠模式下暂停一天并正常唤醒,但睡眠 10 分钟后可能会崩溃。
我该如何解决这个睡眠问题?