跳到内容

VirtualBox/基础

50% developed
来自维基教科书,开放书籍,为开放世界

此页面适用于 5.2 及更高版本Oracle VM VirtualBox


VirtualBox

[编辑 | 编辑源代码]

Oracle VM VirtualBox 是一个 x86 虚拟化软件包,由 甲骨文公司 作为其虚拟化产品家族的一部分维护。VirtualBox 安装在现有的主机操作系统上。

安装 VirtualBox 之前您拥有的物理计算机硬件和操作系统是“主机计算机”和“主机操作系统”。

在 VirtualBox 应用程序中,您可以创建许多虚拟机,有时称为“访客计算机”,它们的行为与物理计算机硬件非常相似,只是您无法触碰它们,因为它们都是模拟在您的真实物理计算机硬件中。

在 VirtualBox 应用程序中,可以加载和运行额外的访客操作系统,每个都称为访客操作系统,每个都有自己的虚拟环境。

当前支持的主机操作系统包括 LinuxMac OS XWindows XPWindows VistaWindows 7SolarisOpenSolaris。但是,还存在一个移植到 FreeBSD(仅限 OSE 版本)。

虚拟机管理程序

[编辑 | 编辑源代码]

虚拟机管理程序是一种管理虚拟机的软件,虚拟机在理论上是模拟的 PC。因此,虚拟机管理程序可以被视为一种模拟器,其中一个系统通过将代码转换为可执行的内容来假装成另一个系统。

由于 IBM PC 的架构 x86 在设计上是一个复杂的指令集,因此它能够执行复杂的操作,使其能够有效地模拟其他平台。但 x86 本身呢?

在 x86 中,软件在特权级别(通常称为环)中运行,并由操作系统组织。操作系统通常在其代码部分(内核)中运行尽可能低的级别,以便它可以有效地管理系统和用户空间——环 0,因此被称为内核模式。标准软件(如从网站下载的可执行文件)在环 3 中运行,称为用户模式。

VirtualBox 虚拟化 x86,并且几乎不模拟用户模式;它不实时转换每条指令,而是通过将虚拟内核代码重新定位到环 1 来模拟环 0,并在内核或软件调用 I/O 访问(即驱动程序)时捕获指令。开发人员不得不解决其他特定情况,但其余软件几乎未经修改即可运行,在许多情况下允许软件近乎裸机性能。

VirtualBox 使用基于 QEMU 的代码,但它不是 QEMU 的分支。QEMU 具有 KVM,允许它采用与 VirtualBox 类似的做法,但它还针对 VirtualBox 不支持的 x86 之外的各种平台(例如 PowerPC、ARM 和 SPARC)。

主机模拟访客

[编辑 | 编辑源代码]

在虚拟化上下文中,您的主计算机称为主机。它可以访问物理组件,例如显示器、键盘和鼠标以及硬盘。在 VirtualBox 中运行操作系统时,访客无法访问这些内容。相反,它被虚拟机管理程序和操作系统内核管理的虚拟组件所取代,例如文件系统上的虚拟硬盘。VirtualBox 允许您使用模拟的键盘、鼠标和显示器与访客进行交互,这些组件尽可能接近通用,以便操作系统具有正确的驱动程序。如果这些驱动程序不是操作系统的一部分,VirtualBox 还将包含访客增强功能,这些增强功能将安装与主机的集成,例如剪贴板共享和动态分辨率(操作系统将根据窗口调整显示大小)。

主机 CPU 要求

[编辑 | 编辑源代码]

为了使 VirtualBox 能够工作,主机 CPU 需要支持 SSE2(流式 SIMD 扩展 2)。

虚拟媒体

[编辑 | 编辑源代码]

在 VirtualBox 中,您将遇到虚拟媒体管理器。这是一个 VirtualBox 以前与访客一起使用的磁盘列表。三种类型——硬盘、光盘和软盘——由管理器记忆和分组,如果需要可以删除或复制。当程序启动时无法检测到这些映像时,它将通知用户。

