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

Ale*_*lin 216 arch-linux virtual-machine virtualbox

我已经在大部分日常工作中改用 Arch Linux,除了游戏和一些没有像 OneNote 那样移植到 Linux 的应用程序之外,我不需要 Windows。我的 Linux 发行版托管在 VirtualBox 中,Windows 作为主机,我非常喜欢这种方式,快照非常有用。

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

有严重的缺点吗?

性能是否受到严重影响,直接安装到机器上会让我的生活更加精彩吗?

Mik*_*kel 153

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

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

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

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

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

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

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

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

运行虚拟机时,最大的性能损失将是您的磁盘 I/O。如果可能,请将您的 VM 放在单独的磁盘上和/或使用固态驱动器。使用虚拟 SATA 驱动器代替虚拟 IDE 驱动器也有帮助。

  • 虽然磁盘 I/O 可能是大文件的一个问题,但我确实记得在来宾操作系统中体验过**令人难以置信的快速许多小文件类型的 IO 操作**。我认为这可能是因为这些文件 IO 操作可能从未真正触及真正的硬盘驱动器(由 VirtualBox/VMWare 等暂时缓存在 RAM 中并异步写入 VM 硬盘驱动器映像文件,导致 VM 内部没有延迟)或仅触及单个硬盘驱动器的文件/位置(即 VM 硬盘驱动器映像文件),而不是许多小的真实文件。 (8认同)
  • @rubenvb 比较是裸机 Linux 与 VM 中的 Linux。 (6认同)
  • “大型编译”在虚拟机中实际上仍然比在 Windows 中运行得更快。这甚至适用于 Linux 上的 GCC 与 Windows 上的 MSVC。 (5认同)

mad*_*lao 80

我教授 Linux 上的实践课程,不幸的是,根据公司政策,我不允许重新格式化课堂提供的笔记本电脑,因此我们采用 VirtualBox 访客方法。

忽略所有性能问题,以下是我注意到的一些注意事项/问题:

1) 桥接模式和无线

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

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

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

2) 桌面集成

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

我的意思是,比较在 GNOME 中断开 USB 设备的容易程度与 Windows 中相同数量的子菜单/点击次数,我知道我每天更喜欢哪一个。

3)USB“窃取”

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

4) 稳定性

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

5) 命令行工具

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

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

这使您可以查看和修改来宾操作系统磁盘的内容,而无需启动它,例如,如果您将其呈现为无法启动。

你还可以做一些事情,比如编写 VDI 的脚本备份——或者只是它们的内容,或者通过符号链接更改 VirtualBox“配置文件”——在 bash 上更容易。

  • 这可能与您实际上在 Linux 安装中遇到麻烦有关。如果 Windows 用户使用他们的 Windows 甚至是普通 Linux 用户的一半,那么他们的 Linux ...... (7认同)
  • 我不同意稳定性。我总是最终破坏我的 Linux,因为我更改了一些配置文件,所以我只在 VM 中使用 Linux。:-) (3认同)

Dep*_*ado 27

不要忘记 VM 是一种仿真。您的 Unix 系统在 VM 中永远不会像安装时那样强大。Archlinux 是为满足您的口味而设计的,它是一个您可以自定义到最大程度的发行版。
我曾经让它在虚拟机上运行,​​但我考虑过在我的电脑上安装它。现在我的系统在大约 15 秒内启动,我的构建速度更快,一切都运行得更好。
Archlinux 没有那么大,你可以把它安装在一个小的分区上(只要确保你的根分区上有足够的空间来存放你的程序(我不得不重新格式化我的根分区,因为它太小了))。如果您仅将 Windows 用于播放,则应考虑该选项 =)

PS:是的,直接在您的计算机上安装将使您的生活更加精彩。:P

  • 仿真是一个有点过载的词。在一种广泛使用的意义上,虚拟化*不是*仿真。现代 CPU 专为虚拟化而设计——在您的 VM 中运行的代码由 CPU 本机处理。VM 有效地桥接 IO - 因为实际上没有那么多事情要做 - 从这里读取,写入到那里。你想体验模拟——尝试在 DOSBox 或 QEMU 中运行 Linux,看看它有多慢! (64认同)
  • 现代系统上的虚拟机不是模拟。如果有任何 IO 被模拟,但通常驱动程序本身知道它们在 VM 中,并且开销很小。 (24认同)
  • 只是犯了一个错误,谢谢你给我的知识^^ 我真的以为这就像一个仿真。(再次感谢)@Piskvor:是的,这就是我的意思,调整它的大小。(不是母语英语,我误解了重新格式化和调整大小) (3认同)
  • 通常不需要重新格式化。我使用 GParted(也可作为 Live CD)调整现有分区(FAT、NTFS、EXT2/3/4)的大小,没有任何不良影响。 (2认同)

ams*_*ams 25

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

  1. Windows 主机、Linux VM(如您所愿)。

  2. Linux 主机,Windows 虚拟机。

  3. 双启动。

