美文网首页Linuxdeepin
deepin如何休眠

deepin如何休眠

作者: Daryl_Xu | 来源:发表于2018-06-05 15:43 被阅读99次

    deepin官网
    休眠这个功能还是很酷很实用的,对于Linux系统,休眠一般就是把内存中的数据写入硬盘(swap文件),然后关机。在下一次开机的时候将数据重新载入内存,让你快速回到上一次的工作状态,这在你开启了大量的程序但需要暂停工作的时候尤其好用。

    一般来说,如果你有一个可以正常使用的swap分区,只需要在终端执行
    systemctl hibernate
    就可以休眠了。

    如果你没办法从硬盘划分一个swap分区,你可以通过使用swap文件来进行休眠。
    本教程参考了Debian的wiki
    大体思路:创建swap文件-->配置swap文件-->安装uswsusp-->配置uswsusp

    1. 创建一个swap文件
    fallocate -l 256m /swap
    mkswap /swap
    

    “256”是指以MB为单位的大小(其后的'm')。将其设置为RAM的至少一半大小(这个是debian wiki给定的数据,我建议设置为至少设置为内存相同大小)。“/swap”是交换文件的路径。它可以位于任何分区(例如root或home)。

    1. 进行swap文件相关设置
    • 挂载swap文件
      将此行添加到/etc/fstab文件中:
      /swap swap swap defaults 0 0

    • 减少使用swap文件
      终端执行sudo sysctl -w vm.swappiness = 1
      并在/etc/sysctl.d中创建一个名为local.conf的文件,为了使vm.swappiness保持不变,文件内容如下:
      vm.swappiness = 1

    vm.swappiness扩展知识
    减少内核对swap的使用这一步主要是针对使用机械硬盘的同学,因为在机械硬盘中大量对swap进行读写会拖慢系统的速度,Debian wiki里面写的是停止内核使用swap文件,可能是原作者笔误,也可能是他瞎说的🤗

    • 激活swap文件:
      终端执行 sudo swapon /swap
    1. 安装和配置相关软件
      使用uswsusp这个软件,这是linux内核使用swap文件代替swap分区来进行挂起(休眠)的方法,并且还支持压缩和加密等功能。
    • 安装uswsusp:
      终端执行 aptitude install uswsusp

    • 配置uswsusp:
      终端执行 sudo dpkg-reconfigure -pmedium uswsusp,然后会出现如下提示框

      深度截图_选择区域_20180605160224.png
      从这个问题开始全部选择确定,直到出现:
    选择swap文件

    此处选择你要使用的swap文件,注:我这里是/var/swapfile这个文件

    选择是否对休眠写入swap的数据加密

    根据需要选择就好(需要知晓的是,开启加密功能之后休眠的启动所消耗的时间会增加)。如果选择加密的话,它会提示你设定一个密码

    • 对uswsusp进行进一步配置
      一般配置文件/etc/uswsusp.conf内容如下所示:
    #/etc/uswsusp.conf(8) -- Configuration file for s2disk / s2both
    
    resume device= /swap   
    
    compress = y
    
    early writeout= y
    
    image size= 238941634
    
    RSA key file = /etc/uswsusp.key
    
    shutdown method = platform
    
    resume offset = 8288
    
    # encrypt = y 如果你选择了对数据加密,则会有这一行
    

    “resume offset = 8288”是交换文件实际存放的地方(应该是硬盘的物理地址)。你可以终端执行swap-offset /swap获得这个值
    “resume device”必须是分区而不是交换文件。一般这行的值会在上一步完成后变成你的swap文件的路径,需要改成你的swap文件所在的分区,如/dev/sda1

    编辑/etc/uswsusp.conf文件后:
    终端执行 sudo update-initramfs -u

    1. 默认启动的配置
      为了让系统启动时,默认从swap文件加载数据。将/etc/default/grub文件中的相关设置进行修改:
      GRUB_CMDLINE_LINUX_DEFAULT ="resume = /dev/sda1 quiet"
      其中“/dev/sda1”是交换文件所在的分区。
      终端执行sudo update-grub

    测试休眠:
    sudo s2disk

    注:配置成功之后,如果修改了uswsusp的设置要执行 sudo update-initramfs -usudo update-grub

    如果deepin能集成这个功能就再好不过了,配置还是略显繁琐滴

    相关文章

      网友评论

        本文标题:deepin如何休眠

        本文链接:https://www.haomeiwen.com/subject/ngvpsftx.html