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 #... # /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 | 23分钟前 |
- Linux虚拟机搭建与配置详细教程
- 313浏览 收藏
-
- 文章 · linux | 1小时前 |
- Linux上FileZilla卸载正确步骤
- 172浏览 收藏
-
- 文章 · linux | 2小时前 |
- LinuxSFTP配置SSH密钥认证详解
- 291浏览 收藏
-
- 文章 · linux | 2小时前 |
- Linux下Swagger安全攻略
- 212浏览 收藏
-
- 文章 · linux | 2小时前 |
- LNMP中PHP加速技巧与优化攻略
- 420浏览 收藏
-
- 文章 · linux | 3小时前 |
- Linux下DHCP客户端获取IP的简单方法
- 419浏览 收藏
-
- 文章 · linux | 4小时前 |
- Linuxstrings命令提升查找精准度技巧
- 149浏览 收藏
-
- 文章 · linux | 5小时前 |
- DebianStrings性能测试优化技巧
- 430浏览 收藏
-
- 文章 · linux | 6小时前 |
- Linux下Kafka数据备份策略深度解析
- 448浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 谱乐AI
- 谱乐AI是由青岛艾夫斯科技有限公司开发的AI音乐生成工具,采用Suno和Udio模型,支持多种音乐风格的创作。访问https://yourmusic.fun/,体验智能作曲与编曲,个性化定制音乐,提升创作效率。
- 6次使用
-
- Vozo AI
- 探索Vozo AI,一款功能强大的在线AI视频换脸工具,支持跨性别、年龄和肤色换脸,适用于广告本地化、电影制作和创意内容创作,提升您的视频制作效率和效果。
- 6次使用
-
- AIGAZOU-AI图像生成
- AIGAZOU是一款先进的免费AI图像生成工具,无需登录即可使用,支持中文提示词,生成高清图像。适用于设计、内容创作、商业和艺术领域,提供自动提示词、专家模式等多种功能。
- 6次使用
-
- Raphael AI
- 探索Raphael AI,一款由Flux.1 Dev支持的免费AI图像生成器,无需登录即可无限生成高质量图像。支持多种风格,快速生成,保护隐私,适用于艺术创作、商业设计等多种场景。
- 6次使用
-
- Canva可画AI生图
- Canva可画AI生图利用先进AI技术,根据用户输入的文字描述生成高质量图片和插画。适用于设计师、创业者、自由职业者和市场营销人员,提供便捷、高效、多样化的视觉素材生成服务,满足不同需求。
- 7次使用
-
- 命令行工具:应对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浏览