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


48

我希望这两个操作系统都具有最高的性能,并且希望它们之间无需重新启动即可切换。我有足够的内存(32 GB)和磁盘空间。

两个简单的选项是:

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

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


评论不作进一步讨论;此对话已转移至聊天
DavidPostill


1
我个人使用Windows,仅SSH进入Linux虚拟机即可进行cli访问。每个操作系统的用例是什么?
FreeSoftwareServers

Answers:


163

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

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

24
对于Linux的Windows子系统,这是一个玩笑的性能。与Phoronix上的VirtualBox相比,请参阅最新(2018年)对其可怕性能的精彩回顾:Windows 10 WSL与2018年初的Linux性能。关于并排放置两台笔记本电脑,这并不是我想要的。我想使用一台功能强大的PC并在操作系统之间进行切换,而无需VM的开销或至少绝对要有最低的开销,尤其是在2D图形方面。
PowerDeveloper '18年

104
@PowerDeveloper由于操作系统的设计方式,您根本无法找到所需的内容。操作系统不旨在共享计算机的控制权。您的选择是虚拟化一个或两个操作系统,重新引导以切换操作系统,或使用两台计算机。
Wesley Wiser

55
如果您使用文字并排选项,则可以使用单个键盘/鼠标和KVM开关(或软件选项,例如Synergy),这将为您提供使用键盘快捷键在机器之间切换的选项。
扎克·里普顿'18

14
@JulieinAustin您是对的,大多数现代OS都知道虚拟机管理程序,但这似乎并不是OP真正要求的。他们希望能够像我现在在Slack和Chrome之间切换一样轻松地在实时操作系统之间切换。没有旨在执行此操作的操作系统。此外,他们还表示他们不想受到虚拟化性能的影响。我意识到管理程序在这个部门已经变得更好了,但是与在原始金属上运行相比,仍然存在性能损失。
韦斯利·威瑟

15
@PowerDeveloper,我不能说服您完整阅读链接到的整个性能文章。在我看来,除了I / O之外,WSL的工作还很出色,在某些情况下经常会击败竞争对手。我承认我不会在WSL下进行繁重的工作,但是这使我可以一口气退休VBox,VmWare和CygWin。YMMV。

53

我相信开销最小的解决方案是使用Linux作为主要操作系统,并使用KVM(基于内核的虚拟机,虽然也可以使用KVM切换器,但也可以使用KVM切换器)来虚拟化Windows。您现在可以获得的性能几乎可以在裸机上运行,​​甚至可以通过辅助GPU传递给VM,或者拥有单个专用GPU并为主机使用集成GPU。您还可以使用Looking Glass提供比使用spice(这是virt Manager默认使用的,并且与使用远程桌面基本相同)的响应更快的解决方案。https://forum.level1techs.com/t/looking-glass -指南帮助和支持/ 122387

唯一棘手的部分是硬件兼容性。有很多怪癖,例如需要与Intel VT-D或AMD同类产品兼容的CPU和主板,需要具有UEFI VBIOS的足够新的GPU(或从制造商处获得VBIOS),您的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发行版。您可以尝试以下方法:

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


9
Arch Linux轻巧美观。您可以安装选择的GUI桌面。例如,无需合成的KDE效果很好,并且具有强大的窗口切换功能,但是不需要3D图形硬件。
彼得·科德斯

2
这是我使用的解决方案,因为a)我的大部分性能需求都取决于Windows,b)设置和使用非常容易,并且c)成本为零。
tecu

@PeterCordes Arch不是轻量级的。我有点讨厌,但由于其包装政策,Arch比任何其他发行版的netinstall都要重。Arch不是轻量级的,只是开箱即用。如果您需要轻量级的系统,请选择Alpine或Void或Debian之类的。
不同的

2
@ Different55:以什么方式衡量?您还在谈论所需的文件系统空间吗?还是您说Arch在运行的进程数或内存和/或CPU使用量方面也很“繁重”?因为在VM中使用,后者是一种更重要的权重。磁盘空间很便宜(当您从未读取这些文件时,它们与性能几乎没有关系。)
Peter Cordes,

1
在实际使用空间时,您正在谈论的那种扩展磁盘文件并没有太大帮助,这是不明智的。这是否实际上是一个问题,取决于情况。把钱扔在东西上,即使只是40-50美元也不总是一种选择。
Different55

7

使用X11技术堆栈(大多数)的Unix / Linux GUI应用程序固有地能够显示在远程计算机上(包括网络连接的VM及其主机的场景)。

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


