Virtual machine 如何压缩或压缩加密的virtualbox磁盘映像

Virtual machine 如何压缩或压缩加密的virtualbox磁盘映像,virtual-machine,virtualbox,virtualization,Virtual Machine,Virtualbox,Virtualization,正如我在VirtualBox中通过加密分区创建了Debian VM一样。因此,操作系统必须在加密分区中运行。虽然在创建磁盘映像(VHD)时,我给出了动态分配,但在安装OS后,磁盘映像似乎占用了整个磁盘空间。现在图像大小是20GB。我们可以把它压缩或压缩成更小的尺寸吗。我看过在虚拟盒中压缩磁盘映像的文档,但我可能需要知道我们是否可以对加密的磁盘映像执行同样的操作 非常感谢你的帮助 谢谢。这取决于使用的加密类型。因为您使用的是Debian,所以我假设您使用的是LUKS,这是不灵活的。空间必须预先分配

正如我在VirtualBox中通过加密分区创建了Debian VM一样。因此,操作系统必须在加密分区中运行。虽然在创建磁盘映像(VHD)时,我给出了动态分配,但在安装OS后,磁盘映像似乎占用了整个磁盘空间。现在图像大小是20GB。我们可以把它压缩或压缩成更小的尺寸吗。我看过在虚拟盒中压缩磁盘映像的文档,但我可能需要知道我们是否可以对加密的磁盘映像执行同样的操作

非常感谢你的帮助


谢谢。

这取决于使用的加密类型。因为您使用的是Debian,所以我假设您使用的是LUKS,这是不灵活的。空间必须预先分配,因此图像将使用分配给它的全部空间。

是的,有办法做到这一点,但太复杂了

每次你需要/想要压缩它时,你都需要仔细地执行一些步骤

  • (可能这不是真的需要它,请先尝试不使用此选项)空白带零“清除”挂载分区内的所有可用空间,因此可用空间在“清除”中归零,在“加密”视图中不会归零,因为加密将加密这些零
  • 关闭机器并使用LiveCD iso引导,该iso允许您装载正在使用的虚拟hdd以及新的“动态”和“空”硬盘
  • 在新分区上设置相同的分区方案和encription,但确保encription不会执行“填充”部分,因此它不会写入所有扇区。。。这是最重要的部分。。。这样,新的虚拟磁盘的大小很小,但是被您的LUKs等包住了
  • 在这一点上,只有方案和加密是在新的'小'之一,现在是时候挂载这两个EncTyped。。。旧的和新的,所以他们可以看到在'平原'在同一时间
  • 同样,这一点非常重要,将旧的“普通”分区克隆到新的“普通”分区(大多数克隆分区的工具都会这样做)
  • 正如我所说。。。最重要的事情(要获得更小的虚拟硬盘)是:

    • 创建一个新的虚拟动态磁盘空
    • 在不写入所有扇区的情况下对其进行分区和加密;因此,在进行加密之前,请忽略带有随机数据的dd,否则动态文件将增长到最大值),也请忽略填充空白空间,这将再次将虚拟磁盘增长到最大值
    • 从普通视图克隆分区(动态装载和解密),因此克隆工具将只写入文件等的数据区域,而不写入可用空间
    有一小部分是无法减少的。。。加密分区中的文件包含完整的集群,并用零填充(希望您没有这些文件)。。。原因是这样的空间(当没有加密时,就像全零一样,正常的compat看到完整的集群是零,所以它不需要这样的空间;但是当它被加密时,这样的集群在真实的virtaul磁盘文件中不都是零,所以压缩方法不能减少它)

    这一切背后的理念是:

    • 当加密打开时。。。要获得最小的虚拟磁盘大小,请从一个动态的空磁盘开始,并在克隆前一个磁盘时在其上写入尽可能少的群集
    如前所述,这是太多的工作。。。每一次写操作都会不断增长

    我个人最好的建议是,获得一个“大”和“快”的磁盘,并使用一个固定的虚拟磁盘。。。如果我读得好,你的磁盘只有20GiB。。。由于它是固定的,而不是动态的,所以你的速度提高了很多,而且不会担心“碎片”等问题

    请记住,如果您使用USB接口,如果您运气好(和我一样),并且至少有一个USB 3接口(如果是USB 3.1 Gen 2 C类型的话更好),那么就可以获得一个能够以30Mb/s速度写入的接口(如果只有USB 2.0端口),用于2.5英寸HDD 500GiB Sata III(写入速度大于100Mb/s,非常便宜,不到25欧元)以及Sata III至USB 3.1 Gen 2 C型机箱(也很便宜,有些低于15欧元)。。。避免“减少”、“克隆”等

    我有10台500GiB的虚拟机(有超过50%的可用空间),每台都是20GiB大小(其中Windows系统占用了近16BiG)和VeraCrypt加密。。。所以我和你很接近。。。我选择使用USB 3.1 gen 2 Type C存储模块来保存所有固定大小的VDI文件。。。我的经验是,与未加密的动态大小相比,加密的固定大小会飞

    当然,确保你做了必要的测试(当加密发生时),我的意思是。。。在不加密的情况下测试虚拟硬盘的速度,然后在ram上测试加密算法。。。并选择一种比磁盘速度快1.6倍的方法。。。所以encription不会成为瓶颈。。。否则,加密可能会导致非常糟糕的速度

    还要考虑一下,你向客人展示了多少内核?这将使加密速度非常不同。。。但也想想最坏的情况。。。有多少CPU将使用该客户机上的非加密线程

    举个例子。。。如果在客户机中您正在进行LZMA2压缩(例如,视频转码H.264)等。。。用于加密的空闲CPU非常低。。。所以加密会大大降低速度。。。示例案例还对磁盘执行大量I/O操作,因此每秒需要大量加密/解密

    也许是一个更好的办法。。。会是。。。加密“容器”而不是“系统”。。。换句话说。。。加密VDI文件存储的位置,而不是整个来宾系统。。。如果需要不同的短语密码等,请根据VDI创建一个容器。这样,VDI也可以是动态的,可以压缩等

    当然,如果您告诉我正在使用什么加密方案(没有详细信息),我会提供更多帮助

    这对可能的答案产生了很大的影响:

    • 您是否使用在guest上运行的任何工具加密系统分区?然后只在我们这里使用“克隆”