如何压缩或压缩加密的虚拟磁盘映像

时间:2015-08-11 12:36:52

标签: virtual-machine virtualbox virtualization

我通过加密他们的分区在VirtualBox中创建了一个Debian VM。因此操作系统必须在加密分区中运行。虽然在创建磁盘映像(VHD)时,我已经给出了动态分配,但是在安装操作系统之后,它看起来磁盘映像占用了整个磁盘空间。现在图像大小为20GB。我们是否可以将其压缩或压缩成更小的尺寸。我看到了在Virtual Box中压缩磁盘映像的文档,但我可能需要知道我们是否可以对加密磁盘映像执行相同的操作。

非常感谢您的帮助。

感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

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

每当您需要/想要压缩它时,您需要仔细执行一些步骤。

  1. (也许这不是真的需要它,首先尝试没有这个)空白,零内所有可用空间'清除'已安装的分区,因此空闲空间在“清除”状态下归零,并且在加密的“#”中不会归零。观点,因为加密会加密这样的零。
  2. 关闭机器并使用LiveCD iso启动,让您可以安装正在使用的虚拟硬盘以及新的动态信息。并且'空'之一。
  3. 在新的分区方案和编号上设置相同的分区方案和编码,但确保编码不会执行“填充”。部分,所以它不会写所有扇区...这是最重要的部分......这样新的虚拟磁盘尺寸很小,但是你已经被LUK等包围了。
  4. 此时,只有方案和加密才会出现在新的'小'一,现在是时候安装两个enctypted ...旧的和新的,所以他们可以看到平原'在同一时间。
  5. 这一点非常重要,克隆形成了旧的“平原”。到新的'平原'只有拥有数据的扇区(大多数克隆分区的工具都会这样做)。
  6. 正如我所说......最重要的是(获得更小的虚拟硬盘):

    • 创建新的虚拟动态磁盘空
    • 对其进行分区并在不写入所有扇区的情况下对其进行加密;所以在进行加密之前省略带有随机数据的dd,否则动态文件将增长到最大值,同时省略填充空白空间,再次将虚拟磁盘增加到最大值
    • 从普通视图中克隆分区(在飞行中安装和解密),因此克隆工具只会写入文件的数据区域等,但不会释放空闲空间。

    有一小部分无法减少...加密分区内的文件已经用完整的簇填充零(希望你没有任何东西)......原因是这样的空间(当没有加密时,正如全零,正常compat看到完整集群为零所以它不需要这样的空间;但是当它被加密时,这样的集群并不是真正的virtaul磁盘文件中的所有零,所以紧凑的方法可以不要减少它。)

    背后的想法是:

    • 当启用加密...以获得最小的虚拟磁盘大小时,从动态和空的虚拟磁盘开始,并在克隆前一个时尽可能少地写入群集。

    如上所述,这是太多的工作......不时,每次写作都会开始增长并再次成长。

    我最好的个人推荐是,得到一个“大人物”。和快速的#39;磁盘并使用一个固定的虚拟磁盘...如果我读得很好,你的磁盘只有20GiB ......你的速度很快,因为它固定而不是动态的,并且不会担心碎片的问题。等

    请记住,如果您使用USB,可以以30MiB / s的速度写入(如果只有USB 2.0端口),如果您很幸运(像我一样)并且至少有一个USB 3端口(如果它更好)用于2.5英寸硬盘500GiB Sata III的USB 3.1 Gen 2 Type C)版本(写入速度大于100MiB / s,非常便宜,低于25欧元)和Sata III到USB 3.1 Gen 2 C型机箱(也便宜,有些不到15欧元)......并且避免不得不“减少”,“克隆”#39;等

    我在500GiB上有10个虚拟机(可用空间超过50%),每个大小为20GiB(其中的Windows系统接近16BiG)和VeraCrypt加密...所以我处于相当接近的情况对你...我选择使用USB 3.1 gen 2 Type C机箱来容纳所有固定大小的VDI文件...我的经验是加密的固定大小飞行与非加密动态大小相比。

    当然,确保你进行所需的测试(加密时),我的意思是...测试虚拟硬盘速度,不加密,然后在ram上测试加密算法......并选择一个比1.6更快的方法倍于磁盘的速度...因此,征服不会成为瓶颈...否则你的加密速度会非常糟糕。

    还要考虑一下,您向访客展示了多少核心?这将使加密速度大不相同......但也想到最坏的情况......多少CPU会在该客户上使用非加密线程?

    就像一个例子......如果你在客人内部进行LZMA2压缩(或者视频转码H.264等)......加密的免费CPU非常低......所以加密会减慢速度很多......示例案例也会对磁盘进行大量I / O操作,因此需要每秒加密/解密。

    也许更好的方法......将...加密容器'不是'系统' ...换句话说......加密存储VDI文件的位置,而不是整个客户系统...如果想要不同的短语密码等,则为每个VDI创建一个容器。 VDI也可以是动态的,也可以是压缩的等等。

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

    这对可能的答案产生了很大的不同:

    • 您是否使用在guest上运行的任何工具加密系统分区?然后使用'克隆'只使用了群集技巧
    • 您是否正在加密但是设置了VDI加密属性?也许VirtualBox控制台有助于比较它们
    • 您是否正在加密存储VDI的容器?我很确定这不是你的情况,因为在这种情况下,紧凑可以正常进行,VDI根本没有加密,也没有任何东西。

    我谈论VDI ......同样适用于其他格式,VHD,VHDx等。

    请记住......如果在访客上完成编码并且仍然希望减少(压缩)virtua hdd文件...从一个新的动态文件开始,放置分区方案,加密但不填充所有磁盘......这一点虚拟磁盘文件大小不能太大,只有几兆...然后克隆从旧到新的所有使用的集群,但不是未使用的集群。

    建议:准备重复'紧凑型'克隆'克隆'每100小时激烈使用客人几次...如果增益小于50%则不能补偿费用......那么最好的办法是使用固定尺寸。

    特别提示:对于固定尺寸,访问速度远远超过动态尺寸...具有100%大小的动态尺寸,就好像它固定的速度是一个很大的速度损失......多少?你必须在你的机器上进行测试,很大程度上取决于你拥有的CPU,I / O速度(每秒输入/ ouptup操作)以及传输速度(MiB / s)和其他因素......所以最好做一些测试。

    因为你在谈论20GiB ...更好的做固定尺寸的测试......我很确定你会很喜欢它。

    其他的事情是谈论500GiB系统分区只有10%填充...因为空间增益可能是450GiB,所以克隆方法来压缩它是很好的,这就是为什么我说如何做到这一点..对于这样的人和你的你,以及任何一个人。

    P.D。:如果某人不知道该怎么做,那并不意味着它是不可能的,如果有人说某些事情是不可能的,那么对那个人来说更好的解释一下,或者说是一个被称为白痴的人。技术提高了很多时间,知识更多。