如果我们在虚拟机上运行rm -rf /
或mv / /dev/null
等命令会怎样?dd if=/dev/random of=/dev/hda
对主机有影响吗?或者运行这些命令的结果是什么?
答案1
虚拟化在虚拟机和主机之间提供了相对较强的分离。这是由 CPU 功能支持的内核功能提供的。最近的“Spectre”CPU 缺陷尤其令人担忧,因为它可能为攻击者提供了一种破坏这种分离的方法,但这并不会改变来宾中“正常”操作所发生的情况。
虚拟机向操作系统提供了一个虚拟磁盘——一个由底层存储构建的“假”块设备。如果虚拟化本身没有错误,您对虚拟磁盘所做的任何操作都不会“崩溃”并影响底层存储的其他部分或底层操作系统。
从主机的角度来看,虚拟机只是一个像任何其他程序一样的进程,并且该线程对底层存储所做的操作就像任何其他程序一样受到限制。如果来宾(虚拟机)非常繁忙,可能会导致 CPU 发热、风扇转动等等,就像任何其他繁忙的程序一样。在来宾中写入磁盘也是一样的——它会导致 IO 操作,并且许多繁忙的虚拟机可能会发生资源冲突。 (这通常是看似闲置的机器上出现高负载的原因。)
从访客的角度来看,您给出的示例命令将像您期望的那样在物理计算机上执行。它们将使来宾操作系统无法运行。但回到主机——它们没什么特别的。您只需从备份中恢复一个虚拟机磁盘映像即可。
答案2
默认情况下,虚拟机上的虚拟磁盘不会占用物理机上的所有卷(仅占用除可用空间之外存在的文件)。经过这些操作后就可以了。