V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
0x3f3f
V2EX  ›  Linux

Linux 休眠之后关机(长按电源键或断电),如何使下次启动时能恢复系统状态?

  •  
  •   0x3f3f · 2019-06-02 10:05:13 +08:00 · 3968 次点击
    这是一个创建于 1761 天前的主题,其中的信息可能已经有所发展或是发生改变。

    记得 Windows 10 是可以的。我用 Ubuntu 18.04 。

    第 1 条附言  ·  2019-06-02 12:36:12 +08:00

    设备是 HP 的笔记本。休眠是指 S4,Hibernation / Suspend to Disk。我有一个和 RAM 一样大小的 swap 分区,可以正常地休眠和睡眠(应该是 S3 和 S4),/etc/fstab 里的配置如下:

    UUID=****    none    swap    sw    0    0
    

    补充解释一下,正常情况下休眠之后没有必要所谓关机的,我的问题是由于设备故障或者意外的电量耗尽

    感谢各位的帮助!我继续查资料学习,之后回复。

    8 条回复    2019-06-02 12:02:19 +08:00
    listenerri
        1
    listenerri  
       2019-06-02 10:18:07 +08:00 via Android
    我觉得你应该先了解下睡眠和休眠
    0x3f3f
        2
    0x3f3f  
    OP
       2019-06-02 10:29:01 +08:00
    @listenerri #1 hibernate 保存系统状态到硬盘,应该是可以恢复,但不知道怎么设置。
    ys0290
        3
    ys0290  
       2019-06-02 10:37:55 +08:00 via iPhone
    你要的是类似于虚拟机的挂起功能?
    yexm0
        4
    yexm0  
       2019-06-02 10:40:22 +08:00 via Android
    要长按电源键或断电才能关机的那种不叫休眠叫睡眠。
    休眠是保存内存数据进硬盘后电脑自己会关机的。
    clino
        5
    clino  
       2019-06-02 11:07:50 +08:00 via Android
    sudo hibernate
    我长期用这个休眠功能,现在用的是 18.04
    偶尔出现恢复以后不认 usb 鼠标键盘只能重启
    iwtbauh
        6
    iwtbauh  
       2019-06-02 11:12:12 +08:00 via Android   ❤️ 2
    常见的休眠有 3 种

    挂起
    蛰伏
    混合挂起

    挂起:将状态保存到 RAM,然后停止工作,这又产生了 3 种不同的挂起

    挂起到 idle
    通电挂起(浅度挂起)
    挂起到 RAM (深度挂起)

    并非所有平台都支持所有的模式。挂起到 idle 支持全部平台。

    挂起到 idle:纯软件的挂起,仅冻结用户应用程序
    通电挂起(浅度挂起):CPU 保持功率,冻结用户程序,然后挂起外设或将外设至于低功耗状态。
    挂起到 RAM (深度挂起):冻结用户程序,冻结非启动 CPU,挂起外设或将外设至于低功耗状态,然后 BIOS (或系统固件)接管机器控制权。

    蛰伏:蛰伏的前提是能“挂起到 RAM (深度挂起)”,然后将状态写入硬盘。下次从硬盘恢复。

    混合挂起:同时“挂起到 RAM (深度挂起)”和写入硬盘,若机器没有断电,则从 RAM 恢复,否则从硬盘恢复。这能大大提高恢复速度。

    你需要的是“蛰伏”。

    要配置蛰伏,必须让内核知道从哪里恢复状态。配置引导程序并给内核传递 resume 选项。(类似于 root 选项的格式,可以用 /dev/xxx 或者 uuid )指定 swap 分区。

    传递 shutdown 到 /sys/power/disk,然后传递 disk 到 /sys/power/state 开始蛰伏

    更多信息阅读内核文档。

    另外,“蛰伏”依赖硬件的支持,因此在某些硬件上会出现问题,若出现问题,你应该尝试配置 BIOS、升级 BIOS 版本等。若不能解决的话从网络上查找解决方案。

    此外,强烈建议大于 RAM 的 swap 分区以避免蛰伏失败。
    anzu
        7
    anzu  
       2019-06-02 11:54:50 +08:00
    https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate
    你说的应该是 Suspend to disk,不用按电源键,建议 swap 分区用固态硬盘,否则保存和恢复很慢。
    zeroDev
        8
    zeroDev  
       2019-06-02 12:02:19 +08:00 via Android
    @iwtbauh swap 一半就够了。不够不会睡眠,晃晃鼠标屏幕又会亮
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1004 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:58 · PVG 03:58 · LAX 12:58 · JFK 15:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.