4
理论上是可以的,但是现代的GUI程序(和窗口库)主要使用X11协议将像素图发送到服务器,而不是像XDrawRectangle这样的小请求。不过,在某些软件中,字体仍可以在服务器端处理。无论如何,在客户端和服务器之间不使用共享内存的情况下运行X11是可行的,但它可能比您甚至希望通过从VM guest虚拟机到主机的未加密TCP连接运行还要慢。特别是考虑到Windows X11服务器必须将X11请求转换回Windows绘图功能,而不是直接使用/ 作为视频驱动程序。
彼得·科德斯

7

我是在高性能的情况下完成此操作的,对于我们正在运行的应用程序,其性能几乎达到了本机性能。这不是“如何做”,而是两个示例,说明我在哪里完成了这些工作,并获得了足够的性能并解决了问题。

用于数据科学和软件开发

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

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

用于地球物理,地质和工程工程

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

在当时(大约在2010年),这些机器非常笨拙:Quadro 4000,双四核Xeon和32 GB内存。组装这些设置中最艰巨的部分(据我所记得)与硬件RAID控制器有关。我使用此设置维护了大约十二台计算机,并且在购买这些计算机的整个项目周期(〜2年)中,我们从未遇到过任何问题。对于我们来说,这是一个了不起的结果,因为如果一台机器停机一周,那么与工作站本身相比,这将使我们损失更多的生产力!

结论

您可以使用上述双启动选项获得非常好的性能。我在不同场合使用VirtualBox和VMware进行了此操作,并结合使用Linux发行版(Mint,Ubuntu和CentOS)和Windows版本(7、10),并始终获得满足我需要的性能。

此设置的另一个优点是,如果a)您的情况发生了改变,或者b)此设置不足以满足您的需要,则可以对分区进行核对并保留Windows或Linux。如果性能不能满足要求,您还可以直接启动进入需要更多性能的操作系统。

最后,关于许可的说明:如果以本地方式启动Windows,它将看到不同的硬件并向您询问许可。对于Windows 10来说,这并不是什么大问题,因为在您进行工作时,它只会使您烦恼。我不记得我们是如何为那些地球物理工作站解决这个问题的。我确实记得我们有批量许可证,并且可能还有Microsoft代表的一些帮助。

结语:远程X和VirtualGL

我还使用VirtualGL和GPU集群设置了工作站,以进行高性能的石油模拟。我什至已经在AWS中完成了此操作,但出于多种原因,我不建议这样做:成本,性能和便利性。


5

我不知道有什么方法可以做到这一点,但并没有引起很大的注意。

如果是Chromebook,则可以使用Crouton完成类似的操作。但这是在Chrome操作系统和另一个发行版(名义上是Ubuntu)之间共享内核。由于Windows和Linux使用不同的内核,因此这种方法是不可能的。他们在一起玩的不好。

要引导操作系统,内核需要具有对硬件的低级访问权限,并且即使不是不可能的,要同时运行两个不同的内核(Windows和Linux)也不是一件容易的事。

如果您坚持使用单台计算机,则某种虚拟化可能是您唯一的选择。我没有使用Mac,但是从我所看到的来看,Parallels是无缝的-您可以使用热键在操作系统之间“切换”。我在Windows和Linux上都使用过VMWare,并且对托管(来宾)操作系统的性能感到惊讶,它非常接近本机(尽管我没有测试图形密集的工作负载)。VirtualBox是开源和免费的,它可以正常运行,但是VMWare可以更好地工作。我认为有一个有限的免费版本。

如果您坚持要在两个操作系统上都具有本机性能,那么双重引导是实现该目标的唯一方法。如果您有快速的SSD(例如Samsung 960或类似的SSD),那么重启就不需要那么长时间。


5

硬件虚拟化太有问题了。尽管这对90%的事物有好处,但另外10%的事物有时会阻塞您,最终使您放弃整个概念。

有人在评论中提到了这一点,但我确实认为使用KVM切换器的并排计算机是完成您所要求的最有效方法。

我已经运行了两年并排运行的两台Linux和Windows计算机。我有两个32“监视器并排放置;一个插入Linux机器,另一个插入Windows机器。

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

更重要的是,KVM切换器允许您在控制Linux系统或控制Windows系统之间立即切换。

您还可以更进一步,购买Synergy,它通过使用软件在计算机之间切换鼠标和键盘来完全消除KVM切换的需要。

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


