当前位置: 首页 > Linux

linuxnotebook设置hibernation

时间:2023-04-06 19:24:47 Linux

也可以在??github上查看(里面还有一些notebook相关的其他设置),一些更新修复推送到github而不是在博客上更新。suspendsleep和hibernation的区别三种方式存储当前运行状态数据(前后台进程服务,不包括buffcache等)suspend存储到内存设备power-onlow-powersleephybrid-sleep存储到内存和磁盘设备power-onLow-powerhibernatestoragetodiskdevicepoweroff表示设备将关闭。三者其实都是suspend,只是存储位置和开机状态不同。三者可以分别称为suspendtoram、suspentoram和disk和suspendtodisk。缩写为str、strd和std,意思很直白。挂起也称为挂起或待机。一般如果系统一段时间不操作,系统会挂起(在内存中),大部分外围设备会关闭,部分设备会运行(如键盘鼠标),可以快速响应这些设备从而唤醒系统。Hibernation也叫休眠(hibernate其实就是休眠的意思),将运行状态保存到硬盘,然后关机。下次开机后,系统从硬盘中读取存储的数据,恢复到关机前的状态。睡眠更准确的名称应该是混合睡眠。所谓混合,就是存储方式包括suspend和hibernation两种方式。唤醒时,首先从内存中读取数据。如果设备在此状态下关机,则与休眠相同。向上。linuxhibernation配置有些linux发行版的hibernation需要用户配置后才能使用(比如archlinux)。开启休眠,按照以下步骤进行设置。一个适合休眠(hibernate)大小的交换分区需要将内存的内容写入磁盘的交换分区。如果交换分区的大小小于当前休眠所需的空间,则无法保证正确休眠。具体swap大小取决于个人使用情况(睡觉时的内存使用情况)。因此,如果swap分区太小,需要增加swap分区或者减小/sys/power/image_size。注意:brtfs格式不能设置swap分区;这里的swap是指swap分区,不包括swap文件。在bootloader中添加resume内核参数,需要添加resume=/dev/sdxY(sdxY是swap分区的名字),这样系统在启动时就可以读取swap分区的内容。例如grub2作为bootloader,swap分区为/dev/sda3。编辑/etc/default/grub文件,在GRUB_CMDLINE_LINUX_DEFAULT中添加resume=/dev/sda3,如果这行原来的内容是:GRUB_CMDLINE_LINUX_DEFAULT="quietintel_pstate=enable"添加resume参数后是:GRUB_CMDLINE_LINUX_DEFAULT="quietintel_pstateresume=/dev/sda3"然后更新grub配置`grub-mkconfig-o/boot/grub/grub.cfg`来配置initramfs的resumehook编辑/etc/mkinitcpio.conf,在HOOKS行添加resumehook:比如这一行原来的内容是:HOOKS="baseudevautodetectmodconfblockfilesystemskeyboardfsck"加上resume后就是:HOOKS="baseudevresumeautodetectmodconfblockfilesystemskeyboardfsck"注意:如果你使用lvm分区,你需要把resume放在lvm后面,Example:HOOKS="baseudevautodetectmodconfblocklvm2resumefilesystemskeyboardfsck"重新生成initramfsimage:mkinitcpio-plinuxsetlowbatteryhibernation当电池电量极低时,让它休眠到避免数据丢失。修改/etc/UPower/UPower.conf的相关配置,比如当电量低到%5时自动关机:PercentageLow=15#<=15%lowpowerPercentageCritical=10#<=10%warningpowerPercentageAction=5#<=5%的电量执行动作(即CriticalPowerAction)CriticalPowerAction=Hibernate#(本例中power<=5%)执行关机当电池电量低到5%时,设备会自动休眠。CriticalPowerAction的取值为Poweroff、Hibernate和Hybrid-sleep。更多配置项请参考本文件中的说明。设置关闭盖子或按电源键睡眠编辑/etc/systemd/logind.conf,关闭盖子睡眠,添加:HandleLidSwitch=hibernatepressthepowerbuttontosleep,添加:HandlePowerKey=hibernateexecutesystemctlrestartsystemd-登录使其立即生效。有关更多详细设置,请参见下文。systemd可以处理一些与电源相关的事件,可以通过编辑/etc/systemd/logind.conf进行配置,主要包括以下事件:HandlePowerKey:按下电源键HandleSleepKey:按下挂起键HandleHibernateKey:按下睡眠键HandleLidSwitch:关闭笔记本电脑外壳HandleLidSwitchDocked:插入坞站或连接外部显示器时关闭笔记本电脑外壳。该值可以是ignore、poweroff、reboot、halt、suspend、hibernate、hybrid-sleep、lock或kexec。其中:poweroff和halt都是关机(具体实现不同)supspend是暂停(暂停),设备上电,内容存入内存hybernate是休眠,设备关机(同shutdownstate),内容保存在硬盘hybrid-sleep是混合睡眠,设备上电,内容保存在硬盘,memorylock是kexec直接从当前开机的锁屏runningkerneltoanewkernel(多用于内核升级时)ignore是忽略动作,即不响应任何电源事件。系统默认设置为:HandlePowerKey=poweroff#按电源键关机HandleSuspendKey=suspend#按suspend键暂停(暂停)HandleHibernateKey=hibernate#按sleep键休眠HandleLidSwitch=suspend#Cover挂起盖子以笔记本为例,设置笔记本的盖子休眠,在这个文件中配置:HandleLidSwitch=hibernate保存文件后,执行systemctlrestartsystemd-logind使其生效。