有什么理由不要一直在VM中运行Linux?


214

我已经在大部分日常工作中转而使用Arch Linux,除了游戏以及OneNote等未移植到Linux的应用程序外,不需要Windows进行其他任何操作。我的Linux发行版以Windows为主机托管在VirtualBox中,我非常喜欢这种方式,快照非常有用。

假设我几乎从不关心Windows主机,而将95%的时间花在客户机上,那么我会错过什么呢?

有严重的不利之处吗?

性能会受到严重影响吗?将其直接安装到机器上会使我的生活变得更加美好吗?


35
...还有一个关于使用自由软件的争论。请注意,您也可以颠倒一切,在Linux(或其他一些FOSS OS,例如OpenIndiana)下模拟Windows。另外,OneNote 似乎在Wine下部分起作用
sr_

5
能量消耗。我很想看看在VM中运行会对它产生怎样的影响,但是我猜测这之间存在明显的差异,甚至可能会有很大的差异。
Konrad Rudolph

5
除了已经提供的所有出色答案之外,我还要说的是,在当前环境下,如果Windows由于病毒或其他Windows安全漏洞而损坏,则可能会丢失Linux安装程序。只是要注意的事情。
混沌守护进程2012年

2
您的意思是,除了您的Linux被Windows Update系统地重新启动之外?由于需要启动两个系统,因此重新启动将花费两倍的时间。
德米特里·格里戈里耶夫

如果您在Linux上花费95%的时间,而在Windows中仅花费5%,那么在Linux内部的VM中安装Windows会更好吗?
Sembei Norimaki '18

Answers:


151

假设您可以使一切正常工作,并且不想执行诸如玩游戏或进行大型编译之类的资源密集型任务,那么我认为您会很好的。

您可能会遇到一些基本问题:

  • 访客时间不正确
  • 来宾屏幕尺寸或颜色深度不正确
  • 无法访问USB设备(打印机,电话等)

要解决此问题,您应该安装VirtualBox来宾添加项。有关详细信息,请参见VirtualBox Arch Linux guest虚拟机指南

要获得一些额外的功能,例如USB 2.0和Intel PXE支持,您还可以安装VirtualBox扩展包

之后,您应该了解一些问题:

显然,如果Windows系统也崩溃,则您的Linux VM也会受到影响。我最近发生的问题:

  • Windows主机由于驱动程序错误而崩溃(蓝屏)
  • Windows主机由于安全更新而重新启动

当运行一个虚拟机最大的性能损失将是你的磁盘I / O。尽可能将您的VM放在单独的磁盘上和/或使用固态驱动器。使用虚拟SATA驱动器代替虚拟IDE驱动器也可以提供帮助。


7
虽然磁盘I / O可能是大文件的问题,但我确实记得在来宾OS中,不断经历许多小文件类型的IO操作的速度惊人得惊人。我认为这可能是因为这些文件IO操作可能永远不会真正触摸真正的硬盘驱动器(由VirtualBox / VMWare等缓存在RAM中,并异步写入到VM硬盘驱动器映像文件中,从而导致VM内部没有延迟)或仅触摸一个硬盘驱动器的文件/位置(即VM硬盘驱动器映像文件),而不是许多小的实际文件。
Cetin Sert 2012年

4
实际上,“大型编译”在VM中的运行速度仍然比Windows中的运行速度更快。即使对于Linux上的GCC与Windows上的MSVC而言,也是如此。
rubenvb 2012年

5
@rubenvb比较是裸机Linux与VM中的Linux。
Mikel 2012年

@Mikel“ CPU密集型任务的性能几乎应为零”
Ryu_hayabusa

77

我在Linux上动手实践课程,不幸的是,根据公司政策,我不允许重新格式化该类提供的笔记本电脑,因此我们采用VirtualBox来宾方法。

忽略所有性能问题,这里有一些我注意到的注释/问题:

1)桥接模式和无线

一些无线网卡显然很难拥有“双重身份”,这意味着我们的路由/防火墙/网络课程陷入了困境。这是一个已知问题-大多数无线驱动程序不支持桥接。

桥| Linux Foundation-它不适用于我的无线网卡!

这意味着,如果您使用的是无线接口,则必须做一些额外的工作以使访客拥有“公共” IP。

2)桌面整合

