虚拟机 (VM) 是否可以覆盖主机磁盘,或者主机覆盖来宾磁盘,或者来宾覆盖另一个来宾磁盘?

que*_*o42 10 virtual-machine

这个问题来自“在虚拟机上回答“擦除磁盘并安装 Ubuntu”是否安全?”。

主人的来宾空间:

当磁盘空间大于未使用的磁盘空间时,可能不是在开始时,而是在使用量增加到例如 50 GB 中的 40 个并且您的主驱动器只剩下 40 GB 空间时,会发生什么情况?换句话说,VM 会不会覆盖数据,还是会报告这一点?我不认为 VM 会覆盖主机的数据,我只是想确定一下。

来自客人的主机空间:

反过来说,如果主机磁盘想要使用保证给来宾的空间,它是否有可能以某种方式损坏来宾,这可能吗?主机会告诉您主机空间因该虚拟机而受到限制吗?

宾客空间:

只是来自 Oracle VirtualBox 或任何类似 VM 软件的一个示例,使用“精简配置”在 Windows 10 主机上安装 Linux Mint 来宾。选择“擦除”选项后,安装程序会直接告诉我:

“如果继续,下面列出的更改将写入磁盘。否则,您将能够手动进行进一步更改。以下设备的分区表已更改: SCSI3 (0,0,0)(sda) 以下分区将被格式化:SCSI3 (0,0,0)(sda) 的分区 #1 为 ext4。”

我选择了“继续”,没有发生任何不好的事情。可能会弹出该消息,因为我已经安装了另一个 VM。好像 VM 可以从另一个 VM 占用空间,这可能吗?


本题不限于使用Oracle VirtualBox;这个问题一般是关于 VMS 的一般问题,当然不排除 VirtualBox 上的答案。

Joh*_*ohn 15

“永远”是很长一段时间,如果有人知道如何从 VM 访问其他访客或主机(我知道如何),那么是的,当然有可能。

但是,擦除空间甚至整台机器都不会覆盖其范围之外的其他系统。

Windows 和 Linux 来宾不时删除未使用的空间,没有问题。

我压缩虚拟磁盘(Windows 和 Linux)以恢复已删除的 VM 空间,没有问题。

您想做的事情(扩展虚拟磁盘或删除虚拟磁盘内的空间)不会损害主机系统或其他来宾系统。

只要确保您没有用完实际磁盘空间。这可能会导致任何系统出现问题。

轶事说明:我第一次构建 VM(Windows 98,我仍然在 Windows NT4 工作站主机上的 VMware Workstation Version 1 上使用),Windows 98 安装程序说“我要格式化你的硬盘”

我确实在说好之前停了下来,所以你的问题是最合理的,而且说得很好。

  • _“我要格式化你的硬盘”_ 尽管该操作系统已经使用 _Windows_ 多年,但它从未通过它们看到过 Cosmos 的美丽。 (6认同)

Jör*_*tag 14

虚拟机 (VM) 能否覆盖主机磁盘,

虚拟机主机存在安全漏洞,让来宾突破其 VM,历史和经验告诉我们,这种情况还会再次发生。

一旦guest脱离VM,它就可以做主机可以做的任何事情。

或主机访客磁盘,

主机始终拥有完全控制权,可以为所欲为。

或来宾另一个来宾磁盘?

一旦来宾设法脱离虚拟机,它就可以做主机可以做的任何事情,所以这减少到#2。

显然,一个简单的配置错误,即同一个虚拟磁盘以可写模式连接到多个来宾 VM,或者主机的物理磁盘以直通模式连接到来宾 VM,也会破坏所有保护,而无需有点深奥安全漏洞。


LPC*_*hip 11

这实际上取决于您如何在主机端配置事物以了解将来是否会出现问题。

默认情况下,如果创建带有存储的 VM,则会创建一个文件来托管此 VM 的存储。在这些情况下,guest 无法对主机进行任何更改,并且在动态大小的磁盘的情况下,一旦由于主机的磁盘已满,磁盘想要写入大于分配空间的数据,则会发生写入错误客人,就是这样。

这里的问题是写入失败,但在客人中没有给出明确的含义。排除故障可能会更困难,但它会类似于:“写入文件时出错。确保磁盘可写。即使您的磁盘显示足够的空间已满,它也不会允许任何写入。如果您然后检查主机,你会发现磁盘已满。在主机端,你会得到一个明确的消息,磁盘已满,因为主机实际上可以看到它,只是来宾看不到。

现在,在哪种情况下,来宾实际上可以破坏主机驱动器上的数据?

