Próbuję ręcznie ustawić czas komputera w VirtualBox, ale zawsze resetuje się do tego, co było przed zmianą. Jak mogę wyłączyć NTTP i powiedzieć systemowi, która godzina?
Próbuję ręcznie ustawić czas komputera w VirtualBox, ale zawsze resetuje się do tego, co było przed zmianą. Jak mogę wyłączyć NTTP i powiedzieć systemowi, która godzina?
Odpowiedzi:
Znalazłem rozwiązanie. Przeczytaj następujący materiał: link
Zasadniczo, jeśli masz hosta Windows i gościa Ubuntu, wykonaj następujące czynności:
Ubuntu 12.04 32bit
C:\Program Files\Oracle
folderu i kliknij, VirtualBox
aby wybrać, a następnie trzymając lewy klawisz Shift, kliknij prawym przyciskiem myszy i wybierz menu „Otwórz okno poleceń tutaj”, interpreter musi być teraz uruchomionyWklej następujące polecenie (zmień nazwę maszyny wirtualnej na swoją nazwę!):
VBoxManage setextradata "Ubuntu 12.04 32bit"
"VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
Na koniec uruchom gościa Ubuntu i ręcznie ustaw datę i godzinę.
vboxadd-service
potrzebny dodatkowy argument na gościa, głównie--disable-timesync
Jak wspomniano w innej odpowiedzi, jeśli używasz Ubuntu jako gość w VirtualBox, powinieneś być świadom, że czas systemowy jest automatycznie synchronizowany przez dodatki gości (tj. Nie poprzez opcję w ustawieniach płyty głównej).
W takim przypadku rozwiązaniem jest wyłączenie dodatków gości, które można uzyskać, wykonując polecenie
sudo service vboxadd-service stop
lub
sudo /etc/init.d/vboxadd-service stop
Następnie możesz ustawić czas zgodnie z potrzebami (z wiersza poleceń za pomocą date --set
lub za pomocą apletu ustawień systemu)
Usługa VirtualBox zostanie zrestartowana przy następnym uruchomieniu lub możesz to zrobić ręcznie.
sudo service virtualbox-guest-utils stop
. Chyba nazwa pakietu została zmieniona?
Cóż, jeśli chcesz ustawić dowolne daty, najpierw powinieneś wyłączyć lub odinstalować NTTP.
sudo update-rc.d -f ntp remove
Następnie możesz użyć date
polecenia-, aby ustawić czas systemowy:
date -s "17 April 2011 12:34:56"
date --set="17 April 2011 12:34:56"
Oba polecenia są równoważne. Aby ustawić tylko czas, którego możesz użyć:
date +%T -s "12:34:56"
date
-Manpage ma trochę więcej kontroli formatu. Możesz użyć ich wszystkich, aby zmienić datę
Kliknij sekcję czasu i daty w panelu, a następnie pojawi się Kalendarz, a pod nim znajdują się Ustawienia godziny i daty, więc kliknij to.
Kliknij ikonę kłódki i wprowadź hasło, a następnie wybierz Ustaw czas ręcznie.
W Centrum oprogramowania wyszukaj ntpdate i usuń go, lub w terminalu: sudo apt-get remove ntpdate
(Może być konieczne ponowne uruchomienie komputera, aby całkowicie wyłączyć NTTP)
Następnie ustaw datę.
Na podstawie przykładu „.ps1” (skrypt Windows PowerShell) podanego w
Napisałem zwykły plik skryptu „.bat”, aby zmienić czas, w którym uruchamia się maszyna wirtualna VirtualBox.
Pożądany czas rozpoczęcia jest ustawiony na zmienną „TEMPO_START_TIMESTAMP” w formacie epoki. Możesz uzyskać żądany ekwiwalent czasu rozpoczęcia epoh na stronie „ http://www.timestampconvert.com/ ”.
Nazwa maszyny wirtualnej VirtualBox, która ma zostać uruchomiona, jest potrzebna w zmiennej „NOME” (ta sama nazwa używana w skrypcie „.ps1” powyżej).
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%
Będziesz także potrzebował bieżącego czasu w formacie epoh, w tym celu użyj następującego skryptu (zapisz jako „toEpoch.vbs”, ten skrypt Visual Basic jest wywoływany ze skryptu „.bat” powyżej):
WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())
Aby uruchomić maszynę wirtualną, po prostu uruchom powyższy plik skryptu „.bat”. Nie ma potrzeby otwierania interfejsu „Oracle VM VirtualBox Administration”.
Mam nadzieję, że to pomoże.
pozdrowienia