除了设计中的一些障碍外,现代桌面环境还经过深思熟虑,并且提供了一些便利,当它们无法完全访问输入/输出或设备连接/拆卸工具时,便会失去这些便利。例如,如果您在其中具有窗口选择器或通知,则底部的Vbox菜单会变得非常烦人。某些机器使用Ctrl + Alt + cursor_key快捷键(切换工作区)来翻转显示。

我的意思是,比较一下在GNOME中拆卸USB设备有多么容易,与Windows中子菜单/单击的等效数量进行比较,我知道我每天都喜欢哪一个。

3)USB“窃取”

有时,Windows只是不想放开USB驱动器-告诉virtualbox附加它并不总是有效-最有可能是Windows出于某种原因读取内容时。还有一些不是直接存储设备的USB驱动器,但是会执行类似模式切换的操作来使您的驱动器可访问-这些驱动器很讨厌连接到Linux计算机。

4)稳定性

与Windows相比,“破坏” Windows通常更容易,这就是为什么您通常希望Linux“保护” Windows实例,而不是相反。我已经失去了两个工作日,工作人员覆盖了错误的文件,最终破坏了我们对Virtualbox和Linux映像的安装。

5)命令行工具

至少在Linux上,您可以选择使用qemu-nbd和网络块设备来处理Vbox磁盘映像。

QEMU / Images-Wikibooks,开放世界的开放书籍-在主机上安装图像

这使您无需引导即可查看和修改来宾OS磁盘的内容,例如,使其变为无法引导。

您还可以执行一些操作,例如脚本化VDI的备份-或仅备份其内容,或通过符号链接更改VirtualBox“配置文件”-在bash上要容易得多。


2
我不同意稳定性。我总是会破坏Linux,因为我更改了一些配置文件,因此仅在VM中使用Linux。:-)
itmuckel

6
这可能与您实际上在Linux安装中搞混的事实有关。如果Windows用户使用他们的Windows甚至比使用Linux的普通Linux用户多一半...
madumlao

27

不要忘记VM是一种仿真。您的Unix系统在VM中的功能永远不会比安装的功能强大。Archlinux的制作符合您的口味,它是您可以自定义最大程度地分发的发行版。
我曾经使它在VM上运行,尽管我考虑过一定要在计算机上安装它。现在,我的系统可以在15秒钟内启动,我的构建速度更快,并且一切运行得更好。
Archlinux并不大,您可以将其安装在一个小的分区上(只需确保您的程序在根分区上有足够的空间(我必须重新格式化根分区,因为它太小了))。如果仅将Windows用于播放,则应考虑该选项=)

PS:是的,直接在计算机上安装将使您的生活变得更加美好。:P


1
通常无需重新格式化。我使用了GParted(也可以作为实时CD获得)来调整现有分区(FAT,NTFS,EXT2 / 3/4)的大小,而没有不良影响。
Piskvor

63
仿真有点重载。在一种广泛使用的意义上,虚拟化不是仿真。现代CPU专为虚拟化而设计-VM中运行的代码由CPU本地处理。VM可以有效地桥接IO-因为实际上没有太多事情要做-从此处读取并写入那里。您想体验仿真-尝试在DOSBox或QEMU中运行Linux,看看它慢了多少!
苗条的

23
现代系统上的虚拟机不是仿真的。如果可以模拟IO,但通常驱动程序本身会知道它们在VM中,并且几乎没有开销。
MikeyB 2012年

3
刚刚犯了一个错误,感谢您为我提供的知识^^我真的以为这是一种模仿。(再次感谢)@Piskvor:是的,这就是我的意思,请调整大小。(不是母语,我误会了重新格式化和调整大小)
Depado

24

您可以通过三种方式设置两个操作系统:

  1. Windows主机,Linux VM(根据需要)。

  2. Linux主机,Windows VM。

  3. 双启动。

如果要运行Windows游戏,我建议您选择选项2。

如果您经常 Linux会话中使用仅Windows程序(在Wine上运行不佳)那么选项3对您来说效果不佳。

如果您使用非游戏Windows的东西,那么很少重新启动就很麻烦,那么选项3是最有效的。

因此,问题是:您当前的设置会惹恼您吗?还是足够好?我能想到的旧的实际缺点是延长的启动时间和较低的内存可用性。

顺便说一句,可以设置双启动系统,在该系统中您也可以启动Windows中VM中相同的Linux安装,但是反之则不行(Linux在启动时会检测到硬件,但是Windows已将其驱动程序进行了硬编码。 )。

