
我尝试从顶部面板让 ubuntu-budgie 休眠,但它并没有休眠,只是锁定了计算机。
看到这种情况,我尝试使用 从终端休眠sudo systemctl hibernate
,但得到了相同的结果。
我使用了该命令systemctl status hibernate.target
,看到了这些错误:
systemd[1]: Hibernate 依赖项失败。systemd
[1]: hibernate.target: 作业 hibernate.target/start 失败,结果为“依赖项”。
PS:这是 ubuntu budgie 的全新安装,我有足够的交换大小(4Gb RAM 和 4Gb 交换)。
PS2:我正在使用交换文件而不是交换分区(这是新版本的 ubuntu 默认创建的方式)
答案1
@fossfreedom 给了我一个答案的链接,答案很棒,但并没有完全解决我的问题。所以我将把我在 ubuntu-budgie 17.04 下让电脑休眠的方法贴出来
创建交换文件(如果已经有交换文件,请转到下一步)
这些命令创建一个格式化的 4GiB 交换文件,挂载并添加到 /etc/fstab:
sudo fallocate -l 4g /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
安装用户空间软件暂停(uswsusp)
sudo apt install uswsusp
验证交换文件分区
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
配置 uswsusp
这将创建 /etc/uswsusp.conf 并使用这些详细信息重新创建 initramfs:
sudo dpkg-重新配置-pmedium uswsusp
Yes
到‘在没有有效交换空间的情况下继续吗?’(向导尚未设置交换文件。)- 选择分割交换文件所在的位置,请与
findmnt
上述详细信息进行交叉引用。(注意:不是交换文件本身)
/etc/initramfs-tools/conf.d/resume
如果文件不存在则创建该文件,并将您的 swap_id 放入其中,如下所示:
sudo -s
swaplabel /swapfile
> UUID: 81bb07cd-d495-4733-be81-3447f9161f33
echo "RESUME=UUID=81bb07cd-d495-4733-be81-3447f9161f33" > /etc/initramfs-tools/conf.d/resume
update-initramfs -u
测试 Hibernate
sudo s2disk
将 s2disk 与 systemd Hibernate 结合使用
sudo cp /lib/systemd/system/systemd-hibernate.service /etc/systemd/system/
编辑新文件:
sudo gedit /etc/systemd/system/systemd-hibernate.service
将文件的最后一行(以 ExecStart=... 开头)替换为以下内容:
ExecStart=/usr/sbin/s2disk
ExceStart=run-parts -a post /lib/systemd/system-sleep
更新 systemd 守护进程并测试休眠:
sudo systemctl daemon-reload
sudo systemctl hibernate
通过顶部面板按钮允许休眠
打开文件:
sudo gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
并找到两个部分:
- [upower 中默认禁用休眠模式]
- [logind 中默认禁用休眠功能]
答案2
尝试:
swapoff /dev/drive/swap
swapon -f /dev/drive/swap