背景

我2013年买的笔记本太老了,机械硬盘,win10体验很不好,于是切换成ubuntu 20.04。
切换后文档、图片的打开速度显著提升,看视频、玩dota2的流畅度也没有丝毫下降,唯一不爽的就是每次关盖都不休眠,而是睡眠,需要解决。
申明,我是根据文章1以及文章2加上自己的实践得出操作步骤,前者适用于装Ubuntu时手动创建了swap分区的情况,后者适用于默认安装(只有swapfile没创建swap分区)的情况。

首先实现敲命令休眠

Linux实现休眠的总体思路是将内存数据以镜像的形式dump到swap分区或swapfile,然后关闭电源,再次开机时,从swap分区加载数据到内存,再恢复执行。
其中有一些细节需要注意,就是让GRUB和ramdisk知道唤醒时从哪里加载之前保存的内存镜像。

创建swap分区并初始化

文章1建议用swap分区而不是swapfile,原因是备份主分区时不用操心排除swapfile,当然最终选择在你。
貌似Ubuntu默认的swapfile只有2GB,大概率不够,需要重建一个大尺寸的,具体操作方法请点开文章2贴的参考链接。

如果你默认安装且不想冒险(我还没试过!)

如果你的swapfile不够大,则按下面方法重建个大的,够大直接下一步:

sudo fallocate -l 16G /swapfile  # 16G不够可以再扩
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo vim /etc/fstab # 如果fstab没有下面这行,就将下面这行添加/swapfile        none        swap        default        0    0

获取swapfile在分区的起始block number

sudo filefrag -v /swapfile | sed -n '4p' | awk '{print $4+0}'548832 <-- 上面命令行输出的数字就是swapfile的起始block number

如果你默认安装但想改用swap分区

  1. 备份资料
  2. 插上安装盘重启,因为resize2fs不能操作已挂载的文件系统!
  3. resize2fs /dev/sda2 N将主分区的ext4文件系统从M缩小成N,
  4. fdisk删除主分区,再重建大小为N的新的主分区
  5. 将腾出来的N-M空间创建成swap分区,写入分区表,退出fdisk
  6. 拔掉安装盘,重启
  7. 执行sudo mkswap /dev/sda3初始化交换分区
  8. 执行sudo blkid | grep swap获得swap分区的UUID,注意不是PARTUUID
  9. 将分区添加到/etc/fstab,确保下次开机自动挂载swap分区,省得每次敲sudo swapon -a
  • 获取swap分区的UUID:
wanghaipeng@ubuntu:~/F266/7569_64$ blkid|grep swap
/dev/sda5: UUID="22b7d10b-4e46-46e1-a040-e7d405d752b8" TYPE="swap" PARTUUID="34c6698d-05"
  • 添加swap分区到/etc/fstab(我选择注释掉默认配置的swapfile):
#/swapfile                                 none            swap    sw              0       0
UUID=22b7d10b-4e46-46e1-a040-e7d405d752b8                                 none            swap    sw              0       0

如果你很明智在安装时就创建了swap分区

恭喜,省了上面的危险操作,直接执行sudo blkid | grep swap获得swap分区的UUID,进入下一步

给GRUB指定resume参数并更新grub.cfg

给GRUB添加resume参数,以告知唤醒时从哪个分区加载内核

sudo vi /etc/default/grub  # 仅修改下面这行
GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=22b7d10b-4e46-46e1-a040-e7d405d752b8"

如果是swapfile,还要额外指定resume_offset参数

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda2 resume_offset=548832"

这2个参数都要替换成你自己的值!

更新grub.cfg

sudo update-grub

上面命令执行后会生成新的grub.cfg

给update-initramfs指定resume参数并更新initrd.img

给update-initramfs指定resume参数

sudo vi /etc/initramfs-tools/conf.d/resume  # 仅写入下面这一行
RESUME=UUID=22b7d10b-4e46-46e1-a040-e7d405d752b8

如果是swapfile,请自己检查update-initramfs是否需要额外配置!

重新生成支持唤醒的initrd.img

sudo update-initramfs -c -k all

安装pm-utils和hibernate软件包

sudo apt install pm-utils hibernate

安装软件包后执行下面命令测试休眠效果

sudo systemctl hibernate

执行该命令后笔记本应该会休眠并关闭电源,如果没有,且提示以下错误:

Failed to hibernate system via logind: Not enough swap space for hibernation

说明你的swapfile或swap分区太小,需要扩容,swapfile扩容相对简单,删了重建个更大的即可,swap分区就要参考我前面的方法了。

然后实现关盖休眠

修改/etc/systemd/logind.conf文件,在[Login]部分添加如下行:

HandleLidSwitch=hibernate
HandleLidSwitchExternalPower=hibernate
HandleLidSwitchDocked=hibernate

参数的含义如下:

HandleLidSwitch - 盖子关闭时触发,下面的两种情况除外。
HandleLidSwitchExternalPower - 如果系统连接到外部电源,则在盖子关闭时触发。
HandleLidSwitchDocked - 如果系统插入扩展坞,或者连接了多个显示器,则在盖子关闭时触发。

保存退出后还不能关盖休眠,需要重启后才可以。

总结

