Wie stelle ich die Systemzeit in VirtualBox manuell ein?


30

Ich versuche, die Uhrzeit des Computers in VirtualBox manuell einzustellen, aber er wird immer auf den Stand zurückgesetzt, den er vor meiner Änderung hatte. Wie kann ich ntp deaktivieren und dem System mitteilen, wie spät es sein soll?


Können Sie uns weitere Einzelheiten zu Ihrem Problem mitteilen? Wann soll es sein und wann stellt sich Ihr Computer ein?
qbi

5
Ich möchte auf meinem Computer eine willkürlich falsche Uhrzeit einstellen.
Jeremy Bicha

Antworten:


30

Ich habe eine Lösung gefunden. Lesen Sie das folgende Material: Link

Grundsätzlich gilt Folgendes, wenn Sie einen Windows-Host und einen Ubuntu-Gast haben:

  1. Suchen Sie einen Namen für Ihre VM (Virtual Machine) - führen Sie VB (VirtualBox) aus, wählen Sie Ihre VM aus, öffnen Sie die Einstellungen, und überprüfen Sie auf der Registerkarte "Allgemein" den Namen, z. B. in meinem Fall Ubuntu 12.04 32bit
  2. Starten Sie in Windows einen Befehlszeileninterpreter, gehen Sie zu C:\Program Files\OracleOrdner und klicken Sie, VirtualBoxum ihn auszuwählen. Halten Sie dann die linke Umschalttaste gedrückt, klicken Sie mit der rechten Maustaste und wählen Sie das Menü "Befehlsfenster hier öffnen". Der Interpreter muss jetzt ausgeführt werden
  3. Fügen Sie den folgenden Befehl ein (ändern Sie den VM-Namen in Ihren Namen!):

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

  4. Starten Sie schließlich Ihren Ubuntu-Gast und stellen Sie Uhrzeit und Datum manuell ein.


6
Das sollte definitiv die akzeptierte Antwort sein! Ich wollte das Hinzufügen von Gästen nicht deaktivieren, da ich einen freigegebenen Ordner auf meinem Ubuntu Server 14-Gast habe
Jon B

Leider "friert" es die Zeit auf dem Gastsystem nicht ein. In einigen Szenarien möchten Sie jedoch die gesamte Zeit einfrieren (z. B. für reproduzierbare Builds).
VasyaNovikov

das hat mir einfach viel zeit
gespart

Wenn Ihr Host-Betriebssystem Ubuntu ist, lautet der Befehl: vboxmanage setextradata "your_VM_name_here" "VBoxInternal / Devices / VMMDev / 0 / Config / GetHostTimeDisabled" 1
Radu Maris

Siehe diese Frage, es hat funktioniert, als ich es ausprobiert habe: stackoverflow.com/a/45724822/18149 Das vboxadd-servicebrauchte ein zusätzliches Argument für den Gast, hauptsächlich--disable-timesync
leeand00

23

Wie in einer anderen Antwort erwähnt, sollten Sie wissen, wenn Sie Ubuntu als Gast unter VirtualBox ausführen, dass die Systemzeit automatisch durch die Gastzugaben synchronisiert wird (dh nicht durch eine Option in den Motherboard-Einstellungen).

In diesem Fall besteht Ihre Lösung darin, die Guest-Ergänzungen zu deaktivieren, die durch Ausführen von ausgeführt werden können

sudo service vboxadd-service stop

oder

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

Sie können die Uhrzeit dann wie gewünscht einstellen (über die Befehlszeile mit date --setoder über das Systemeinstellungs-Applet).

Der VirtualBox-Dienst wird beim nächsten Neustart neu gestartet, oder Sie können dies manuell tun.


3
Off - Topic, aber das Deaktivieren / Deinstallieren von Gasterweiterungen können Sie die Systemuhr OSes auf Windows - Gast auch einstellen
speckledcarp

3
In meiner Ubuntu-Version war der Befehl sudo service virtualbox-guest-utils stop. Ich denke, das Paket wurde umbenannt?
Crashthatch

@ Crashthatch Ihre Lösung ist die einzige, die funktioniert. Vielen Dank.
Vor dem

11

Die einzige Möglichkeit besteht darin, die Uhrzeit in der Virtualbox-Hauptplatine über die Befehlszeile festzulegen:

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>