如果您想要先尝试后购买双重引导设置,请尝试Ubuntu“ wubi”安装程序。(是的,我知道您是Arch的人,但是您只是在尝试,对吧?)Wubi像VM一样,将磁盘作为Windows中的映像文件安装,但是将其作为主机OS引导。没有分区干预,完成后,您可以从Windows控制面板直接将其卸载。唯一的缺点是磁盘I / O性能会稍微降低。


我需要用google找出如何双重引导并在Windows的VM中使用相同的ubuntu?如果那不太难做到,那对我的工作情况将是完美的。
Noah 2015年

1
这是可能的,但并非直截了当。主要问题是每种情况下所有设备驱动程序和设置都将不同,因此您可能需要两组配置文件。简而言之,要维持它真是痛苦。我不知道Google使用了哪些关键字。
2015年

1
@arleslie安装Ubuntu并非难事。困难的部分是在VM中引导相同的安装。不是没有,但是超越了五笔。
2015年

1
无论如何,答案已经提到五笔了,那你有什么意思呢?
2015年

1
@Noah你在寻找类似这样?它很旧(2009年),但描述了Windows / Linux双重引导的步骤,该双重引导从Windows内部启动Linux虚拟机,并且该虚拟机使用“相同Linux”作为双重引导。它指向“ Virtual Box”用户手册的第134页,第9.10节称为此原始硬盘访问权限
aeroNotAuto16年

18

如果您主要通过SSH使用此框,则很有可能您处在黄油区,在这里无论是虚拟机还是在实际硬件上都没有太大关系。当您尝试将来宾操作系统用作GUI桌面时,会出现其他答案中提到的许多问题。Linux服务器对虚拟机内部非常满意;虚拟主机中的Linux是网络托管市场中很大的一块。

在少数情况下,我不得不在真正的硬件上而不是在VM上运行Linux服务器:

真正的硬件访问

有时您需要使用某些VM系统无法虚拟化的PCI卡。假设是4通道MPEG-2解码器。某些VM系统可以将卡的专有所有权授予VM,例如通过Intel的VT-d技术,但这并非没有问题:

  • 速度快了。这可能很重要。

  • 并非所有VM系统都可以执行此操作,并且您可能没有自由切换到可以执行的操作。

  • 与VMware ESXi 5一样,可能会产生无关紧要的后果,在这种情况下,授予虚拟机卡所有权需要重新引导主机,然后阻止其为该虚拟机创建快照。(非本质上,我的意思是这些问题可以解决,只需要开发时间。)

大存储

您的VM系统可能无法创建虚拟磁盘,其大小与裸机允许的实际磁盘一样大。例如,VMware ESXi 5的虚拟卷大小限制为2 TB。如果您需要在VM中有更大的单个卷,则必须跳过障碍以解决此限制:

  • 您可以使用VT-d将RAID控制器推入VM,但同样存在问题。

  • 您可以将2 TB虚拟卷传递到VM并将它们与LVM串在一起,但是您也为自己买了很多问题。

    一方面,当其中一个物理磁盘消失时,如果您在裸机上使用来宾操作系统,则可以使用提供的管理软件(例如3Ware的3DM或tw_cli软件)来诊断和修复它。但是,请尝试查找将在VMware ESXi 5.0主机上运行的版本!现在,您被迫重新启动,以便可以使用BIOS管理界面。

    另外,抽象层已将虚拟卷与物理卷断开连接,因此来宾OS中的软件RAID / LVM层无法有效地管理磁盘。该层可能认为它以循环方式写入磁盘很聪明,但是由于它们可能共享一些相同的物理磁盘,因此性能会受到打击,因为某些磁盘正在进行背对背写入。

  • 您可以在真实的硬件系统上创建该卷,然后通过NFS将其导出到VM,但是这样做也会影响速度。

您也许可以利用虚拟化优势来抵消上述某些问题,例如暂停虚拟机,将其移至另一台主机并无缝地再次启动备份的能力。


14

您在Linux中使用什么图形环境?大多数现代桌面环境(GNOME,KDE,Unity)都在朝着要求硬件3D加速支持正常工作的方向发展。目前,对VM内部图形的硬件加速支持是一种相对不成熟的技术。VirtualBox具有实验支持