如果你想运行 Windows 游戏,我推荐选项 2。

如果您经常想Linux 会话期间使用仅适用于 Windows 的程序(在 Wine 下运行不佳)那么选项 3 将不适合您。

如果您很少使用非游戏 Windows 的东西,以至于重新启动不是一件苦差事,那么选项 3 是最有效的。

所以,问题是:您当前的设置是否让您烦恼?或者,它是否足够好?我能想到的旧的真正缺点是延长的启动时间和较低的内存可用性。

顺便说一句,可以设置双引导系统,您也可以启动相同的Linux在Windows中安装一个虚拟机内,而不是周围的其他方式(Linux的在启动时检测硬件,但Windows有它的驱动程序硬编码的,一旦安装)。

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


War*_*ung 18

如果您主要通过 SSH 使用此框,那么您很有可能处于黄油区,在那里无论是虚拟机还是真实硬件都无关紧要。当您尝试将来宾操作系统用作 GUI 桌面时,会出现其他答案中提到的许多问题。Linux 服务器在 VM 中非常受欢迎;虚拟主机市场的一大块是虚拟机中的 Linux。

我只遇到过几种情况,我被迫在真实硬件上运行 Linux 服务器,而不是在 VM 中:

真正的硬件访问

有时您需要使用一些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 管理界面。

    另一方面,抽象层已将虚拟卷与物理卷断开连接,因此来宾操作系统中的软件 RAID/LVM 层无法有效管理磁盘。该层可能认为以循环方式写入磁盘是一种聪明的做法,但因为它们可能共享一些相同的物理磁盘,性能将受到影响,因为某些磁盘正在背靠背写入。

  • 您可以在真实的硬件系统上创建卷并通过 NFS 将其导出到 VM,但这样做也会降低速度。

您或许可以通过虚拟化优势来抵消上述某些方面的影响,例如能够暂停 VM、将其移动到另一台主机并无缝地重新启动它。


jmt*_*mtd 14

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


WAE*_*AEL 11

基本上,从互联网到安装软件包以及用于初始化硬件的一切都可以正常工作,但是您将为 Windows 机器的任何故障付出代价。


小智 8

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

我只发现使用 VM 有两个明显的缺点。

  1. 如果主机使用无线网络连接,那么来宾中的 vpn 非常不可靠
  2. 多显示器设置通常会在 VM 中出现。

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


小智 8

您可能需要考虑的一件事是确保您的硬件已经使用您正在使用的 linux 发行版进行了测试。我遇到了一个问题,我使用的发行版在 VM 中运行得非常好,但由于显卡未在发行版中进行全面测试,因此本机非常不稳定。例如,Fedora 有一个经过全面测试的硬件列表。事实是,没有 linux 发行版会 100% 稳定使用最先进的硬件和新的错误驱动程序。我试图做你做的事情,但在几个发行版对我来说运行不够稳定后,我最终删除了我的 linux 分区。在我看来,除非你做任何需要硬件加速的事情,否则绝对没有必要在本地运行 linux。


use*_*849 7

每当我启动 VirtualBox 时,我的功耗都会急剧上升。

就我而言,我将 Linux 作为主机和来宾运行,我不知道主机/来宾操作系统是否有所不同,或者这是否是 VirtualBox 或虚拟化技术所固有的。

使用powertop我可以看到进程“VBoxHeadless”通常是我系统上最大的单一电源消耗者。

如果这是桌面系统,也许这对您来说无关紧要,但是在我的笔记本电脑上,我想在不需要来宾系统时关闭 VirtualBox。

  • 我也有这个问题,直到我切换内核。Ubuntu 至少带有用于在虚拟机中运行的特殊内核。我相信,高分辨率计时器是 CPU 占用的罪魁祸首,它在特殊内核版本中被禁用。现在,主机操作系统(目前为 Windows 7)报告的 CPU 使用率在空闲时非常低。 (2认同)

dr *_*bob 6

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

使用虚拟机会更慢。对于大多数东西,现在的虚拟化非常好,差异不会很明显(除了 VM 的可用 CPU/RAM 显着下降);但是,如果您需要花哨的硬件加速(例如,用于图形),您的 VM 可能无法正确转换为您的卡;因此您可能会注意到视频/3-D 渲染在 VM 中受到严重影响。

  • OP 想使用 Windows 进行游戏。在 VM 中运行 Windows 可能会使其速度过慢。 (3认同)

小智 5

我可以告诉你 - 根据我的经验 - 相反的配置更好。我的意思是使用 linux 的主机和使用 Windows 的来宾。这是因为性能和稳定性。在这一刻,我在办公室工作,有一个主机 windows 和一个来宾 linux(我需要它们两个),但在我的个人笔记本电脑中,我有 linux 主机和 windows 来宾。我的笔记本电脑的性能更好。即使我的个人笔记本电脑资源较少。

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

  • `s/whit/with/g`。*whit* 意味着完全不同的东西。 (2认同)