有什么理由不一直在虚拟机中运行 Linux?

有什么理由不一直在虚拟机中运行 Linux?

我已经转而使用 Arch Linux 来完成大部分日常工作,除了游戏和一些未移植到 Linux 的应用程序(例如 OneNote)之外,不需要 Windows 来进行任何操作。我的 Linux 发行版托管在 VirtualBox 中,Windows 作为主机,我非常喜欢这种方式,快照非常有用。

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

有严重的缺点吗?

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

答案1

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

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

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

要解决此问题,您应该安装VirtualBox 来宾添加。请参阅VirtualBox Arch Linux 访客指南了解详情。

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

之后,您应该了解以下几个问题:

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

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

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

答案2

我教授 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 - 维基教科书,开放世界的开放书籍 - 在主机上安装图像

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

您还可以执行诸如编写 VDI 备份脚本之类的操作 - 或者只是其内容,或者通过符号链接更改 VirtualBox“配置文件” - 在 bash 上更容易。

答案3

不要忘记虚拟机是一个仿真。你的 Unix 系统在虚拟机中永远不会像安装的那样强大。 Archlinux 是为了满足您的口味而设计的,它是一个您可以最大限度地定制的发行版。
我曾经让它在虚拟机上运行,​​尽管我想过将它安装在我的计算机上。现在我的系统启动时间大约为 15 秒,我的构建速度快了很多,一切都工作得更好。
Archlinux 不是那么大,你可以将它安装在一个小分区上(只要确保你的根分区上有足够的空间来容纳你的程序(我不得不重新格式化我的根分区,因为它太小了))。如果您仅使用 Windows 进行游戏,则应该考虑该选项 =)

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

答案4

如果您主要通过 SSH 使用此盒子,那么您很可能处于黄油区,无论是虚拟机还是真实硬件,这实际上并不重要。当您尝试使用来宾操作系统作为 GUI 桌面时,其他答案中提到的许多问题都会出现。 Linux 服务器在虚拟机中非常受欢迎;虚拟机中的 Linux 占据了网络托管市场的很大一部分。

我遇到过一些被迫在真实硬件上而不是虚拟机上运行 Linux 服务器的情况:

真实硬件访问

有时你需要使用一些VM系统无法虚拟化的PCI卡。比如说,一个4 通道 MPEG-2 解码器。一些VM系统可以将卡的独占所有权赋予VM,例如通过英特尔VT-d技术,但这并非没有问题:

  • 有一个速度打击。这可能很重要。

  • 并非所有虚拟机系统都可以做到这一点,并且您可能无法自由切换到可以做到这一点的系统。

  • 可能会产生一些无关紧要的后果,就像 VMware ESXi 5 一样,向虚拟机授予卡的所有权需要重新启动主机,然后阻止其执行该虚拟机的快照。 (我所说的“无关紧要”是指这些问题是可以解决的,只是需要开发时间。)

大存储空间

您的虚拟机系统可能无法创建与裸硬件允许的真实磁盘一样大的虚拟磁盘。例如,VMware ESXi 5 的虚拟卷大小限制为 2 TB。如果您需要在虚拟机内使用更大的单个卷,则必须费尽周折才能解决该限制:

  • 您可以使用 VT-d 将 RAID 控制器推送到虚拟机,但同样存在问题。

  • 您可以将一组 2 TB 虚拟卷推送到 VM,并将它们串在一起左心室容量,但你也给自己带来了一系列问题。

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

    另一方面,抽象层断开了虚拟卷与物理卷的连接,因此客户操作系统中的软件RAID/LVM层无法有效地管理磁盘。该层可能认为以循环方式写入磁盘是明智的做法,但由于它们可能共享一些相同的物理磁盘,因此性能会受到影响,因为某些磁盘正在进行连续写入。

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

您也许能够通过虚拟化优势来平衡上述一些问题,例如能够暂停虚拟机、将其移动到另一台主机,然后无缝地再次启动它。

相关内容