通过swap分区进行休眠,首先通过blkid命令找到swap分区对应的uuid 然后通过grub修改内核启动参数

1
vim /etc/default/grub

修改GRUB_CMDLINE_LINUX_DEFAULT,添加resume字段:

1
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet resume=UUID=aa0818ea-d9d6-4b52-9818-9d7f54346e38"

完成后更新grub

1
sudo grub-mkconfig -o /boot/grub/grub.cfg

修改初始化内存盘镜像的hook扩展配置

1
sudo vim /etc/mkinitcpio.conf

添加resume的hook,注意一定要放到udev后面

1
2
3
4
# 添加前
HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
# 添加后
HOOKS=(base udev autodetect modconf block filesystems keyboard resume fsck)

完成后重新生成初始化内存盘镜像

1
sudo mkinitcpio -p linux

测试休眠

1
systemctl hibernate

参考阅读:

  1. mkinitcpio (简体中文) - ArchWiki
  2. Kernel parameters (简体中文) - ArchWiki
  3. Power management/Suspend and hibernate - ArchWiki