我可以“加速”虚拟机以模拟时间的流逝吗?

Dea*_*her 10 virtualbox virtualization ubuntu-12.04

我想将虚拟机置于“快进”状态,以便我可以看到几天(或几周或几个月)的日志和临时文件的建立和分析。

使用 virtualbox 和 ubuntu 12.04 VM 可以吗?

Pau*_*ida 3

显然,这可以通过使用内核中的 jiffies、添加加速比来完成。有一份文件介绍了 10 年的快速测试。归结起来是这样的:

在Kconfig中添加一个参数(SPEEDUP_RATIO, ~1-1000),修改do_timer():

 void do_timer(...) {
        jiffies_64 = jiffies_64 + speedup_ratio;
    }
Run Code Online (Sandbox Code Playgroud)

最后通过procfs( echo 100 > /proc/accel)控制比率。然后他在启动时出现了很多超时,并且必须调整内核中的所有超时(timeout * speedup_ratio)。他说大多数这些值都可以通过 找到grep jiffies,但“大多数”意味着它可能涉及一些尝试和错误。

另外,根据man 7 time:“jiffy 的大小由内核常量 HZ 的值决定”。它是可配置的,但只能采用值 100、250、300 和 1000。

编辑:如果时间跳跃可以接受,libfaketime可能是一个更简单的替代方案。但我不知道日志软件将如何处理这个问题。