¿Cómo configuro manualmente la hora del sistema en VirtualBox?


30

Estoy tratando de configurar manualmente el tiempo de la computadora en VirtualBox, pero siempre se restablece a lo que era antes de cambiarlo. ¿Cómo puedo desactivar ntp y decirle al sistema a qué hora quiero que sea?


¿Puedes dar más detalles sobre tu problema? ¿A qué hora quieres que sea y a qué hora configura tu computadora?
qbi

55
Quiero establecer un tiempo equivocado arbitrario en mi computadora.
Jeremy Bicha

Respuestas:


30

He encontrado una solución. Lea el siguiente material: enlace

Básicamente, si tiene un host de Windows y un invitado de Ubuntu, haga lo siguiente:

  1. Encuentre un nombre de su VM (máquina virtual): ejecute VB (VirtualBox), seleccione su VM, abra la configuración, en la pestaña 'General' verifique el nombre, por ejemplo, en mi caso Ubuntu 12.04 32bit
  2. En Windows, inicie un intérprete de línea de comandos, vaya a la C:\Program Files\Oraclecarpeta y haga clic VirtualBoxpara seleccionar, luego mantenga presionada la tecla Mayús izquierda, haga clic con el botón derecho del mouse y seleccione el menú "Abrir ventana de comandos aquí", el intérprete debe estar ejecutándose ahora
  3. Pegue el siguiente comando (¡cambie el nombre de VM a su nombre!):

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

  4. Finalmente, inicie su invitado Ubuntu y configure la hora y la fecha manualmente.


66
¡Esta definitivamente debería ser la respuesta aceptada! no quería deshabilitar las adiciones de invitados ya que tengo una carpeta compartida montada en mi servidor ubuntu 14 invitado
Jon B

Desafortunadamente, no "congela" el tiempo en el sistema invitado. En algunos escenarios, aunque desea congelar por completo todo el tiempo (como para hacer compilaciones reproducibles).
VasyaNovikov

esto me ahorró mucho tiempo
elsadek

Si su sistema operativo host es Ubuntu, el comando es: vboxmanage setextradata "your_VM_name_here" "VBoxInternal / Devices / VMMDev / 0 / Config / GetHostTimeDisabled" 1
Radu Maris

Ver esta pregunta, funcionó cuando lo probé: stackoverflow.com/a/45724822/18149 El vboxadd-servicenecesaria una discusión adicional en el invitado, principalmente--disable-timesync
leeand00

23

Como se mencionó en otra respuesta, si está ejecutando Ubuntu como invitado en VirtualBox, debe tener en cuenta que la hora del sistema se mantiene sincronizada automáticamente por las adiciones de invitados (es decir, no a través de una opción en la configuración de la placa base).

Su solución en ese caso es deshabilitar las adiciones de invitados, lo que se puede lograr mediante la ejecución

sudo service vboxadd-service stop

o

sudo /etc/init.d/vboxadd-service stop

Luego puede configurar el tiempo como lo desee (desde la línea de comando usando date --seto usando el applet de configuración del sistema)

El servicio VirtualBox se reiniciará en el próximo reinicio, o puede hacerlo manualmente.


3
Fuera del tema, pero deshabilitar / desinstalar Guest Additions le permite configurar el reloj del sistema en los sistemas operativos invitados de Windows también
speckledcarp

3
En mi versión de Ubuntu, el comando era sudo service virtualbox-guest-utils stop. Supongo que el paquete fue renombrado?
Crashthatch

@Crashthatch su solución es la única que funciona. Gracias.
Bevor

11

La única forma es establecer el tiempo en la placa base Virtualbox usando la línea de comando:

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>

Por ejemplo, para retrasar la fecha 1 año:

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000

4

Bueno, si desea establecer fechas arbitrarias, primero debe deshabilitar o desinstalar ntp.

  • Para deshabilitarlo, abra una terminal y ejecute sudo update-rc.d -f ntp remove
  • Para desinstalarlo, use su software de administración de software favorito

Después de eso, puede usar el datecomando para configurar la hora del sistema:

date -s "17 April 2011 12:34:56"
date --set="17 April 2011 12:34:56"

Ambos comandos son equivalentes. Para establecer solo el tiempo que puede usar:

date +%T -s "12:34:56" 

La página date-man tiene más controles de formato. Puedes usarlos todos para cambiar la fecha


Ok, lo he hecho, pero sudo date -s solo mantiene la fecha durante unos segundos antes de revertir. Con eso, quiero decir, la fecha de ejecución nuevamente muestra la hora que configuré trabajando normalmente, pero el indicador de tiempo en el panel no lo hace, y cuando ejecuto la fecha nuevamente, la hora ha cambiado para coincidir con el reloj del panel ... cambiar el indicador-fecha y hora tampoco funciona. Creo que voy a tener que abrir un error.
Jeremy Bicha

¿Está seguro de que desinstaló / deshabilitó ntp? ¿Tiene instalado algún otro software de gestión automática del tiempo (es decir, crony)?
qbi

Es una nueva instalación de Natty en VirtualBox y eliminé cualquier cosa ntp y no instalé ningún otro software de administración de tiempo.
Jeremy Bicha

2
Virtualbox "transfiere" el tiempo de su host al cliente. Tendrás que cambiar algunas opciones aquí. Quizás virtualbox.org/manual/ch03.html#settings-motherboard sea ​​útil.
qbi

3

Haga clic en la sección de hora y fecha del panel, luego aparecerá el Calendario y debajo de la Configuración de hora y fecha, haga clic en eso.

Haga clic en el icono del candado e ingrese su contraseña, luego elija Establecer la hora manualmente.


Voy a seguir adelante y marcaré esto como la mejor respuesta para la mayoría de los usuarios. Mi problema específico fue con VirtualBox.
Jeremy Bicha

1

En el Centro de software, busque ntpdate y elimínelo, o en la terminal: sudo apt-get remove ntpdate

(Puede que tenga que reiniciar para deshabilitar completamente ntp)

Luego establece tu fecha.


Ok, purgué ntpdate y reinicié pero todavía no puedo configurar el reloj del sistema y hacer que se pegue.
Jeremy Bicha

0

Basado en el ejemplo ".ps1" (secuencia de comandos de Windows PowerShell) que se proporciona en

https://superuser.com/questions/539880/using-virtual-box-is-it-possible-to-set-your-virtual-machine-time-to-be-differen

He escrito un archivo de script ".bat" regular para cambiar la hora del reloj en que se inicia la máquina virtual de VirtualBox.

El tiempo de inicio deseado se establece en la variable "TEMPO_START_TIMESTAMP" en formato de época. Puede obtener el tiempo de inicio deseado equivalente a epoh en " http://www.timestampconvert.com/ ".

El nombre de la máquina virtual de VirtualBox que se va a iniciar se necesita en la variable "NOME" (misma nomenchature utilizada en el script ".ps1" anterior).

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%

También necesitará la hora actual en formato epoh, para esto use el siguiente script (guarde como "toEpoch.vbs", este script visual básico se llama desde el script ".bat" anterior):

WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())

Para ejecutar la máquina virtual, simplemente ejecute el archivo de script ".bat" anterior. No es necesario abrir la interfaz "Administración de Oracle VM VirtualBox".

Espero que esto ayude.

Saludos

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.