我目前正在2D模式和后备模式下运行GNOME,对我来说效果很好。我还尝试了在VM上打开3d加速功能,并使GNOME顺利运行并且没有太多麻烦。Arch提供了相当不错的指南,说明了如何支持似乎可以解决问题的大多数VirtualBox功能。
亚历山大·库里林

1
实际上,llvmpipe的问世意味着您并不需要更长的3D硬件加速时间-GNOME 3.4 live CD(基于Fedora 17)可以在VirtualBox中运行gnome-shell,而无需添加来宾。当然,性能会有所下降,因为渲染是由软件完成的,但是结果仍然比我尝试使用VirtualBox的加速OpenGL支持运行gnome-shell的效果要好。
calum_b 2012年

11

基本上,从Internet到安装软件包以及初始化硬件,一切都可以正常工作,但是Windows机器的任何故障都将由您承担。


那么,如果您大多数时候都在Linux VM中工作,那么它失败的频率是多少?
smci

8

我使用了类似的配置,我发现它非常有用,这仅仅是因为我可以在机器之间复制和移动我的工作Linux VM。

我仅发现使用虚拟机有两个重大缺点。

  1. 如果主机正在使用无线网络连接,则来宾中的VPN非常不可靠
  2. 多监视器设置通常会吸收VM。

通过使用VMWare和Unity可以有效地克服第2点的缺点-Unity是一项VMWare功能,可在主机桌面上的Windows中运行应用程序(不要与Ubuntu Unity混淆)。


在遵循Arch Linux安装指南之后,我对VirtualBox和GNOME的使用2完全没有问题。
亚历山大·库里林

8

您可能要考虑的一件事是确保您的硬件已经过使用的Linux发行版的测试。我遇到的一个问题是,我使用的发行版在VM中运行得很好,但由于未经过发行版的图形卡测试,因此本来就非常不稳定。例如,Fedora列出了经过全面测试的硬件。事实是,使用最新的,有故障的驱动程序的最新硬件,不会使linux发行版保持100%稳定。我尝试做您所做的事情,但是在几个发行版对我来说不够稳定之后,最终删除了我的linux分区。以我的观点,除非您做任何需要硬件加速的工作,否则绝对不需要本机运行linux。


^这!人们说“ Windows可以感染病毒”和“ Linux更加稳定”,事实是,如果您主要将Windows用作主机,那么您就不会感染任何病毒,但是使用Linux,您很有可能会陷入痛苦的境地来驱动缺点。
罗尔夫

7

每当我启动VirtualBox时,功耗都会急剧增加。

就我而言,我既将Linux作为主机又作为来宾运行,并且我不知道主机/来宾OS是否有所作为,或者这是否是VirtualBox或虚拟化技术固有的。

使用powertop,我可以看到进程“ VBoxHeadless”通常是系统上最大的功耗用户。

如果这是台式机系统,那么也许对您而言并不重要,但是在我的笔记本电脑上,我想在不需要访客系统的任何时候关闭VirtualBox。


2
在切换内核之前,我也遇到了这个问题。Ubuntu至少具有在虚拟机中运行的特殊内核。我相信高分辨率计时器是占用CPU的罪魁祸首,在特殊的内核版本中已禁用该计时器。现在,主机OS(当前为Windows 7)报告的CPU使用率在闲置时已很低。
FooF,2012年

6

如果您不将VM用于特殊目的(例如,需要克隆VM;在服务器之间复制/移动;具有多个不同的测试环境;等等),建议您将Linux作为95%活动的主要OS安装,然后将5%的Windows活动中的Windows作为VM从Linux中安装。(除非您的5%的Windows活动非常占用CPU /内存,例如使用photoshop或视频编辑。)如果您将linux作为主要操作系统,则它将具有对所有内存和所有cpu核心的完全访问权限。但是,如果它在VM中,则只能为其分配一小部分内存CPU内核。通常,最多只能将计算机的一半资源分配给VM。因此,如果您有一台具有8 GB RAM的四核计算机,但只为您的VM分配了1核和2GB,

使用VM会比较慢。对于大多数事物而言,当今的虚拟化非常好,并且差异不会很明显(除了VM可用CPU / RAM的明显下降之外);但是,如果您需要高级硬件加速(例如,用于图形),则您的VM可能无法正确转换为您的卡;因此,您可能会注意到VM中的video / 3-d渲染受到很大影响。


