让运行ubuntu20.04的笔记本电脑实现关闭盖子自动休眠
背景
我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分区
- 备份资料
- 插上安装盘重启,因为resize2fs不能操作已挂载的文件系统!
- 用
resize2fs /dev/sda2 N
将主分区的ext4文件系统从M缩小成N, - 用
fdisk
删除主分区,再重建大小为N的新的主分区 - 将腾出来的N-M空间创建成swap分区,写入分区表,退出fdisk
- 拔掉安装盘,重启
- 执行
sudo mkswap /dev/sda3
初始化交换分区 - 执行
sudo blkid | grep swap
获得swap分区的UUID
,注意不是PARTUUID
- 将分区添加到
/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的笔记本电脑实现关闭盖子自动休眠相关推荐
- 计算机休眠移动硬盘不休眠,关闭硬盘盒自动休眠软件
关闭硬盘盒自动休眠软件是防止硬盘盒子自动休眠,配合VL71主控芯片使用,提供详细教程分享,让你的硬盘盒子不会自动休眠了,提升电脑的性能! 软件介绍 大部分硬盘盒为了降低硬盘损耗,会在3-5分钟无操作的 ...
- 计算机关闭硬盘休眠是什么意思,关闭硬盘盒自动休眠
大部分硬盘盒为了降低硬盘损耗,会在3-5分钟无操作的情况下开启自动休眠,若客户实际使用时不需要用到此功能,可以手动关闭此功能.下面教大家如何关闭硬盘盒和易驱线自动休眠功能. 一.下载并安装升级工具 下 ...
- win10下运行Ubuntu20.04.4 LTS 报错:WslRegisterDistribution failed with error: 0x80070050
解决方法: 1. 运行powershell 2.在powershell中执行:wsl --shutdown 3.win键+r键,执行regedit 4.在Registry Editor 中找到\HKE ...
- 笔记本电脑安装 OMV 关闭屏幕自动休眠的问题
OpenMediaVault 很轻量,所以有很多人会选择把它运行在闲置的笔记本电脑上.OMV 开发团队无论如何也想象不到会有那么多人把 OMV 运行在笔记本电脑上,所以在 GUI 上并没有提供设置选项 ...
- windows使用/服务(1)Win11笔记本如何设置合盖不休眠?Win11设置关闭盖子不休眠的教程...
1.单击开始菜单打开控制面板. 2.在控制面板里点击硬件和声音(注意右上角查看模式为类别,才可以看到硬件和声音选项). 3.电源选项,点击 更改电源按钮的功能. 4.最后 修改关闭盖子时应该执行的操作 ...
- 如何取消联想计算机的睡眠模式,如何将联想笔记本电脑设置为不自动休眠
您正在看的WindowsXP_9x教程是:将XP设置成自动休眠. "休眠"和"待机"功能可以为你节省电能,延长笔记本电脑电池的使用时间.你可以将XP设置成自动休 ...
- FT2000盒子运行ubuntu20.04系统
飞腾盒子的硬件配置: 该硬件配置相比台式机低,相比嵌入式高,定位在瘦客户机. 自带的默认操作系统是麒麟V10. 更换操作系统的选择: linux桌面版操作系统:软件丰富,自带Desktop,但是对AR ...
- 运行Ubuntu的HP笔记本合上盖子不休眠也不断网
一个小小的trouble shooting. 似乎中文搜索的结果中没有解决方案,但askubuntu上有,故实践并记录之. 首先,一个Ubuntu 18.04系统的笔记本,如何才能合上盖子(lid c ...
- 笔记本安装ubuntu关闭盖子不休眠设置
一.打开配置文件 sudo vim /etc/systemd/logind.conf 二.配置介绍 # This file is part of systemd. # # systemd is fre ...
最新文章
- NLP | 医学AI又一突破,微软开源生物医学NLP基准:BLURB
- zimbra xxe+ssrf 导致 getshell
- OpenGL shader normals法线贴图的实例
- Base64加密---加密学习笔记(一)
- 单元素枚举类实现单例模式
- 纪念品分组(洛谷-P1094)
- python使用-python 类如何使用
- android studio run的时候一直卡在waiting for debug
- Mysql中将查询出来的多列的值用逗号拼接
- python和大数据的关系_Java大数据和python大数据哪个更主流?
- 计算机数字模拟仿真软件,实时数字仿真系统
- FileNet入门学习
- 华为matebook13 win10系统重置登录密码
- android隐藏顶部导航栏,Android去除顶部导航条
- win10找不到网络里的计算机,Win10专业版找不到网络中的其他电脑
- 正则表达式(菜鸟教程)
- js修改服务器域名,春哥详解:业务域名 JS接口安全域名 网页授权域名
- 苹果编程语言Swift解析:将推动应用开发巨变
- 11 Daemonset:忠实可靠的看门狗
- Android 程序框架设计
热门文章
- 云台山茶旅集团各分子版块日新月(2月20日)
- C++画图 => 蓝桥杯青少组C++ => 信奥 学习路线图
- 怎么将图片在线转成PDF
- 小程序中wxss设置渐变色背景的方法
- 二维数组8:设计题 RingBuffer的原理和实现
- 体验版的软件可以取消“导出”功能限制吗?
- 梦幻西游游戏官网服务器状态,梦幻西游:凌晨4点了,这个游戏究竟还有几个服务器不是鬼区?...
- JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)
- Hive之——数据定义
- mybatis查询数据库返回数据全为null