发行版制造商从个人用户群体获益甚少,所以用户体验不佳是可以理解的,钱和时间,总得消耗其中一个。

休眠后的唤醒效果:

安装ubuntu20.04的笔记本电脑休眠后唤醒画面

让运行ubuntu20.04的笔记本电脑实现关闭盖子自动休眠相关推荐

  1. 计算机休眠移动硬盘不休眠,关闭硬盘盒自动休眠软件

    关闭硬盘盒自动休眠软件是防止硬盘盒子自动休眠,配合VL71主控芯片使用,提供详细教程分享,让你的硬盘盒子不会自动休眠了,提升电脑的性能! 软件介绍 大部分硬盘盒为了降低硬盘损耗,会在3-5分钟无操作的 ...

  2. 计算机关闭硬盘休眠是什么意思,关闭硬盘盒自动休眠

    大部分硬盘盒为了降低硬盘损耗,会在3-5分钟无操作的情况下开启自动休眠,若客户实际使用时不需要用到此功能,可以手动关闭此功能.下面教大家如何关闭硬盘盒和易驱线自动休眠功能. 一.下载并安装升级工具 下 ...

  3. win10下运行Ubuntu20.04.4 LTS 报错:WslRegisterDistribution failed with error: 0x80070050

    解决方法: 1. 运行powershell 2.在powershell中执行:wsl --shutdown 3.win键+r键,执行regedit 4.在Registry Editor 中找到\HKE ...

  4. 笔记本电脑安装 OMV 关闭屏幕自动休眠的问题

    OpenMediaVault 很轻量,所以有很多人会选择把它运行在闲置的笔记本电脑上.OMV 开发团队无论如何也想象不到会有那么多人把 OMV 运行在笔记本电脑上,所以在 GUI 上并没有提供设置选项 ...

  5. windows使用/服务(1)Win11笔记本如何设置合盖不休眠?Win11设置关闭盖子不休眠的教程...

    1.单击开始菜单打开控制面板. 2.在控制面板里点击硬件和声音(注意右上角查看模式为类别,才可以看到硬件和声音选项). 3.电源选项,点击 更改电源按钮的功能. 4.最后 修改关闭盖子时应该执行的操作 ...

  6. 如何取消联想计算机的睡眠模式,如何将联想笔记本电脑设置为不自动休眠

    您正在看的WindowsXP_9x教程是:将XP设置成自动休眠. "休眠"和"待机"功能可以为你节省电能,延长笔记本电脑电池的使用时间.你可以将XP设置成自动休 ...

  7. FT2000盒子运行ubuntu20.04系统

    飞腾盒子的硬件配置: 该硬件配置相比台式机低,相比嵌入式高,定位在瘦客户机. 自带的默认操作系统是麒麟V10. 更换操作系统的选择: linux桌面版操作系统:软件丰富,自带Desktop,但是对AR ...

  8. 运行Ubuntu的HP笔记本合上盖子不休眠也不断网

    一个小小的trouble shooting. 似乎中文搜索的结果中没有解决方案,但askubuntu上有,故实践并记录之. 首先,一个Ubuntu 18.04系统的笔记本,如何才能合上盖子(lid c ...

  9. 笔记本安装ubuntu关闭盖子不休眠设置

    一.打开配置文件 sudo vim /etc/systemd/logind.conf 二.配置介绍 # This file is part of systemd. # # systemd is fre ...

最新文章

  1. NLP | 医学AI又一突破,微软开源生物医学NLP基准:BLURB
  2. zimbra xxe+ssrf 导致 getshell
  3. OpenGL shader normals法线贴图的实例
  4. Base64加密---加密学习笔记(一)
  5. 单元素枚举类实现单例模式
  6. 纪念品分组(洛谷-P1094)
  7. python使用-python 类如何使用
  8. android studio run的时候一直卡在waiting for debug
  9. Mysql中将查询出来的多列的值用逗号拼接
  10. python和大数据的关系_Java大数据和python大数据哪个更主流?
  11. 计算机数字模拟仿真软件,实时数字仿真系统
  12. FileNet入门学习
  13. 华为matebook13 win10系统重置登录密码
  14. android隐藏顶部导航栏,Android去除顶部导航条
  15. win10找不到网络里的计算机,Win10专业版找不到网络中的其他电脑
  16. 正则表达式(菜鸟教程)
  17. js修改服务器域名,春哥详解:业务域名 JS接口安全域名 网页授权域名
  18. 苹果编程语言Swift解析:将推动应用开发巨变
  19. 11 Daemonset:忠实可靠的看门狗
  20. Android 程序框架设计

热门文章

  1. 云台山茶旅集团各分子版块日新月(2月20日)
  2. C++画图 => 蓝桥杯青少组C++ => 信奥 学习路线图
  3. 怎么将图片在线转成PDF
  4. 小程序中wxss设置渐变色背景的方法
  5. 二维数组8:设计题 RingBuffer的原理和实现
  6. 体验版的软件可以取消“导出”功能限制吗?
  7. 梦幻西游游戏官网服务器状态,梦幻西游:凌晨4点了,这个游戏究竟还有几个服务器不是鬼区?...
  8. JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)
  9. Hive之——数据定义
  10. mybatis查询数据库返回数据全为null