arch配置swap分区并做休眠设置

原有的swap分区是zram0,但是它的UUID每次启动都会变化,因此不能用来做休眠。
另外分出一块16G的分区格式化为swap。

sudo swapoff -a    # 先关掉当前所有 swap(安全起见)
sudo mkswap /dev/nvme1n1p4
sudo blkid /dev/nvme1n1p4

记下这块swap分区的UUID,写入/etc/fstab,开机自动启用

 UUID=72a4a6d5-4782-4f25-a027-ba90ffb4de1c   none   swap   defaults   0 0

同时把/swap/swap.img注释掉,可以进行测试如下:

sudo swapoff -a
sudo mount -a      # 检查 fstab 有没有语法错误
sudo swapon -a
swapon --show

确保会输出你的swap分区。
配置内核参数,加上resume

sudo nano /etc/default/grub

在下面这里加上resume=UUID=...

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet ..."

保存后更新grub

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

如果你用的是ststemd-boot,编辑/boot/efi/loader/entries/arch.conf(名字可能略有不同,大概长这样):

title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=UUID=... rw quiet loglevel=3

options 这一行最后加上:

options root=UUID=... rw quiet loglevel=3 resume=UUID=72a4a6d5-4782-4f25-a027-ba90ffb4de1c

mkinitcpio 里加 resume hook

sudo nano /etc/mkinitcpio.conf
# 在`udev`后面加上`resume`
HOOKS=(base udev resume autodetect modconf block keyboard filesystems fsck)
# 保存退出,重新生成`initramfs`
sudo mkinitcpio -P
```bash
posted @ 2025-11-15 16:00  Thin_time  阅读(3)  评论(0)    收藏  举报