V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Librola
V2EX  ›  Windows

奇怪的 Windows 睡眠和休眠,从睡眠转换为休眠失败

  •  
  •   Librola · 13 小时 18 分钟前 · 464 次点击

    前几天开始发现 Windows 主机会自动从睡眠中唤醒,后来观察了一阵子发现唤醒地非常准时,基本上都是睡眠后 1h 左右。

    在用 powercfg 确认了没有启动任何定时器,并且关闭了鼠标的唤醒权限后,就一直在想我在哪里设置了 1h 的参数。

    昨天看到了 /t/839159 这个帖子,其中提到 Windows 从睡眠转换成休眠会把系统从睡眠状态唤醒,把休眠数据写入硬盘,再进入休眠状态。

    于是我想起来了,我之前把 [自动睡眠时间] 设置为了 15min ,而 [自动休眠时间] 设置为了 1h 。疑似是因为这个原因,Windows 会在睡眠后一小时唤醒计算机。

    我把 [自动休眠时间] 改为 [从不] 以后,果然自动唤醒的问题消失了。

    但是问题并没有完全解决。根据 /t/839159 中的说法,这次自动唤醒是为了进入休眠状态。然而,我的机器每次被自动唤醒之后,并没有成功进入休眠状态,而是会等待 15min 重新睡眠,如此往复。

    根据我关闭自动休眠后不再出现自动唤醒来看,这应该确实是为了进入休眠而自动唤醒的,那么也就是说在这次唤醒的过程中我的机器进入休眠失败了。

    有大佬能分析一下问题出现在何处吗?

    7 条回复    2025-09-24 22:24:34 +08:00
    wheat0r
        1
    wheat0r  
       12 小时 14 分钟前
    该不会是联想的笔记本吧
    kuanat
        2
    kuanat  
       11 小时 43 分钟前 via Android
    这里用技术语言来描述:S0 正常状态,S3 睡眠(持久化到内存),S4 休眠(持久化到硬盘)。

    原始问题是,S3->S4 ,中间要经过 S0 吗?技术层面答案是要,但一般语境中认为不需要。操作系统在进入 S3 的时候,会注册一个目标时长的 wake event 回调,即特定时长之后转睡眠。当硬件到达特定时间点,就会 S3->S0 ,此时操作系统会检查唤醒原因,如果是用户的操作,那就继续完全恢复至 S0 ,如果是自己注册的睡眠回调,那就在只唤醒硬盘等必要设备,然后完成休眠准备进入 S4 。

    排查故障先看是否能手动进入休眠,很多支持 Modern Standby 的新设备都不支持休眠了。

    如果能手动休眠,大概率是 bios 问题,可以反编译 acpi 看哪里出了问题。
    yb2313
        3
    yb2313  
       10 小时 24 分钟前
    我以前用 win 的时候也遇到过这个情况,后来换 nix+arch 就没出现过这种情况
    Donduck
        4
    Donduck  
       9 小时 28 分钟前
    看看 hibernate file 类型是 reduced 还是 full
    liyafe1997
        5
    liyafe1997  
       9 小时 18 分钟前   ❤️ 1
    @kuanat 你说错了,「很多支持 Modern Standby 的新设备」不是不支持休眠,而是不支持 S3 睡眠。
    Librola
        6
    Librola  
    OP
       8 小时 8 分钟前
    @kuanat 感谢大佬长回复。我是可以手动进入休眠的,在这个问题没有解决之前我一直是在需要休眠的时候手动进入休眠,来避免睡眠的频繁自动唤醒。

    反编译 acpi 查问题对我来说属于我的知识范围之外的东西了,感觉很难,就这样吧,毕竟现在已经能正常睡眠乐。
    kuanat
        7
    kuanat  
       7 小时 50 分钟前
    @liyafe1997 #5

    感谢指正,我确实说错了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:14 · PVG 06:14 · LAX 15:14 · JFK 18:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.