Linux与Windows间休眠模式无缝切换攻略
在Linux上运行Windows虚拟机时,用户常常需要在两个系统间无缝切换以完成不同任务。本文详细介绍了如何通过设置休眠模式,在Linux和Windows系统间实现快速切换,保留系统运行状态。休眠模式通过将系统状态保存到硬盘的交换分区,允许用户在开机时恢复到关机前的状态,避免了重复开启程序的繁琐过程。文章还提供了具体的配置步骤,包括Linux的交换分区设置、根文件系统和内核参数的调整,以及Windows系统中电源选项的修改,确保用户能够高效地在两大操作系统间转换工作环境。
前言
在 Linux 电脑上运行 Windows 虚拟机时,有些任务依然需要真机支持,比如运行大型独占软件或备份某些社交软件的聊天记录。虽然备份可以在虚拟机中进行,但通过手机热点连接的速度太慢,实在耗不起时间。
很多时候,用户可能刚在 Linux 上工作或刚在 Windows 上玩游戏,突然需要在 Windows 上运行某些程序或切换到 Linux 进行办公。此时,我不希望关闭 Linux 或 Windows 系统,因为任务并不复杂,很快就能完成。此外,电脑布局可能比较多,开机后再逐一打开程序会很耗时。
这时可以选择休眠,休眠会保存系统的运行状态,直到下次开机时恢复。这就是本文的主要内容:如何在 Windows 和 Linux 系统中设置休眠,保存系统状态。
设置休眠电脑系统存在多种挂起方案,其中比较重要的是:
Suspend to RAM, suspend. 挂起,通常是电脑进入的熄屏状态,它将状态保存到 RAM(随机存取内存)。Suspend to disk, hibernate. 休眠,休眠后会关机,它将状态保存到硬盘,实际上是交换空间(swap space),即交换分区(swap partition)。这个状态一般不会自动进行,且由于状态保存到交换分区,电脑开机后可以恢复到关机前的状态。Linux 休眠在安装时会进行分区,一般包括根分区(root)、家分区(home)和交换分区(swap)三个分区。根分区通常占总空间的三分之一,交换分区是电脑内存的一倍到两倍,剩余空间分配给家分区。这里的电脑内存指的是 RAM,通常称为运存。比如我的电脑内存是 8G,那么交换分区可以设置为 8G 或 16G。
有人可能会问,现在还用交换分区做什么?交换分区最初是为了解决内存不足的问题,但现在也可以用于其他用途,比如休眠。一般来说,交换分区应该设为内存的两倍,这样在休眠时,交换分区刚好可以保存运行状态的所有数据,并且还有盈余,体现了宁缺勿滥的原则。
但我遇到了麻烦,我后来给电脑加了一条内存条,内存变成了 16G,而我的交换分区只有 8G。不过不用担心,一般来说问题不大,因为还是有机会的。我一直正常使用也没出现问题。
配置根文件系统Linux 启动涉及到比较复杂的过程,其中大部分需要使用到一个较小的、完整的系统,叫做 initramfs(初始 RAM 文件系统),即根文件系统。如果我们需要在开机时恢复上次关机前的电脑状态,那就需要在这里给根文件系统添加任务。
首先打开 /etc/mkinitcpio.conf
,找到 HOOKS 一行,添加 resume
钩子:
$ vim /etc/mkinitcpio.conf ... # HOOKS=(base udev autodetect modconf kms keyboard keymap block filesystems fsck) HOOKS=(base udev autodetect modconf kms keyboard keymap block filesystems resume fsck) ...
我将原来的钩子注释掉,然后添加一行,这样避免出错无法还原。resume
需要在 udev
后面,因为这些钩子是按顺序调用的,交换分区需要 udev
检查。如果在调用 udev
之前使用 resume
,系统就找不到交换分区了,必须先让 udev
找到交换分区。
我在 resume
放在 fsck
(文件检查)之前,udev
之后,不知道有什么深意,但我忘了。不过不重要,只需要记住在 udev
之后即可。
配置完成后,需要重新生成 initramfs,即在命令行上调用 sudo mkinitcpio -P
。命令会产生很多输出,但这不重要。
$ sudo mkinitcpio -P
设置内核参数initramfs
配置的是钩子,也就是 resume
后需要处理的东西,我们需要在内核参数(kernel parameters)上告诉系统从哪里恢复上次的状态。
首先确认自己的交换分区是哪个分区,一个简单的办法是使用 sudo fdisk -l
:
$ sudo fdisk -l ... Device Start End Sectors Size Type /dev/sda1 2048 275800063 275798016 131.5G Microsoft basic data /dev/sda2 292577280 502292479 209715200 100G Linux filesystem /dev/sda3 502292480 1953525134 1451232655 692G Linux filesystem /dev/sda4 275800064 292577279 16777216 8G Linux swap ...
可以看到,有个 Type 写的是 Linux Swap,这就是交换分区,即 /dev/sda4
分区。
也可以使用 cat /etc/fstab
查看:
$ cat /etc/fstab # <file> <dir> <type> <dump> <pass> ... # /dev/sda4 LABEL=ArchLinuxSwap UUID=92b7f976-98c5-4eef-9fc7-ba037fd8552e none swap defaults 0 0 ...
也可以看到注释上写的 /dev/sda4
就是交换分区。
用编辑器打开 /etc/default/grub
,找到 GRUB_CMDLINE_LINUX 一行,如果没有就自己添加一行,在这行的末尾引号内添加 resume=你的交换分区
。我的是 /dev/sda4
所以写 resume=/dev/sda4
,也可以用 UUID 替代,也就是 resume=UUID=92b7f976-98c5-4eef-9fc7-ba037fd8552e
。
$ vim /etc/default/grub ... GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" GRUB_CMDLINE_LINUX="nvidia_drm.modeset=1 resume=/dev/sda4" ...
保存退出后,需要重新生成 grub
文件,即在命令行输入:
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
同样也有一堆输出。
尝试 Linux 休眠配置好之后,Linux 休眠可以通过 systemctl
来启动。在命令行上输入:
$ sudo systemctl hibernate
然后电脑就会进行休眠,等到屏幕和键盘灯都灭了就可以开机进入 Windows 进行休眠设置了。
Windows 系统休眠启动 Windows 系统,打开搜索,搜索电源选项,然后选择“选择电源按钮的功能”,将电源按钮的功能改为“休眠”。下面是 Windows7 的演示:
搜索电源选项
将电源按钮的功能改为“休眠”
Windows10 和 Windows11 的设置方法也类似,只是可以设置的选项可能更多,例如接通电源如何、使用电池如何、睡眠按钮如何、关闭盖子如何,可以根据自己的需求进行设置。
Windows 配置好之后,不要关闭控制面板,直接按电源键进行休眠。休眠后重新启动进入 Linux,看看是不是保留着原本的工作状态,如果是,可以再休眠进入 Windows 看自己的控制面板还在不在。
对于 Windows,如果将电源键改成了休眠,该如何真的关机?可以直接使用快捷键 alt+f4
,然后选择关机或者重启即可。
后语一篇文章控制在 2000 字左右差不多了,后面的计划是写在 Linux 上使用 Nvidia 显卡。GNOME 桌面对 Nvidia 显卡的支持更好一点,而且我也没在 KDE 上试过 —— 我更喜欢 GNOME 桌面,所以后面的设置主要针对的是 GNOME 的显示管理器 GDM(GNOME Display Manager)。
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

