我已经使用 Windows 几年了。有时我不得不因为断电或旅行而关闭笔记本电脑,休眠功能帮了我大忙。现在切换到 Ubuntu 后,我发现没有休眠功能。我读过一些问题,特别是这个问题。 如何在 Ubuntu 20.04 中启用休眠选项? 现在,在阅读了这个家伙的回答后,他告诉我应该有交换分区而不是交换文件。现在不幸的是,我有交换文件。现在如果我想休眠怎么办和交换文件?
答案1
要在 20.04 中使用 Swapfile 启用休眠模式:
增加swapfile
尺寸以匹配高达 8GB 的 RAM 大小。
检查正在使用的交换:
sudo swapon -s
如果找到交换分区:
sudo swapoff -a sudo nano -Bw /etc/fstab
在交换分区
#
之前添加:UUID
# UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none swap sw 0 0
swapfile
如果不存在,请添加一行:/swapfile none swap sw 0 0
创建
swapfile
:sudo fallocate -l XG /swapfile*
X
其中的大小(以 GB 为单位swapfile
):sudo mkswap /swapfile sudo chmod 0600 /swapfile sudo swapon /swapfile
重启:
sudo reboot
添加resume
位置和偏移量至grub.cfg
:
编辑
/etc/default/grub
:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"
从 root 端使用
UUID
。使用偏移量:
sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'
更新 GRUB:
sudo update-grub
测试休眠:
sudo systemctl hibernate
可以使用 GNOME 扩展添加休眠按钮。
swapfile
请注意,使用 创建时,可能会出现漏洞fallocate
。/var/log/syslog
可以搜索短语swapon: swapfile has holes
以确保不会丢失数据。
也可以使用以下命令创建交换文件dd
:
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
使用时的错误dd
可能会覆盖您的硬盘。
答案2
休眠非常脆弱,需要操作系统和驱动程序的支持,无论是在 Linux 还是 Windows 中。如果系统的任何部分不支持休眠,它就无法工作。最好的情况是,它会禁用它并且不提供选项;最坏的情况是,休眠失败,您最终还是会重新启动,可能是在发现某些设备在唤醒时无法正常工作之后。
您链接的问题中的答案解释了如何使用交换文件进行休眠。但是,您必须满足几个不同的条件才能使其工作,如果其中任何一个条件不满足,它就会失败。
答案3
接着说这回答,就我的情况而言,在使用 grub 之后,它不起作用,所以我添加了一个文件到initramfs 工具配置以下内容:
# write the resume UUID (make sure to replace this with your UUID)
echo RESUME=UUID=<Swap Device UUID> > /etc/initramfs-tools/conf.d/resume
# regenerate initramfs
sudo update-initramfs -c -k all