如何安装 Linux 和 Windows 7 以并行运行而不需要重新启动?

Pow*_*per 49 windows linux fedora vmware virtualbox

我希望两个操作系统都具有最高性能,并且能够在不重启的情况下在它们之间切换。我有足够的内存 (32 GB) 和磁盘空间。

两个简单的选择是:

  1. 双启动 - 这不允许在操作系统之间进行即时或几乎即时的切换
  2. 使用 VM(例如 VirtualBox)——这会显着损害托管操作系统的性能,尤其是图形

最好(例如通过键盘快捷键或其他类似方法)在两个操作系统之间切换,其中一个是热的,另一个是“热待机”。

Sir*_*ide 162

您在问题中没有提到另外两种并行运行 Windows 和 Linux 的方法:

  1. 如果您运行的是 64 位 Windows 10,则可以安装适用于 Linux 的 Windows 子系统。这将使您可以在 Windows 上本地运行一些 Linux 软件。
  2. 您可以按照此示例并排运行两个操作系统(字面意思): 在此处输入图片说明

  • @PowerDeveloper 由于操作系统的设计方式,您正在寻找的东西根本不可能。操作系统并非旨在共享对计算机的控制。您的选择是虚拟化一个或两个操作系统,重新启动以切换操作系统,或使用两台计算机。 (104认同)
  • 如果您使用文字并排选项,您可以使用单个键盘/鼠标和 KVM 切换器(或 Synergy 等软件选项),这将使您可以选择使用键盘快捷键在机器之间切换。 (55认同)
  • 对于 Linux 的 Windows 子系统,这是一个性能方面的笑话。查看最新(2018 年)对其糟糕性能的精彩回顾,甚至与 Phoronix 的 VirtualBox 相比:[Windows 10 WSL 与 2018 年初的 Linux 性能](https://www.phoronix.com/scan.php?page=文章&item=wsl-february-2018&num=1)。关于并排放置两台笔记本电脑,这不是我想要的。我想使用一台功能强大的 PC 并在操作系统之间切换,没有虚拟机的开销,或者至少有绝对最低的开销,尤其是在 2D 图形方面。 (24认同)
  • @PowerDeveloper,我不相信您完全*阅读*了您链接到的整篇性能文章。在我看来,除了 I/O,WSL 的工作还不错,经常在一些情况下击败竞争对手。我承认我没有在 WSL 下做*大量*的工作,但它允许我一举退休 VBox、VmWare 和 CygWin。天啊。 (15认同)
  • @JulieinAustin 大多数现代操作系统都知道管理程序是对的,但这似乎并不是 OP 真正要问的。他们希望能够像我现在在 Slack 和 Chrome 之间切换一样轻松地在实时操作系统之间切换。没有设计用于执行此操作的操作系统。此外,他们还表示,他们不希望虚拟化对性能造成影响。我意识到管理程序在这个部门已经变得更好了,但与在原始金属上运行相比仍然存在性能损失。 (14认同)
  • 我不禁想知道这个答案是否启发了 [今天的 xkcd](https://xkcd.com/1988/)。 (9认同)
  • @PowerDeveloper 确切地说,您链接到的文章总结道:“总体而言,对于那些需要 Windows 10 系统支持 Linux 的人来说,Windows 子系统 Linux (WSL) 继续表现出色。最大的警告仍然是 I/O 性能要慢得多,但它看看微软今年能在多大程度上推动其业绩,将会很有趣。” (5认同)
  • 严格来说,WSL 中没有 Linux(内核)。GNU/Linux 之间的区别在这里很重要。 (4认同)
  • 运行 WSL 不是运行 Linux,它只是 Windows。WSL 中没有 Linux。WSL 中的 Linux 与 Wine 中的 Windows 一样多。 (3认同)
  • @WesleyWiser - 虚拟化早已发展到多个 O/S 映像可以通过不同级别的“共享”并行执行的地步,每个映像都可以完全控制存在的任何管理程序分配的资源。管理程序功能不是限制——IBM VM/CP 大约有 50 年历史——只要 x86 存在,x86 空间中的资源和性能就一直受到限制。 (2认同)

thn*_*erm 52

我相信开销最少的解决方案是使用 Linux 作为您的主要操作系统并使用 KVM(基于内核的虚拟机,而不是 KVM 交换机,尽管也可以使用)来虚拟化 Windows。现在,您可以获得非常接近在裸机上运行的性能,您甚至可以将辅助 GPU 传递给 VM,或者使用单个专用 GPU 并为主机使用集成 GPU。您还可以使用窥镜获得比使用 spice 响应更快的解决方案(这是 virt manager 默认使用的,与使用远程桌面基本相同。)https://forum.level1techs.com/t/looking-glass -guides-help-and-support/122387

唯一棘手的部分是硬件兼容性。有很多怪癖,比如需要一个与 Intel VT-D 或 AMD 等效产品兼容的 CPU 和主板,需要一个足够新的具有 UEFI VBIOS(或从制造商那里获得 VBIOS)的 GPU,你的 IO 通过什么芯片这有助于将外围设备专用于 VM 等。

我建议您阅读这篇博文,以了解您必须执行哪些操作才能进行设置。这绝对不像使用 virtualbox 或 VMWare 那样简单,但是如果你通过 virt manager 设置它,你可以跳过这个人经历的很多手动步骤。Arch wiki 上的 KVM、QEMU 和 VFIO 下还有更多关于所有这些的信息。https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/

使用 2600k,您需要降级到非 K 版本并检查您的主板是否也支持 VT-D。我在 3700k 和不兼容的主板上遇到了同样的问题,不得不将它们都换掉,但我最终通过 ebay 购买和销售赚了一点钱。

为了详细说明我使用的一些术语,这里有一些简短的描述。

Virt-manager(或 Virtual Machine Manager)是一个 GUI 应用程序,用于使用 KVM 管理您的虚拟机。您可以认为这让您的体验更接近于使用 VMWare 或 VirtualBox 时的体验。它为您提供了一个设置 VM 的向导,允许您更改正在通过的硬件,显示资源使用图,并让您管理电源。更多信息和屏幕截图可在以下网站上获得:https : //virt-manager.org/

Spice 为您提供对 VM 的远程访问。它与使用远程桌面非常相似,无论是使用还是性能,但默认情况下由 virt manager 使用。我希望我的描述能更具体,但我没有经常使用它,甚至网站对它的具体内容也很模糊。https://spice-space.org/

窥镜是使用 Spice 之类的替代方法,但具有极低的延迟。它将帧缓冲区从您的 GPU 复制到您的系统内存,然后将其吐出到屏幕上。它仍处于开发初期,但效果很好,更适合需要响应更快的解决方案的应用程序。项目网站上提供了非常全面的设置指南:https : //looking-glass.hostfission.com/quickstart

Spice 和Looking Glass 的另一种替代方法是将显示器连接到通过GPU 的输出之一。这更具响应性,但需要在同一显示器上使用另一个显示器或切换输入。


小智 11

正如该问题的所有其他答案所提到的,虚拟化是必经之路。最小化性能损失的一种方法是将 Windows 作为主要操作系统运行,并虚拟化轻量级Linux 发行版。在我的脑海里,你可以尝试:

通过选择轻量级发行版,您可能能够充分降低性能以设置您满意的系统。

  • Arch Linux 很好而且很轻;您可以安装您选择的 GUI 桌面。例如,没有合成的 KDE 运行良好,具有强大的窗口切换功能,但不需要 3D 图形硬件。 (9认同)
  • 这是我使用的解决方案,因为 a) 我的大部分性能需求在于 Windows,b) 设置和使用非常容易,并且 c) 成本为零。 (2认同)
  • @Different55:不过,以什么方式测量?您还在谈论所需的文件系统空间吗?或者您是说 Arch 在运行的进程数量或内存和/或 CPU 使用量方面也“繁重”?因为对于在 VM 中使用,后者是更重要的权重;磁盘空间很便宜(并且当您从不读取这些文件时,与性能几乎无关。) (2认同)

