Comment définir manuellement l'heure système dans VirtualBox?


30

J'essaie de régler manuellement l'heure de l'ordinateur dans VirtualBox mais il se réinitialise toujours à ce qu'il était avant de le changer. Comment puis-je désactiver ntp et dire au système à quelle heure je veux qu'il soit?


Pouvez-vous donner plus de détails sur votre problème? À quelle heure voulez-vous que ce soit et à quelle heure configure votre ordinateur?
qbi

5
Je veux définir une heure arbitraire incorrecte sur mon ordinateur.
Jeremy Bicha

Réponses:


30

J'ai trouvé une solution. Lisez le matériel suivant: lien

Fondamentalement, si vous avez un hôte Windows et un invité Ubuntu, procédez comme suit:

  1. Trouvez un nom de votre VM (machine virtuelle) - exécutez VB (VirtualBox), sélectionnez votre VM, ouvrez les paramètres, dans l'onglet 'Général' vérifiez le nom, par exemple dans mon cas Ubuntu 12.04 32bit
  2. Dans Windows, démarrez un interpréteur de ligne de commande, allez dans le C:\Program Files\Oracledossier et cliquez VirtualBoxpour sélectionner, puis maintenez la touche Maj enfoncée, faites un clic droit de la souris et sélectionnez le menu "Ouvrir la fenêtre de commande ici", l'interprète doit être en cours d'exécution maintenant
  3. Collez la commande suivante (changez le nom de la VM en votre nom!):

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

  4. Enfin, démarrez votre invité Ubuntu et réglez l'heure et la date manuellement.


6
cela devrait certainement être la réponse acceptée! je ne voulais pas désactiver les ajouts d'invités car j'ai un dossier partagé monté dans mon invité ubuntu server 14
Jon B

Malheureusement, il ne "gèle" pas le temps sur le système invité. Dans certains scénarios, vous voulez geler complètement tout le temps (comme pour les builds reproductibles).
VasyaNovikov

cela m'a fait gagner beaucoup de temps
elsadek

Si votre système d'exploitation hôte est Ubuntu, la commande est: vboxmanage setextradata "your_VM_name_here" "VBoxInternal / Devices / VMMDev / 0 / Config / GetHostTimeDisabled" 1
Radu Maris

Voir cette question, cela a fonctionné quand je l'ai essayé: stackoverflow.com/a/45724822/18149 Le vboxadd-servicebesoin d'un argument supplémentaire sur l'invité, principalement--disable-timesync
leeand00

23

Comme mentionné dans une autre réponse, si vous exécutez Ubuntu en tant qu'invité sous VirtualBox, vous devez être conscient que l'heure système est automatiquement synchronisée par les ajouts d'invités (c'est-à-dire, pas via une option dans les paramètres de la carte mère).

Dans ce cas, votre solution consiste à désactiver les ajouts d'invités, ce qui peut être réalisé en exécutant

sudo service vboxadd-service stop

ou

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

Vous pouvez ensuite définir l'heure comme vous le souhaitez (à partir de la ligne de commande en utilisant date --setou en utilisant l'applet des paramètres système)

Le service VirtualBox sera redémarré au prochain redémarrage, ou vous pouvez le faire manuellement.


3
Hors sujet, mais la désactivation / désinstallation des ajouts d'invités vous permet également de régler l'horloge système sur les systèmes d'exploitation invités Windows
speckledcarp

3
Dans ma version d'Ubuntu, la commande était sudo service virtualbox-guest-utils stop. Je suppose que le package a été renommé?
Crashthatch

@Crashthatch, votre solution est la seule qui fonctionne. Merci.
Bevor

11

La seule façon est de régler l'heure dans la carte mère Virtualbox en utilisant la ligne de commande:

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>

Par exemple, pour reculer la date d'un an:

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000

4

Eh bien, si vous souhaitez définir des dates arbitraires, vous devez d'abord désactiver ou désinstaller ntp.

  • Pour le désactiver, ouvrez un terminal et exécutez sudo update-rc.d -f ntp remove
  • Pour le désinstaller, utilisez votre logiciel de gestion de logiciels préféré

Après cela, vous pouvez utiliser la datecommande-pour définir l' heure de votre système:

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

Les deux commandes sont équivalentes. Pour définir uniquement l'heure que vous pouvez utiliser:

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

La page date-man contient d'autres contrôles de format. Vous pouvez tous les utiliser pour changer la date


Ok, je l'ai fait mais sudo date -s ne conserve la date que quelques secondes avant de revenir. Par cela, je veux dire, la date de fonctionnement affiche à nouveau l'heure que je règle normalement, mais l'indicateur d'heure dans le panneau ne fonctionne pas, et quand je réexécute la date, l'heure a changé pour correspondre à l'horloge du panneau ..... Et en essayant de changer l'horloge indicateur-date ne fonctionne pas non plus. Je pense que je vais devoir ouvrir un bug.
Jeremy Bicha

Êtes-vous sûr que ntp désinstallé / désactivé? Avez-vous installé un autre logiciel de gestion automatique du temps (ie chrony)?
qbi

C'est une nouvelle installation Natty dans VirtualBox et j'ai purgé quoi que ce soit ntp et n'ai pas installé d'autre logiciel de gestion du temps.
Jeremy Bicha

2
Virtualbox «transfère» le temps de votre hôte au client. Vous devrez modifier certaines options ici. Peut-être que virtualbox.org/manual/ch03.html#settings-motherboard est utile.
qbi

3

Cliquez sur la section heure et date du panneau, puis le calendrier apparaîtra et en dessous que les paramètres d'heure et de date sont là, cliquez dessus.

Cliquez sur l'icône Cadenas et entrez votre mot de passe, puis choisissez Régler l'heure manuellement.


Je vais aller de l'avant et marquer cela comme la meilleure réponse pour la plupart des utilisateurs. Mon problème spécifique était avec VirtualBox.
Jeremy Bicha

1

Dans le Centre logiciel, recherchez ntpdate et supprimez-le, ou dans le terminal: sudo apt-get remove ntpdate

(Vous devrez peut-être redémarrer pour désactiver complètement ntp)

Fixez ensuite votre date.


Ok, j'ai purgé ntpdate et redémarré mais je ne parviens toujours pas à régler l'horloge système et à la faire coller.
Jeremy Bicha

0

Basé sur l'exemple ".ps1" (script Windows PowerShell) donné dans

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

J'ai écrit un fichier de script ".bat" normal pour changer l'heure de l'horloge à laquelle la machine virtuelle de VirtualBox démarre.

L'heure de début souhaitée est fixée à la variable "TEMPO_START_TIMESTAMP" au format d'époque. Vous pouvez obtenir votre équivalent epoh d'heure de début souhaité sur " http://www.timestampconvert.com/ ".

Le nom de la machine virtuelle de VirtualBox à démarrer est nécessaire dans la variable "NOME" (même nomenchature utilisé dans le script ".ps1" ci-dessus).

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%

Vous aurez également besoin de l'heure actuelle au format epoh, pour cela utilisez le script suivant (enregistrer sous "toEpoch.vbs", ce script visuel de base est appelé à partir du script ".bat" ci-dessus):

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

Pour exécuter la machine virtuelle, exécutez simplement le fichier de script ".bat" ci-dessus. Pas besoin d'ouvrir l'interface "Oracle VM VirtualBox Administration".

J'espère que ça aide.

Cordialement

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.