V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
garywill
V2EX  ›  奇思妙想

以系统休眠(挂起到硬盘)的方式, Win 与 Linux 之间"半重启"切换?(相当于暂停一个系统)

  •  
  •   garywill · 2022-11-04 16:04:24 +08:00 · 1925 次点击
    这是一个创建于 748 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现有系统都提供休眠( Hibernation ,挂起到硬盘)的功能。但为什么没看到有休眠后切换到另一个系统的软件?实现快速切换,并且不丢失现有状态.(即,唤醒另一个已挂起到硬盘的系统)

    假设像这样:

    RAM 16G
    
    sda
     |--sda1 (100G)  Linux 其中 16G 的 Linux 挂起文件
     |--sda2 (100G)  Windows 其中 16G 的 Win 挂起文件
    

    原始的启动流程:

    BIOS->寻找可启动磁盘->找到 sda->进入 grub->用户菜单选择 Linux 或 Windows 启动

    快速切换的"半重启"流程:

    在 Linux 中进行操作->挂起 Linux 内存到硬盘 sda1->缷载内核进入 grub 并传入参数->grub 从 sda2 唤醒已挂起的 Windows

    反过来一样

    可行吗?有无现有的类似的方案?

    6 条回复    2022-11-06 20:31:18 +08:00
    icestraw
        1
    icestraw  
       2022-11-04 17:15:59 +08:00
    最早的休眠不就是这么工作的吗?你是不是开了依赖 bios 配合的混合睡眠了
    jim9606
        2
    jim9606  
       2022-11-04 18:55:01 +08:00 via Android   ❤️ 1
    因为不是所有的睡眠状态信息都存在内存里的,有一些状态在外设上,甚至驱动还要有设置设备进入和退出睡眠状态的逻辑。在这个过程切换系统可能会导致外设状态不一致的问题,而且还没有特别可靠的检测机制。
    另外在微软的路线图里,S3 睡眠属于废弃功能,所以相关的问题可能永远不会解决。
    autoxbc
        3
    autoxbc  
       2022-11-04 19:10:32 +08:00
    这样切换系统,那些在两个系统同时挂载的分区就会出现数据损毁,原因是内存中的分区元数据和分区实际内容不一致。十几年前搞过一次后,就不再这么玩了
    aqqwiyth
        4
    aqqwiyth  
       2022-11-04 19:30:54 +08:00
    你说的这个不就是虚拟机吗? 换个角度现在的云主机不就是这样的
    garywill
        5
    garywill  
    OP
       2022-11-05 11:56:09 +08:00
    这么说,快速切换的设想不行的话。。想要”同时“用双系统,仍然逃不开用得不够爽的虚拟机
    systemcall
        6
    systemcall  
       2022-11-06 20:31:18 +08:00
    有一些硬件,在切换了系统之后,会有不一致的问题
    类似的,你可以看看快速启动造成的一些问题,这个还是注销了账号、进行了一些处理后的结果,而且修复了很久。最开始,快速启动启用的情况下,切换到别的系统甚至可能会导致分区损毁
    要通过这种方式切换系统,需要 OS 自己做不少处理。很可惜,无论是 Windows 还是 Linux ,休眠都似乎是废弃的功能了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   958 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:50 · PVG 05:50 · LAX 13:50 · JFK 16:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.