支持的硬盘格式列表如下

  • VDI(虚拟磁盘映像):VirtualBox 的本机格式。
  • VMDK(虚拟机磁盘):由 VMware 设计。
  • VHD(虚拟硬盘):以前是 Connectix 的 Virtual PC 格式,但现在由微软使用。在 Windows 主机上,这些文件可以在磁盘管理实用程序中本地挂载。[注 1]
  • VHDX(虚拟硬盘扩展):微软的 Hyper-V 格式。
  • HDD(硬盘驱动器):Parallels 的本机格式。VirtualBox 不支持 2 之后的版本,理由是该格式缺乏文档。但是,Parallels 包括用于降级格式的实用程序。
  • QCOW(快速写时复制):以前是 QEMU 的本机格式;它已被 QCOW2 取代。VirtualBox 中的 QCOW2 支持是只读的。
  • QED:QCOW 的实验性继任者,现已弃用。支持仅包含在与现有图像的兼容性方面,建议转换为另一种格式。

软盘是一个特殊情况,因为它们存储的数据量很小,因此不需要特殊的映像格式来节省磁盘空间或加快机器速度。

有两种文件扩展名,FLPIMG,经常使用,但这些类型之间的区别几乎为零。软盘映像实际上是原始格式,因为它们完全保留了磁盘数据,而不是物理方面。

动态分配和压缩

[编辑 | 编辑源代码]

动态分配用于节省空间对您的工作流程至关重要的场景,在这种场景中,映像使用的磁盘空间少于分配的空间。

当您在任何计算机上删除文件时,硬盘实际上不会擦除其扇区(如果那样做,更大的文件将需要更长时间才能删除)。相反,它将数据所在的扇区标记为可重写,以便释放空间。这解释了为什么数据恢复是可能的;恢复软件将搜索“空”扇区以查找数据。

VirtualBox 会自动增加表示虚拟机硬盘的动态分配的“.vdi”主机文件的物理大小,因为访客操作系统将(非零)块写入它。

可以通过两种不同的方式减少动态分配的“.vdi”主机文件的物理大小。

当 VirtualBox 和访客操作系统都设置为支持连续 TRIM 时,VirtualBox 可以自动减少“.vdi”主机文件的物理大小,当访客操作系统删除文件时。即使访客操作系统不支持 TRIM,也有一些命令行工具,例如 VBoxManageCloneVDI,可以将“.vdi”主机文件的物理大小减少到仅包含实际“使用”的块。[1][2][3][4]

文件共享

[编辑 | 编辑源代码]

文件可以通过 访客增强功能 在主机和访客系统之间共享,或者通过传统方法(如 SMB 和 FTP)共享。如果访客系统缺乏网络功能,可以通过在光盘刻录工具中创建 ISO 9660 磁盘映像以插入虚拟光盘驱动器来共享文件。


您的 VirtualBox VM 的文件位于

  • Windows: %USERPROFILE%\VirtualBox VMs
  • Linux: ~/VirtualBox VMs

您可以通过右键单击 VirtualBox 中的虚拟机并选择“在文件管理器中显示”来快速访问虚拟机的文件夹。[注释 2]

虚拟机文件夹的基本组件包括

  • 一个 .vbox 文件。它包含了系统本身的所有详细信息,例如规格、映像和设备的路由方式等。
  • 一个硬盘镜像文件

其他组件可能包括

  • 一个 .vbox-prev 文件。它是 .vbox 文件的备份副本。
  • 一个 Logs 文件夹。它包含了机器的日志,以便在出现问题时进行查看。
  • 一个 Snapshots 文件夹。它包含了快照。
  1. 仅适用于 Windows 7 及更高版本。
  2. 在 Windows 上,它被称为 Windows 资源管理器。
  1. "如何压缩 VirtualBox 的 VDI 文件大小?".
  2. "VirtualBox VDI 文件大小不断增长".
  3. "VDI 大小太大 - 如何减小?".
  4. "已解决:如何缩小我的 VDI 硬盘?".
华夏公益教科书