系統: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 (簡體中文)