So setzen Sie beispielsweise das Datum um 1 Jahr zurück:

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000

4

Nun, wenn Sie ein beliebiges Datum festlegen möchten, sollten Sie zuerst ntp deaktivieren oder deinstallieren.

  • Öffnen Sie zum Deaktivieren ein Terminal und führen Sie es aus sudo update-rc.d -f ntp remove
  • Verwenden Sie zum Deinstallieren Ihre bevorzugte Software-Verwaltungssoftware

Danach können Sie mit dem date-Befehl Ihre Systemzeit einstellen:

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

Beide Befehle sind gleichwertig. So stellen Sie nur die Zeit ein, die Sie verwenden können:

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

Die date-manpage hat einige weitere Format-Steuerelemente. Sie können sie alle verwenden, um das Datum zu ändern


Ok, das habe ich getan, aber sudo date -s speichert das Datum nur für ein paar Sekunden, bevor es zurückgesetzt wird. Damit meine ich, dass das laufende Datum wieder die Zeit anzeigt, die ich normal eingestellt habe, aber die Zeitanzeige im Panel nicht, und wenn ich das Datum erneut laufen lasse, hat sich die Zeit auf die Uhr des Panels umgestellt ..... und versucht zu Ändern Sie die Anzeige-Datum / Uhrzeit-Uhr funktioniert auch nicht. Ich glaube, ich muss einen Bug öffnen.
Jeremy Bicha

Bist du sicher, dass ntp deinstalliert / deaktiviert ist? Haben Sie eine andere automatische Zeitverwaltungssoftware (zB chrony) installiert?
qbi

Es ist eine neue Natty-Installation in VirtualBox und ich habe ntp gelöscht und keine andere Zeitverwaltungssoftware installiert.
Jeremy Bicha

2
Virtualbox „überträgt“ die Zeit von Ihrem Host zum Client. Hier müssen Sie einige Optionen ändern. Vielleicht ist virtualbox.org/manual/ch03.html#settings-motherboard hilfreich.
Qbi

3

Klicken Sie auf den Bereich Zeit und Datum. Daraufhin wird der Kalender angezeigt. Klicken Sie darauf, um die Zeit- und Datumseinstellungen anzuzeigen.

Klicken Sie auf das Vorhängeschloss-Symbol und geben Sie Ihr Passwort ein. Wählen Sie dann "Uhrzeit manuell einstellen".


Ich werde fortfahren und dies als die beste Antwort für die meisten Benutzer markieren. Mein spezielles Problem war mit VirtualBox.
Jeremy Bicha

1

Suchen Sie im Software-Center nach ntpdate und entfernen Sie es oder im Terminal: sudo apt-get remove ntpdate

(Möglicherweise müssen Sie einen Neustart durchführen, um ntp vollständig zu deaktivieren.)

Dann stellen Sie Ihr Datum ein.


Ok, ich habe ntpdate gelöscht und neu gestartet, aber ich kann die Systemuhr immer noch nicht einstellen und habe sie fest.
Jeremy Bicha

0

Basierend auf dem Beispiel ".ps1" (Windows PowerShell-Skript) in

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

Ich habe eine reguläre ".bat" -Skriptdatei geschrieben, um die Uhrzeit zu ändern, zu der die virtuelle Maschine der VirtualBox gestartet wird.

Die gewünschte Startzeit wird bei der Variablen "TEMPO_START_TIMESTAMP" im Epochenformat eingestellt. Sie können Ihre gewünschte Startzeit auf " http://www.timestampconvert.com/ " abrufen .

Der Name der zu startenden virtuellen Maschine der VirtualBox wird in der Variablen "NOME" benötigt (die gleiche Bezeichnung wie im obigen ".ps1" -Skript).

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%

Sie benötigen außerdem die aktuelle Uhrzeit im epoh-Format. Verwenden Sie hierzu das folgende Skript (speichern Sie es unter "toEpoch.vbs". Dieses Visual Basic-Skript wird aus dem obigen ".bat" -Skript aufgerufen):

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

Um die virtuelle Maschine auszuführen, führen Sie einfach die obige ".bat" -Skriptdatei aus. Die Benutzeroberfläche von "Oracle VM VirtualBox Administration" muss nicht geöffnet werden.

Ich hoffe das hilft.

Grüße

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.