- 上一篇
- 傻瓜式app制作费用全揭秘

- 下一篇
- PHP中间件模式实现详解及应用
-
- 文章 · linux | 8小时前 |
- Hadoop在Linux下的资源分配原则深度解读
- 423浏览 收藏
-
- 文章 · linux | 8小时前 |
- Tomcat报500错误?手把手教你排查解决!
- 483浏览 收藏
-
- 文章 · linux | 8小时前 |
- Linuxcopirdir命令怎么用?底层原理大揭秘
- 426浏览 收藏
-
- 文章 · linux | 8小时前 | Linux 调试 文件操作 偏移量 Invalidseek
- 解决Linux“Invalidseek”错误的超详细排障攻略
- 252浏览 收藏
-
- 文章 · linux | 8小时前 |
- Linux存储告急?手把手教你一键清理腾空间
- 115浏览 收藏
-
- 文章 · linux | 8小时前 |
- Linux玩转JS日志备份&恢复,超简单教程来了!
- 234浏览 收藏
-
- 文章 · linux | 10小时前 |
- GitLab怎么备份?Linux系统详细备份&恢复图文教程
- 426浏览 收藏
-
- 文章 · linux | 10小时前 |
- Debian也能做动画!手把手教你用GIMP打造基础动画
- 105浏览 收藏
-
- 文章 · linux | 10小时前 |
- Zookeeper节点这样监控,老运维都竖大拇指!
- 238浏览 收藏
-
- 文章 · linux | 10小时前 |
- HDFS如何玩转多种场景?大佬快给我讲讲!
- 313浏览 收藏
-
- 文章 · linux | 10小时前 |
- 手把手教你用日志分析找出网络攻击者
- 349浏览 收藏
-
- 文章 · linux | 11小时前 | Linux
- Linux内存不足“Outofmemory”?手把手教你轻松解决!
- 419浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 茅茅虫AIGC检测
- 茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
- 56次使用
-
- 赛林匹克平台(Challympics)
- 探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
- 74次使用
-
- 笔格AIPPT
- SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
- 84次使用
-
- 稿定PPT
- 告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
- 76次使用
-
- Suno苏诺中文版
- 探索Suno苏诺中文版,一款颠覆传统音乐创作的AI平台。无需专业技能,轻松创作个性化音乐。智能词曲生成、风格迁移、海量音效,释放您的音乐灵感!
- 80次使用
-
- 命令行工具:应对Linux服务器安全挑战的利器
- 2023-10-04 501浏览
-
- 如何使用Docker进行容器的水平伸缩和负载均衡
- 2023-11-07 501浏览
-
- linux .profile的作用是什么
- 2024-04-07 501浏览
-
- 如何解决s权限位引发postfix及crontab异常
- 2024-11-21 501浏览
-
- 如何通过脚本自动化Linux上的K8S安装
- 2025-02-17 501浏览