1
我完全同意KVM切换器或协同增效也是不错的解决方案,因此完全不要轻视您的建议,但是您能不能忽略这10%?我使用该设置已有一段时间,并且没有任何问题(嗯,它

好吧,根据我无法使用它的大致次数,我刚弄清了BS编号的10%。SharePoint在虚拟环境中不起作用,因此我不能为此使用它,这是一个很大的问题。当我在Windows上使用Linux VM时,我正在处理的应用程序的构建和运行速度比启动速度慢30%。无法通过虚拟会话播放StarCraft2。剪贴板复制粘贴变得非常烦人。使用VNC代替,但是那是古怪而不是作为一个真正的桌面会话流体
尼古拉斯迪皮亚扎

2
@NicholasDiPiazza:您现在绝对可以通过GPU直通播放Starcraft2。
whatsisname

哇,恶心。将会调查
Nicholas DiPiazza '18年

@NicholasDiPiazza在这三者中,以我的经验,KVM是唯一可以管理接近台式机本机性能的KVM。但是有很多警告和硬件要求。而且,如果要获得出色的图形性能,则需要完全牺牲共享的复制粘贴等,并在第二个GPU和屏幕上运行VM。在这种情况下,除了硬盘性能之外,我基本上对所有性能进行了本地管理。

5

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

https://www.winehq.org/

Wine(最初是“ Wine不是模拟器”的缩写)是一个兼容性层,能够在多个POSIX兼容操作系统(例如Linux,macOS和BSD)上运行Windows应用程序。

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

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

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


4

从技术上讲,您可以在两个系统上都启用休眠状态,然后在将另一个系统置于休眠状态后从休眠状态恢复系统。这将比实际重新启动更快,更方便。我正在当前机器上执行此操作。

到目前为止,似乎没有任何问题,因为Linux使用特殊的交换区来存储休眠图像,而Windows使用系统分区。


4

您需要coLinux。它几乎完美地满足了您的要求-Linux内核在Windows下作为特殊的特权进程运行,并且在内核内部没有性能影响(尽管外围设备仍然是虚拟化的,并且图形通过X11协议进行了处理)。但是,不幸的是,该项目不再得到开发……从那时起,其他方法(VirtualBox等)已经成熟,并提供了更好的用户体验。


4

一切都有优点和缺点。以下是截至2018年5月对我有用的产品:

  • VirtualBox:这有效。现在。每天。我运行Windows主机和Ubuntu VM。一切都很棒,包括多监视器支持和网络连接(我使用桥接模式,因此每个VM仅在与主机分开的网络上显示)。我不喜欢由“大人物”控制的解决方案,但说实话,Oracle至少已经正确地使用了此产品。

  • 运行多台计算机,这是一个很好的方法! Synergy甚至可以让您将鼠标和键盘跨过它们。 DDM USB KVM也不错,但价格昂贵!

  • 双启动:我在大多数计算机上运行四启动或更多启动。您将必须了解GPT和旧式MBT分区,以及每个操作系统如何处理它们。Refind在帮助您使其正确使用方面做得非常出色,尤其是在您拥有半现代硬件的情况下。即使我总是在所有PC上都设置Windows-Ubuntu(-Mac)引导,但实际上,我从来没有真正重启到其他操作系统。太破坏了。相反,总是最终将每台计算机专用于一个OS上的一组特定任务。

  • 在Windows中运行X服务器,然后从网络VM中拉入Linux窗口。可以办到; 我成功运行了x2go一段时间。但请参阅下一项,以了解为什么我不走这条路线。

  • 在(任何)网络上使用VM:我曾尝试过使用AWS VM,vSphere VM和所有其他组合进行开发,由于您是网络的奴隶,因此您总是会在短时间内放弃它在开发过程中不希望处理的问题。即使您拥有惊人的惊人网络资源,也不要考虑它。

最后一点,我应该提到的是,只要有可能,我总是在专用的Ubuntu计算机上进行开发。VirtualBox解决方案挽救了我在美国公司的支持。走进口袋里的VM映像,在笨拙的新Windows Lappie上安装VirtualBox,开始吧!


在美国公司中,您可以随身携带VM映像吗?
彼得·莫滕森

@Peter我并不总是这样。一个复杂的信任问题。
moodboom

2

除了这里提出的其他解决方案之外,还有一种我曾经尝试过的“跨虚拟化”方法:

  • 双启动设置,机器可以启动到Windows或Linux
  • 数据分区(/homeDocuments and Settings)与系统分区分开
  • 虚拟化(VirtualBox,VMware等)安装在两个操作系统中的每个操作系统上,并将各自其他操作系统设置的“克隆”作为VM
  • 网络接口处于桥接模式,因此主机和来宾彼此看起来像是同一局域网中的两台独立计算机
  • VM映像位于与数据分区分开的分区上
  • 每个VM可以作为原始设备(而不是磁盘映像)访问来宾OS的数据分区。

这仍然意味着您将拥有两个操作系统之一的虚拟化开销。但是您可以在引导时决定哪个主机作为主机,哪个主机作为客户机。

数据通过网络共享(例如,在Linux机器上安装Samba)。

您将需要维护每个OS设置两次(主机安装和VM维护两次)—从技术上讲,您有四台计算机,除非您使用下面描述的快捷方式。

由于Linux(至少是Ubuntu的各种版本)可以轻松地适应不断变化的硬件(以至于我可以将磁盘从旧笔记本电脑中取出,安装到新笔记本电脑中,并且只需要重新配置网络适配器),您可以也让Linux VM从原始分区引导系统。这样,对Linux主机所做的更改也将反映在VM中,反之亦然,唯一的例外是与特定硬件设备相关的设置。

Windows许可可能是一个警告。(那时候,我在Windows 2000上,这一切都比较容易。)就Windows而言,您正在两种不同的硬件配置(处理器,磁盘,网络适配器)上运行它。虽然我不确定法律含义,但是产品激活过程可能需要您获得两个许可证。(如果可以让Windows在VM的原始分区上运行,则它可能会检测到硬件更改,并且每次在主机和来宾配置之间切换时都需要重新激活。)


2

我这样做是(尽管我在macOS和Windows之间切换),方法是将Windows安装在云中的VM上,而不托管在Mac上。我以前确实使用Boot Camp进行双重引导,然后使用VMware Fusion进行本地主机VM,但是我发现拥有基于云的Windows和使用远程桌面连接是切换时最方便的。

(我只是可以使用CMD-TAB即时切换桌面。)

希望这种经验对您有所帮助。


1
但是,那必须占用大量的网络带宽?延迟是不是很可怕?
彼得·科德斯

1
@PeterCordes我使用类似的东西(在旧的慢速笔记本上通过VNC访问功能强大的工作PC),尽管在我的情况下是linux-> linux。使用调整后的VNC参数,如果ping时间保持在30ms以下,则延迟几乎可以忽略不计,并且带宽适中-正常工作期间平均每秒千字节。您甚至可以通过此设置播放youtube视频,但是当然,它每秒的拍摄速度高达数兆比特。
RadovanGarabík'18年

我在一个环境中,互联网连接是相当高的,没有ISP参与,我们的连接纤维三角....
布莱恩Tompsett -汤莱恩

2

忘记VM,Wine和双重启动。我强烈建议您仅使用两台计算机,一台Windows无头计算机,和一台使用Remmina之类的Linux远程计算机。

通过共享剪贴板和主文件夹可以实现无缝连接。对于仅需要笔记本电脑的人来说,这可能不切实际,但是如果您只能坐在办公桌旁,那将是一个不错的选择。他们不必是新机器。在2012年左右买到一些较旧的玩具,您可能会躺在那里。


1

一些开箱即用的建议可能适合特定的利基用例:

如果您无头奔跑,那么Linus几乎可以在任何地方奔跑,而且重量轻。我之前已经将其作为Windows服务运行,并且能够从Windows中运行的ssh客户端或X服务器连接到它(因此仅显示所有Linux GUI)。

同样,您可以将树莓派用胶带捆扎在笔记本电脑的背面,将其插入USB端口,并使两台计算机同时运行。同样,您必须使用Windows机器来访问Linux机器,但是使用此解决方案,您仍然可以无忧无虑地进行X / ssh访问,但也可以将远程桌面(RDP)插入PI中并使用X实施,这将使您获得更好的linux桌面体验(我上次检查时,用于Windows的免费X服务器运行缓慢,难以设置且容易出错)

这些都不能为您提供高速的全屏Linux工作站,但是在某些情况下,它们会提供有趣的解决方案。

我只是在开胶带...

大多。


0

虽然我建议使用VM(VirtualBox和VMWare的无缝模式对于更好地集成确实很有用),但还有另一种可能性:

有用于Windows的X服务器(如Xming)和功能强大的远程桌面解决方案(如xpra)
使用其中之一,您可以在VM中运行linux(甚至可以在Windows上运行Linux内核的AndLinux之类的解决方案)中,并在本机Display Server中或通过远程桌面工具显示应用程序。
这样,您可以获得更多的本机窗口,并且取决于VM,UI应用程序的性能会更好。


0

在主机上使用您选择的GNU / Linux系统,然后使用PaaS解决方案。对您来说可行的一种就是“ 影子 ”。

Shadow是一款功能强大的Windows 10 PC,可以播放,工作和浏览。

用计算机做您喜欢做的一切。但是更好。

它基本上是在主机上作为应用程序运行的,但实际上是云中的计算机。您可以无缝切换到该应用程序,就像您专注于其他任何应用程序一样。

https://youtu.be/vVOKBaIxXVA?t=6

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.