Archlinux 设置休眠到swap文件
系统:Archlinux
内核:Kernel: 5.13.10-arch1-1
桌面:KDE
引导:grub
查看内存和交换分区大小
free -m #默认单位为k, -m 单位为M
请先自行设置并创建交换分区文件
dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress #创建8G的交换空间 大小根据需要自定
chmod 600 /swapfile #设置正确的权限
mkswap /swapfile #格式化swap文件
swapon /swapfile #启用swap文件
在/ect/fstab中追加swap文件
/swapfile none swap defaults 0 0
[选] 修改swapfile大小,改完需要重新设置grub
sudo swapoff /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=32768 status=progress #创建32G的交换空间
sudo mkswap /swapfile
sudo swapon /swapfile
设置grub
获取resume
先进入到swap文件所在目录,执行
findmnt -no UUID -T /swapfile
得到以下返回内容
b793f058-d9f2-4657-9114-efba050c17e7
获取resume_offset
filefrag -v /swapfile | awk '{ if($1=="0:"){print substr($4, 1, length($4)-2)} }'
得到以下返回信息
4288512
随后编辑grub配置文件
nano /etc/default/grub
将以下内容添加到GRUB_CMDLINE_LINUX_DEFAULT= ""中
resume=UUID=b793f058-d9f2-4657-9114-efba050c17e7 resume_offset=4288512 quiet
注意将uuid和resume_offset的值修改为你获取到的值
随后重新生成grub配置
grub-mkconfig -o /boot/grub/grub.cfg
设置 Kernel Module
nano /etc/mkinitcpio.conf
将resume添加到hooks中,找到以下代码
HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
修改为
HOOKS=(base udev resume autodetect modconf block filesystems keyboard fsck)
随后重新生成镜像即可
mkinitcpio -P linux
参考文献:
[1] Power management (简体中文)/Suspend and hibernate (简体中文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通