如何在 VirtualBox 中手动设置系统时间?

Jer*_*cha 32 time virtualbox

我试图在 VirtualBox 中手动设置计算机的时间,但它总是将自己重置为我更改它之前的时间。如何禁用 ntp 并告诉系统我想要的时间?

小智 34

我找到了解决办法。阅读以下材料:链接

基本上,如果您有 Windows 主机和 Ubuntu 来宾,请执行以下操作:

  1. 找到您的 VM(虚拟机)的名称 - 运行 VB(VirtualBox),选择您的 VM,打开设置,在“常规”选项卡中检查名称,例如在我的情况下 Ubuntu 12.04 32bit
  2. 在 Windows 中,启动命令行解释器,进入C:\Program Files\Oracle文件夹并单击VirtualBox选择,然后按住左 shift 键,单击鼠标右键并选择“在此处打开命令窗口”菜单,解释器现在必须运行
  3. 粘贴以下命令(将 VM 名称更改为您的名称!):

    VBoxManage setextradata "Ubuntu 12.04 32bit" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

  4. 最后,启动您的 Ubuntu 来宾并手动设置时间和日期。

撤消

如果需要,要让访客再次与主机同步时间,请重复上述步骤,但将最后的更改10

  • 这绝对应该是公认的答案!我不想禁用来宾添加,因为我的 ubuntu 服务器 14 来宾中安装了一个共享文件夹 (7认同)

小智 22

正如另一个答案中提到的,如果您在 VirtualBox 下以 Guest 身份运行 Ubuntu,那么您应该知道系统时间由Guest Additions自动保持同步(即,不是通过主板设置中的选项)。

在这种情况下,您的解决方案是禁用 Guest Additions,这可以通过执行

sudo service vboxadd-service stop
Run Code Online (Sandbox Code Playgroud)

或者

sudo /etc/init.d/vboxadd-service stop
Run Code Online (Sandbox Code Playgroud)

然后您可以根据需要设置时间(从命令行使用date --set或使用系统设置小程序)

VirtualBox 服务将在下次重新启动时重新启动,或者您可以手动执行此操作。

  • 题外话,但禁用/卸载 Guest Additions 也允许您在 Windows 来宾操作系统上设置系统时钟 (3认同)
  • 在我的 Ubuntu 版本中,命令是“sudo service virtualbox-guest-utils stop”。我猜这个包被重命名了? (3认同)

小智 12

唯一的方法是使用命令行在 Virtualbox 主板中设置时间:

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>
Run Code Online (Sandbox Code Playgroud)

例如,将日期回退 1 年:

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000
Run Code Online (Sandbox Code Playgroud)


qbi*_*qbi 5

好吧,如果你想设置任意日期,首先你应该禁用或卸载 ntp。

  • 要禁用它,请打开终端并运行 sudo update-rc.d -f ntp remove
  • 要卸载它,请使用您喜欢的软件管理软件

之后,您可以使用date-command 设置系统时间:

date -s "17 April 2011 12:34:56"
date --set="17 April 2011 12:34:56"
Run Code Online (Sandbox Code Playgroud)

这两个命令是等效的。要仅设置您可以使用的时间:

date +%T -s "12:34:56" 
Run Code Online (Sandbox Code Playgroud)

date-manpage有一些更多的格式控制。您可以全部使用它们来更改日期

  • Virtualbox 将时间从您的主机“传输”到客户端。您必须在此处更改一些选项。也许 http://www.virtualbox.org/manual/ch03.html#settings-motherboard 会有所帮助。 (2认同)