如何在 Ubuntu 20.04 中休眠?

如何在 Ubuntu 20.04 中休眠?

我已经使用 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

相关内容