Ubuntu 22.04 休眠功能完整解决流程(多系统+华硕主板)

Ubuntu 22.04 休眠功能完整解决流程(多系统+华硕主板)

我的电脑装了三个系统win10、ubuntu22.04、ubuntu24.04,当前的grub是24.04在管理,但是我主用的是22.04,现在想让22.04能够支持休眠功能,否则每次开机都不知道上次工作在干什么。

说明:适用于 Ubuntu 22.04 + 多系统(含24.04、Windows)+ swapfile在/data下 + 华硕主板,解决“无休眠菜单、休眠后无法恢复、GRUB默认启动错误”问题

核心目标:显示休眠菜单 + 休眠后能正常恢复桌面 + 22.04为GRUB默认启动项

一、BIOS关闭Secure Boot(华硕主板)

  1. 开机反复按F2/Del进入BIOS

  2. 按F7进入Advanced Mode(高级模式)

  3. 找到OS Type(操作系统类型),设置为「Other OS」(其他操作系统)

  4. Secure Boot Mode(安全启动模式)设置为「Standard」(标准)

  5. 按F10保存并重启

二、创建并启用32G swapfile(我的是/data/swapfile,根据实际情况来)

依次执行以下命令,每一条执行完再执行下一条:

sudo fallocate -l 32G /data/swapfile

sudo chmod 600 /data/swapfile

sudo mkswap /data/swapfile

sudo swapon /data/swapfile

echo "/data/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

三、获取休眠恢复关键参数(UUID + 偏移量)

  1. 获取/data分区UUID(执行后记录结果,示例:cf301861-e3b0-4ad7-bdd1-2034fd5f8ef4)

findmnt -no UUID /data

  1. 获取swapfile偏移量(执行后记录结果,示例:7573504)

sudo filefrag -v /data/swapfile | awk '{if($1=="0:"){print $4}}'

四、配置GRUB(内核启动参数 + 默认启动项)

  1. 打开GRUB配置文件

sudo nano /etc/default/grub

  1. 找到并修改以下两行(替换成自己的UUID和偏移量):

GRUB_CMDLINE_LINUX="resume=UUID=cf301861-e3b0-4ad7-bdd1-2034fd5f8ef4 resume_offset=7573504"

GRUB_DEFAULT=0 # 0代表GRUB菜单第1项(22.04),确保是自己要休眠的系统

  1. 保存退出:按Ctrl+O → 回车 → Ctrl+X

  2. 更新GRUB

sudo update-grub

五、配置initramfs(休眠恢复核心)

  1. 创建resume配置文件

sudo nano /etc/initramfs-tools/conf.d/resume

  1. 粘贴以下内容(替换成自己的UUID和偏移量):

resume=UUID=cf301861-e3b0-4ad7-bdd1-2034fd5f8ef4 resume_offset=7573504

  1. 保存退出:Ctrl+O → 回车 → Ctrl+X

  2. 重建initramfs(所有内核生效)

sudo update-initramfs -u -k all

六、启用电源菜单的休眠选项(polkit权限配置)

  1. 创建polkit规则文件

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

  1. 粘贴以下内容(完整复制,不要修改):

[Enable Hibernate]

Identity=unix-user:*

Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions

ResultAny=yes

ResultInactive=yes

ResultActive=yes

  1. 保存退出:Ctrl+O → 回车 → Ctrl+X

  2. 重启polkit服务

sudo systemctl restart polkit

  1. 注销当前用户,重新登录(休眠菜单即可出现)

七、让22.04接管GRUB(多系统关键,解决恢复失效)

  1. 执行以下命令(确保在22.04系统中操作)

sudo grub-install /dev/nvme0n1

sudo update-grub

  1. 重启电脑

sudo reboot

八、正常休眠流程(验证是否成功)

  1. 在22.04中打开几个窗口/文件(做标记)

  2. 点击电源菜单 → 选择Hibernate(休眠)

  3. 电脑完全关机后,按开机键

  4. GRUB自动进入第0项(22.04),自动恢复休眠前的桌面和程序

九、注意事项

  1. 休眠只能在22.04中使用,休眠后不要进入其他Linux系统(会破坏休眠镜像)

  2. 若休眠菜单仍不显示,注销重登即可,无需额外操作

  3. 双系统(24.04/Windows)正常使用,不影响休眠功能

  4. 无需操作dconf-editor,polkit配置已足够启用休眠菜单

(注:文档部分内容可能由 AI 生成)

posted @ 2026-04-13 14:08  huorexiaji  阅读(93)  评论(0)    收藏  举报