可以将物理磁盘分配为 VM 的存储介质。如果此物理磁盘也被系统本身使用,则您基本上以一种非预期的方式授予来宾访问主机的权限。这不是任何人应该做的,但我只是命名它,因为它实际上是可能的。

宾客空间

即使客人认为它在普通计算机上,它也是一个虚拟环境。因为客人实际上无法判断它是在虚拟环境中,所以您在屏幕上看到的消息也不会反映出来。如果它说:我将删除您磁盘上的所有数据,那么只有来宾可以访问的所有数据都是您在主机中定义的。无论是虚拟磁盘还是物理磁盘作为直通,对于来宾来说都是完全相同的。

  • @jpaugh“以非预期的方式授予 [客人] 访问主机的权限” (3认同)
  • @ilkkachu 哦,我完全同意你的看法,我之所以提到这一点,是为了以防其他人设置了 VM 系统而你假设,因为它是一个 VM,你不能损坏它,然后找到其他人使用无论出于何种原因,物理磁盘现在都销毁了所有数据。我把它写成“最好提及一些最有可能不会引起问题的东西,而不是根本不提及它”。 (3认同)
  • @ilkkachu 我做到了。;) (3认同)
  • 如果您将物理磁盘分配给虚拟机,同时将其与主机系统一起使用,那么我会说您非常_打算_让虚拟机使用整个磁盘。这与安装多个操作系统并在它们之间进行双引导并没有什么不同,只是没有 VM 介于两者之间,您必须小心地将它们配置为不会相互破坏并且实际上别无选择。对于 VM,没有理由为来宾提供这种共享访问权限,除非您希望他们拥有它。 (2认同)

gro*_*taj 2

宾客空间

在 Linux Mint 上,使用 VirtualBox,安装程序在选择“擦除”选项后直接告诉我:

如果继续,下面列出的更改将写入磁盘。否则,您将能够手动进行进一步的更改。以下设备的分区表已更改: SCSI3 (0,0,0)(sda) 以下分区将被格式化:SCSI3 (0,0,0)(sda) 的分区 #1 为 ext4。

我选择了“继续”,没有发生任何不好的事情。可能会弹出该消息,因为我已经安装了另一个虚拟机。我不认为虚拟机会覆盖主机的数据。不过,一个虚拟机似乎可以占用另一个虚拟机的空间?

虚拟机是完全独立的。从广义上讲,它们与物理计算机没有区别,并且彼此不了解,除非您以某种方式连接它们 - 就像物理计算机一样。

该消息不是由另一个虚拟机的存在引起的。这是一个“健全性检查”类型的对话框。它要求您仔细检查安装程序自动做出的选择是否符合您的意图。

我通过实验确认,将 Ubuntu 18.04 和 20.04 安装到空的、未分区的驱动器时会出现此消息。

客人的托管空间

虽然从内部看,虚拟机看起来像一台普通计算机,但从外部(即主机的角度)来看,它只是一堆文件。通常,您将拥有一个描述 VM 硬件配置的文件和一个用于附加到 VM 的每个虚拟磁盘的文件。因此,在大多数用例中,虚拟机由两个文件组成:一个用于配置,一个用于磁盘。

磁盘文件可以预先分配或动态分配。创建预分配磁盘时,从一开始就占用与其容量相等的空间量。它可以稍微提高性能,但代价是消耗主机的未使用磁盘区域的磁盘空间。如果您没有足够的磁盘空间来执行此操作,则在创建虚拟机但尚未运行虚拟机时,该过程将失败。

当来宾尝试写入其先前未使用的区域时,动态分配的虚拟磁盘文件将会增长。其技术术语是稀疏文件。在这种情况下,当来宾尝试写入其虚拟磁盘时,主机确实会耗尽磁盘空间。任何内容都不会被覆盖,因为这只是程序尝试创建太大而无法容纳在磁盘上的文件的典型情况(该程序是您的 VM 软件 - 虚拟机管理程序)。它是附加到正在运行的虚拟机的虚拟磁盘这一事实是无关紧要的,因为从主机的角度来看,它是一个与任何其他文件没有什么不同的文件。操作系统的文件系统驱动程序将简单地拒绝写入该文件。虚拟机管理程序如何处理这个问题取决于它的实现。

主人的宾客空间

再说一次,对于主机来说,虚拟磁盘只是一个文件,它与任何其他文件遵循相同的规则。任何允许写入该文件的进程都可以对其进行任何修改,除非该文件此时被另一个进程锁定以进行独占写入。