我试图在VirtualBox中手动设置计算机的时间,但是它总是将自身重置为更改之前的状态。如何禁用ntp并告诉系统我希望在什么时间?
我试图在VirtualBox中手动设置计算机的时间,但是它总是将自身重置为更改之前的状态。如何禁用ntp并告诉系统我希望在什么时间?
Answers:
我找到了解决方案。阅读以下材料:链接
基本上,如果您有Windows主机和Ubuntu来宾,请执行以下操作:
Ubuntu 12.04 32bit
C:\Program Files\Oracle
文件夹并单击VirtualBox
以选择,然后按住左Shift键,单击鼠标右键并选择“在此处打开命令窗口”菜单,该解释器必须现在运行粘贴以下命令(将虚拟机名称更改为您的名称!):
VBoxManage setextradata "Ubuntu 12.04 32bit"
"VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
最后,启动Ubuntu guest虚拟机并手动设置时间和日期。
vboxadd-service
需要一个额外的参数上的客人,主要是--disable-timesync
如另一个答案中所述,如果您在VirtualBox下以来宾身份运行Ubuntu,则应注意,来宾添加会自动使系统时间保持同步(即,不是通过主板设置中的选项)。
在这种情况下,您的解决方案是禁用来宾添加,这可以通过执行
sudo service vboxadd-service stop
要么
sudo /etc/init.d/vboxadd-service stop
然后,您可以根据需要设置时间(在命令行中使用date --set
或使用系统设置小程序)
VirtualBox服务将在下次重新启动时重新启动,或者您可以手动进行。
sudo service virtualbox-guest-utils stop
。我猜这个包被改名了吗?
好吧,如果要设置任意日期,则首先应禁用或卸载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"
这两个命令是等效的。要只设置时间,可以使用:
date +%T -s "12:34:56"
该date
-manpage有一些更多的格式控制。您可以全部使用它们来更改日期
单击面板的“时间和日期”部分,然后将出现“日历”,并且在“时间和日期设置”的下面,因此单击它。
单击挂锁图标并输入密码,然后选择手动设置时间。
在软件中心中查找ntpdate并将其删除,或者在终端中:sudo apt-get remove ntpdate
(您可能必须重新启动才能完全禁用ntp)
然后设定您的日期。
基于中给出的“ .ps1”(Windows PowerShell脚本)示例
我编写了一个常规的“ .bat”脚本文件,以更改VirtualBox虚拟机启动的时钟时间。
期望的开始时间以纪元格式设置在变量“ TEMPO_START_TIMESTAMP”上。您可以在“ http://www.timestampconvert.com/ ”上获得所需的等效开始时间。
变量“ NOME”(上面的“ .ps1”脚本中使用的名称相同)需要使用要启动的VirtualBox虚拟机的名称。
echo off
echo %time%
set NOME="Windows_7_x64"
set TEMPO_CS_2_MS=0
set TEMPO_S_2_MS=000
rem # Starts the VM always on the date 07/11/2014 - 11h58
rem http://www.timestampconvert.com/
set TEMPO_START_TIMESTAMP=1415361480
for /f "delims=" %%x in ('cscript /nologo toEpoch.vbs') do set epoch=%%x
rem %epoch%
set TEMPO_CURRENT_TIMESTAMP=%epoch%
rem set TEMPO_CURRENT_TIMESTAMP=1544518714
set /A TEMPO_TEMP=(%TEMPO_START_TIMESTAMP%-%TEMPO_CURRENT_TIMESTAMP%)
call set TEMPO=%TEMPO_TEMP%%TEMPO_S_2_MS%
rem %TEMPO_TEMP%
rem %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage setextradata %NOME% "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
c:\Progra~1\Oracle\VirtualBox\VBoxManage modifyvm %NOME% --biossystemtimeoffset %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage startvm %NOME%
您还需要使用epoh格式的当前时间,为此请使用以下脚本(另存为“ toEpoch.vbs”,此可视化基本脚本是从上面的“ .bat”脚本调用的):
WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())
要运行虚拟机,只需执行上面的“ .bat”脚本文件。无需打开“ Oracle VM VirtualBox管理”界面。
我希望这有帮助。
问候