Archlinux休眠设置
但为什么有时候又能成功呢? 猜测在某些情况下将内存 dump 到 swap 文件时出错了. 查看 Wiki 发现有个 /sys/power/image_size 参数配置。
resume_offset 值就是 2537472. 测试和问题分析 完成以上准备工作后执行 systemctl hibernate 命令执行休眠(dump 内存到 swap 文件并关机),5)/boot/initramfs-linux.img 其中 resume 参数是 swap 文件所在分区。
Wiki 说: /sys/power/image_size 用来控制将内存 dump 到硬盘时所占空间的大小. 在 dump 内存时, 大多数是恢复失败直接进入登录页面(另外, 默认情况下禁用 swap 分区, 当初安装系统就使用 swap 文件代替 swap 分区. 首先检查下 swap 文件大小(swapon -s), 只有少数几次能够从休眠中复原环境。
所占用的硬盘空间不会超过 /sys/power/image_size 的大小. 如果内存数据太多。
重启后 /sys/power/image_size 配置值又恢复为默认的内存大小的 2/5, System: Temporary Files 介绍了一种方法: 新建文件 /etc/tmpfiles.d/modify_power_image_size.conf, 升级 4.9 后解决该问题). 查看日志发现: hostname systemd[1]: Starting Hibernate... hostname kernel: PM: Hibernation image not present or could not be loaded. hostname kernel: PM: Hibernation image partition 8:6 present hostname kernel: PM: Hibernation image not present or could not be loaded. 为什么会提示 Hibernation image not present or could not be loaded, 当执行休眠操作时先启用 swap 分区, 4.4 版本的内核对休眠支持有bug, 则在 dump 内存时尽可能压缩数据占用最少的硬盘空间(上限是 swap 分区/文件的大小). 该文件的默认值是内存的 2/5 . 看了上面这段描述,swapoff} 添加 S 权限位, 然后再执行休眠操作(给 /usr/bin/{swapon, 猜测是/sys/power/image_size 值过小致使内存 dump 文件不完整, 确定其足以 dump 整个内存: 然后就是配置 GRUB 启动参数: title Arch kernel (hd0, 执行锁屏和挂起(睡眠)操作: DISPLAY=:0.0 su -c - your_username /usr/bin/slimlock systemctl suspend 处理合上笔记本屏幕事件: button/lid) case $3 in close) logger LID closed DISPLAY=:0.0 su -c - your_username /usr/bin/slimlock systemctl suspend ;; open) logger LID opened ;; *) logger ACPI action undefined: $3 ;; 附 /etc/acpi/handler.sh 完整文件: #!/bin/bash # Default acpi script that takes an entry for all actions case $1 in button/power) case $2 in PBTN|PWRF) logger PowerButton pressed ;; *) logger ACPI action undefined: $2 ;; esac ;; button/sleep) case $2 in SLPB|SBTN) logger SleepButton pressed ;; *) logger ACPI action undefined: $2 ;; esac ;; ac_adapter) case $2 in AC|ACAD|ADP0) case $4 in 00000000) logger AC unpluged ;; 00000001) logger AC pluged ;; esac ;; *) logger ACPI action undefined: $2 ;; esac ;; battery) case $2 in BAT0) case $4 in 00000000) logger Battery online ;; 00000001) logger Battery offline ;; esac ;; CPU0) ;; *) logger ACPI action undefined: $2 ;; esac ;; button/lid) case $3 in close) logger LID closed DISPLAY=:0.0 su -c - your_username /usr/bin/slimlock systemctl suspend ;; open) logger LID opened ;; *) logger ACPI action undefined: $3 ;; esac ;; *) logger ACPI group/action undefined: $1 / $2 ;; esac # vim:set ts=4 sw=4 ft=sh et: 借助 zenity 编写系统操作APP 借助 zenity 编写系统操作APP, 支持 睡眠(挂起)/深度睡眠/休眠/关机/重启(在休眠前启用 swap 分区): #!/bin/sh function Suspend() { slimlock sleep 1 systemctl suspend } HybridSleep() { slimlock sleep 1 /usr/bin/swapon /swapfile systemctl hybrid-sleep } function Hibernate() { slimlock /usr/bin/swapon /swapfile systemctl hibernate } function Shutdown() { zenity --question --text=确定关机? \ # echo do shutdown \ systemctl poweroff } function Reboot() { zenity --question --text=确定重启? \ # echo do reboot \ systemctl reboot } type=$(zenity --list \ --timeout=10 \ --width=200 \ --height=240 \ --title=要抛弃我啦? \ --column=操作 \ Suspend \ HybridSleep \ Hibernate \ Shutdown \ Reboot ) ret=$? if [ $ret == 1 ] then # 点击 关闭 或 取消 echo no choice。
以便普通用户修改 swap 配置); 基础配置 因为笔记本只有 180GB 的固态硬盘, exit exit elif [ $ret == 5 ] then echo timeout 。
从而导致无法从休眠中启动恢复环境. 于是将其修改为 0: $ sudo tee /sys/power/image_size 0 [sudo] username 的密码: 0 在内存使用率超过 2/5 的情况下测试通过. 然而, 当合上笔记本屏幕时,5)/boot/vmlinuz-linux root=/dev/sda6 rw quiet resume=/dev/sda6 resume_offset=2537472 initrd (hd0, 重启后黑屏, 内容为: w /sys/power/image_size - - - - 0 重启后确认已生效: $ cat /sys/power/image_size 0 扩展配置 通过 acpid 捕获合上笔记本屏幕事件 安装并启用 acpid: sudo pacman -S acpid sudo systemctl enable acpid 编辑 /etc/acpi/handler.sh 的 button/lid 部分, 那就只会 dump 最小的镜像到硬盘. 如果该文件值为 0, resume_offset 是真正存储内存 dump 数据(physical_offset)的偏移, 重启时发现, 可通过 filefrag 命令(filefrag -v /swapfile)获取: 在我的电脑上,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/guanli/12111.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
显著提升的替代品的不断
时间:2021-01-23
-
在Linux中查找用户帐户信息
时间:2021-01-23
-
AstroMenace游戏的主要风格特
时间:2021-01-23
-
让被命中的家伙会一次用
时间:2021-01-23
-
原本腾讯有提供Linux版本的
时间:2021-01-23
-
升级内核是其中最有效的
时间:2021-01-23
-
在一些独特的功能
时间:2021-01-23
-
你至少需要安装两个包:
时间:2021-01-23
热门文章
-
月亮播放器:Linux无广告看片神器
时间:2020-12-23
-
六大理由告诉你为什么GNOME仍然是最好的
时间:2020-12-23
-
输入 servera 的 root 密码
时间:2021-01-16
-
5款最酷的Linux终端模拟器
时间:2020-12-22
-
如何为Linux配置双显卡
时间:2020-12-28
-
原本腾讯有提供Linux版本的安装包的
时间:2021-01-23
-
在MacBook Air上安装Fedora 26
时间:2020-12-26
-
如何以LaTex创建文档
时间:2020-12-26
-
我是如何开始我的Linux之旅的
时间:2020-12-23
-
以及它们在 Linux 和 Windows 容器之间的区别
时间:2021-01-21
