创建交换文件(如果已经有交换文件,请转到下一步)

创建交换文件(如果已经有交换文件,请转到下一步)

我尝试从顶部面板让 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

相关内容