rac*_*man 7

使用 X11 技术栈(其中大部分)的 Unix/Linux GUI 应用程序天生就能够在远程机器上显示(包括网络连接的 VM 及其主机的场景)。

您可以在 Windows 机器上安装 X11 显示服务器(有多个免费和非免费选项),在 VM 中运行您的 linux 系统(甚至多个 linux 系统),并在 windows 中进行实际的图形处理- 端 X11 服务器。linux 系统中的 GUI 应用程序将通过本地网络连接到 X11 显示服务器(如何设置超出了这里的范围,因为有很多不同的方法可以做到这一点。指针:DISPLAY 环境变量,带 X11 转发的 ssh, XDMCP)。

  • 理论上是的,但是现代 GUI 程序(和窗口库)主要使用 X11 协议将像素图发送到服务器,而不是像\XDrawRectangle 这样的小请求。不过,在某些软件中,字体可能仍会在服务器端进行处理。无论如何,在客户端和服务器之间没有共享内存的情况下运行 X11 是可行的,但可能比您想要的速度慢,即使是通过从 VM 来宾到主机的未加密 TCP 连接运行。特别是考虑到 Windows X11 服务器必须将 X11 请求转换回 Windows 绘图功能,而不是直接使用 /*being* 视频驱动程序。 (4认同)

Lia*_*m M 7

我在高性能环境中完成了这项工作,并为我们正在运行的应用程序实现了接近本机的性能。这与其说是“这是如何做到的”,不如说是两个例子,说明我已经做到了这一点并获得了足够的性能并解决了一个问题。

用于数据科学和软件开发

我当前的工作站(一台笔记本电脑和我的工作站)在两个单独的分区上并排安装了 Windows 10 和 Ubuntu。启动我的机器后,我可以选择 Windows 或 Ubuntu 并启动到任一操作系统。在 Ubuntu 中,我使用 VirtualBox 来引导本地 Windows 分区并像运行任何其他虚拟机一样运行它(请参阅此处)。

一切正常:拖放、共享剪贴板和文件共享。我不断地在我的虚拟机中运行大型的、多线程的 Excel 电子表格(不要射击 - 我没有构建它们!),一切都很好。

用于地球物理、地质和工程工作

几年前,我使用 CentOS 和 Windows 7 构建了一个类似的设置。这样我的同事就可以在 Linux 中运行昂贵的、对性能有要求的地球物理模拟,同时仍然能够在 Windows 中访问类似的对性能有要求的 2D 和 3D 绘图软件7(以及 Outlook 和 Microsoft 套件的其余部分)。我们试用了 VirtualBox,但是有了钱,我们最终使用 VMware Workstation 和 GPU pass-through 解决了这个问题(与薪水和软件许可相比,成本微不足道)。对于我们的应用程序,我们在 Windows 中实现了非常接近本机的性能,每个人都对设置非常满意。

在他们的时代(大约 2010 年),这些机器非常丰富:Quadro 4000、双四核 Xeon 和 32 GB 内存。组装这些设置(据我记得)最困难的部分是硬件 RAID 控制器。我使用这种设置维护了大约 12 台机器,在购买这些机器的整个项目生命周期中(约 2 年),我们从未遇到过任何问题。这对我们来说是一个了不起的结果,因为如果一台机器停机一周,那将比工作站本身造成更多的生产力损失!

结论

使用上述双引导选项可以获得非常好的性能。我已经在不同场合使用 VirtualBox 和 VMware 完成了这项工作,在 Linux 发行版(Mint、Ubuntu 和 CentOS)和 Windows 版本(7、10)中组合使用,并且始终能够满足我的需求。

此设置的另一个优点是,如果 a) 您的情况发生变化,或 b) 此设置不足以满足您的需要,则您可以取消分区并将 Windows 或 Linux 抛在后面。如果性能没有削减它,您还可以直接启动到需要更多性能的操作系统中。

最后,关于许可的说明:如果您本机启动 Windows,它将看到不同的硬件并询问您有关许可的信息。这对 Windows 10 来说不是问题,它只会在你处理工作时唠叨你。我不记得我们是如何为那些地球物理工作站解决这个问题的;我记得我们有一个批量许可证,可能还有来自 Microsoft 代表的一些帮助。

尾声:远程 X 和 VirtualGL

我还使用VirtualGL和 GPU 集群设置了用于高性能石油模拟的工作站。我什至在 AWS 中也这样做过,但出于多种原因我不推荐它:成本、性能和便利性。


Nic*_*zza 5

硬件虚拟化太成问题了。虽然它对 90% 的事情都有好处,但另外 10% 有时会阻止你并最终让你放弃整个概念。

有人在其中一条评论中提到了这一点,但我确实认为使用 KVM 切换器的并排机器是满足您要求的最有效方式。

我现在运行两台并排的 Linux 和 Windows 机器已经有几年了。我有两个 32" 显示器并排放置;一个插入 Linux 机器,另一个连接到 Windows 机器。

我有一个可滚动的可调节键盘/鼠标桌,可让我站立或坐下,并使用键盘/鼠标在任一(或两者)显示器前居中。

关键是 KVM 切换器允许您在控制 Linux 机器或控制 Windows 机器之间立即切换。

您还可以更进一步,购买 Synergy,通过使用软件在机器之间切换鼠标和键盘,完全不需要 KVM 切换器。

不再有烦人的双启动、KVM/VirtualBox/VMWare 开销或不兼容问题,您仍然感觉它是一台计算机。

  • @NicholasDiPiazza:您现在绝对可以通过 GPU 直通玩星际争霸 2。 (2认同)

小智 5

根据您要实现的目标,您可以尝试 Wine。

https://www.winehq.org/

Wine(最初是“Wine Is Not an Emulator”的首字母缩写词)是一个兼容层,能够在多个符合 POSIX 的操作系统(例如 Linux、macOS 和 BSD)上运行 Windows 应用程序。

这将允许您在 Linux 上并排运行 Linux 和(某些)Windows 应用程序。

可以在https://appdb.winehq.org/找到已知可与 Wine 一起使用的 Windows 应用程序列表。

我个人使用它在 Linux 上运行一些使用 DirectX 的游戏,而 DirectX 没有 Linux 版本。众所周知,Microsoft Office 等应用程序可以使用它。