新的 Linux 桌面用户请点击此处。
我使用默认的小交换分区安装了 Debian 12,但休眠功能无法正常工作,因此我遵循了以下指南:
我有 16GB 的 RAM,创建了一个 24GB 的交换文件并禁用了交换分区,但现在该Hibernate
按钮从 KDE 的“应用程序启动器”中消失了,并且运行sudo systemctl hibernate
返回Call to Hibernate failed: Not enough swap space for hibernation
。
这是我的系统的状态:
> sudo swapon --show
NAME TYPE SIZE USED PRIO
/home/user/swap file 24G 0B 10
> cat /proc/swaps
Filename Type Size Used Priority
/home/user/swap file 25165820 0 10
> free -m
total used free shared buff/cache available
Mem: 15908 4709 5692 139 5980 11198
Swap: 24575 0 24575
> cat /etc/fstab
#...
/home/user/swap swap swap pri=10 0 0
#...
> ls ~ -l
...
-rw------- 1 root root 25769803776 Jan 16 19:33 swap
...
> findmnt -no UUID -T /home/user/swap
76e6bab2-1c86-4abe-841e-7ad0a3ba778c
> sudo filefrag -v /home/user/swap|awk 'NR==4{gsub(/\./,"");print $4;}'
62373888
> cat /etc/initramfs-tools/conf.d/resume
RESUME=UUID=76e6bab2-1c86-4abe-841e-7ad0a3ba778c resume_offset=62373888
> cat /etc/default/grub
#...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=76e6bab2-1c86-4abe-841e-7ad0a3ba778c resume_offset=62373888"
#...
> update-grub
> update-initramfs -k all -u
我正在尝试配置休眠,因为睡眠超过一个小时时出现一些问题,可能是 PSU 问题。安全启动已禁用。
答案1
Debian Jessie 中的挂起和休眠配置
只要您有足够大的交换分区来容纳系统映像,您就可以立即使用休眠功能(即使没有 uswsusp)。
标准实践
- Linux 交换分区类型必须是 83
- 我经常看到的计算交换大小的公式是 RAM 大小的两倍。
我假设您的休眠映像不会占用 24GB,但我从未见过有人尝试休眠到用户主目录。为了解决这个问题,我会使用图形分区工具,例如格帕特,并通过调整现有分区的大小、创建或调整类型 83 的分区的大小以及重新分配新的 UUID 并更新fstab
和 GRUB 2 来为实际交换分区腾出空间。