3
OP希望使用Windows进行游戏。在VM中运行Windows可能会使其变得太慢。
Mikel

@Mikel-重新阅读后,我发现我最初错过了Windows游戏位。
jimbob博士2012年

5

我可以告诉您-根据我的经验-相反的配置更好。我的意思是主机与linux,来宾与Windows。这是因为性能和稳定性。此时此刻,我在办公室里工作,有一个主机窗口和一个来宾Linux(我都需要它们),但是在我的个人笔记本电脑中,我有一个主机和Linux,并带有Windows来宾。而且我的笔记本电脑的性能更好。即使我的个人笔记本电脑资源较少。

无论如何,我在您的配置中看不到任何问题(没有解决方法)。这只是一个品味问题。


+1是因为VMware,在Windows上绝对是猪。为了完成工作,它必须安装Linux上的所有现成的东西。例如,我已经使它成为我网络的一个哈希,而对于Linux上的任何VM系统,这从来没有发生过。VirtualBox在平台之间更接近1:1的匹配,但是由于优越的命令行环境,我仍然更喜欢在Linux上运行它,因为它VBox是一个冗长的命令系统。
沃伦·扬

2
s/whit/with/g白衣意味着完全是另一回事。
SinanÜnür'12

4

我在VirtualBox VM中运行Ubuntu,我认为我遇到的唯一问题是到主机的OpenGL加速传递。


3

我开始在虚拟机中做* nix,然后再做您的工作。这对于尝试它非常有用,但是我建议将其翻转一下。Windows可以在VM中出色地运行。如果您主要使用Linux,那么为什么不让主机系统使用Linux?

优点:

  1. 更好地控制主机问题(例如,Linux崩溃/自动重启的可能性较小)
  2. 闲置时,Linux使用的资源比Windows少(您可以改为分配给虚拟机的资源)
  3. 我认为Virtualbox在Linux上可以更好地运行。我已经尝试过两种方式。
  4. 易于设置的超快速度提升了Linux上的虚拟机。我在2个家用硬盘上使用软件RAID,以使Windows XP VM在8秒钟内引导进入firefox

缺点:

  1. 将Linux作为主机运行时可能的驱动程序问题
  2. 在Linux上可能难以实现3D加速
  3. 如果您使用Windows玩游戏,则虚拟机可能不够快

2

只要您想要在主机和客户端中执行的所有操作都能按需进行,绝对没有理由不这样做。

从2000年初到2003年中,我在装有VMware的Sony PCG-Z505上使用了此设置。主机:Windows 98和客户端SuSE Linux。进行该设置的主要原因是,我可以在移动时在主机Outlook Express上的Linux下使用imap服务器(之前在Linux上使用Win98在台式机上使用imap服务器)。Linux客户端也会在Linux中进行垃圾邮件过滤等。我还可以在更熟悉的环境中使用ssh登录工作中的服务器。

VM主机很好地使Linux免受硬件问题的影响。IIRC在无线方面存在一些问题,但大多数时候我是在家中或办公室中使用有线连接。如果不是这样,我会让Outlook Express提取邮件并将其推送到imap服务器,仅在通过无线方式时会暂时失去垃圾邮件过滤功能。

我无法以其他方式运行它(就像之前在桌面上所做的那样),因为我通常在没有图形的情况下运行Linux,否则内存中将无法容纳所有内容。使用Linux作为主机,我将不得不一直在图形模式下运行它,而在Windows 98下留下的内存太少而无法运行Word。


1

我也使用此配置(在Windows上为Ubuntu guest)。

优点:

  • 初始窗口没有任何变化,我公司的IT部门将支持任何与Windows相关的问题/崩溃。

缺点:

  • 启动缓慢:需要启动Windows,然后启动虚拟机。
  • 没有无线桥接。

1

我为已经存在的(和出色的)答案添加了一条注释:还可以并行运行Linux和Windows。

合作Linux项目的目标是:

合作Linux是第一个免费的开放源代码工作方法,可在本机Windows上最佳地运行Linux。更一般而言,协作Linux(简称为coLinux)是Linux内核的端口,允许它与一台计算机上的另一个操作系统一起协同运行。

甚至还可以运行Linux发行版:TopologiLinuxandLinux

不幸的是,这些项目似乎已被放弃。coLinux的最新版本为3年,两个发行版的最新版本为8年。

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.