Как вручную установить системное время в VirtualBox?

Я пытаюсь вручную установить время компьютера в VirtualBox, но оно всегда сбрасывается на то, что было до того, как я его изменил. Как я могу отключить ntp и сообщить системе, во сколько я хочу, чтобы это было?

30
задан 6 February 2018 в 12:00

7 ответов

Я нашел решение. Считайте следующий материал: ссылка

В основном, если у Вас есть хост Windows и гость Ubuntu, сделайте следующее:

  1. Найдите, что название Вашего VM (Виртуальная машина) - выполняет VB (VirtualBox), выбирает Ваш VM, открытые настройки, на вкладке 'General' проверяют имя, например, в моем случае Ubuntu 12.04 32bit
  2. В Windows запустите интерпретатор командной строки, перейдите в C:\Program Files\Oracle папка и щелчок VirtualBox для выбора, затем удерживая клавишу сдвига влево, делают щелчок правой кнопкой мыши и выбирают меню "Open command window here", интерпретатор должен работать теперь
  3. Вставьте следующую команду (измените имя VM на свое имя!):

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

  4. Наконец, запустите своего гостя Ubuntu и установите время и дату вручную.

30
ответ дан 6 February 2018 в 12:00

Как уже упоминалось в другом ответе, если вы используете Ubuntu в качестве гостя в VirtualBox, вы должны знать, что системное время автоматически синхронизируется с помощью гостевого дополнения (т. Е. Не через опцию в настройках материнской платы).

Ваше решение в этом случае - отключить гостевые дополнения, чего можно добиться, выполнив

sudo service vboxadd-service stop

или

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

. Затем вы можете установить желаемое время (из командная строка с помощью date --set или с помощью апплета системных настроек)

Служба VirtualBox будет перезапущена при следующей перезагрузке, или вы можете сделать это вручную.

0
ответ дан 6 February 2018 в 12:00

Единственный способ - установить время на материнской плате Virtualbox с помощью командной строки:

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>

Например, чтобы установить дату на 1 год назад:

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000
0
ответ дан 6 February 2018 в 12:00

Ну, если вы хотите установить произвольные даты, сначала вы должны отключить или удалить ntp.

  • Чтобы отключить его, откройте терминал и запустите sudo update-rc.d -f ntp remove
  • Чтобы удалить его, используйте ваше любимое программное обеспечение для управления программным обеспечением

После этого вы можете используйте команду date для установки системного времени:

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

Обе команды эквивалентны. Чтобы установить только время, вы можете использовать:

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

На date -странице есть еще несколько элементов управления форматом. Вы можете использовать их все, чтобы изменить дату

0
ответ дан 6 February 2018 в 12:00

В Центре программного обеспечения найдите ntpdate и удалите его или в терминале: sudo apt-get remove ntpdate

(Вам может потребоваться перезагрузка для полного отключения ntp)

Затем установите дата.

0
ответ дан 6 February 2018 в 12:00

На основе примера «.ps1» (сценарий Windows PowerShell), приведенного в

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

Я написал обычный файл сценария ".bat", чтобы изменить время, в которое виртуальная машина VirtualBox начинается.

Желаемое время начала задается в переменной «TEMPO_START_TIMESTAMP» в формате эпохи. Вы можете получить желаемый эквивалент времени начала работы в « http://www.timestampconvert.com/ ».

Имя виртуальной машины VirtualBox, которая должна быть запущена, необходимо в переменной «NOME» (та же номенклатура, которая использовалась в сценарии «.ps1» выше).

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», этот скрипт Visual Basic вызывается из скрипта «.bat» выше): [ 119]

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

Чтобы запустить виртуальную машину, просто запустите файл сценария ".bat" выше. Нет необходимости открывать интерфейс «Администрирование Oracle VM VirtualBox».

Надеюсь, это поможет.

Привет

0
ответ дан 6 February 2018 в 12:00

Нажмите на время & amp; в разделе даты на панели, затем появится календарь и под ним время и время. Настройки даты там, так что нажмите.

Нажмите на значок замка и введите свой пароль, затем выберите «Установить время вручную».

0
ответ дан 6 February 2018 в 12:00

Другие вопросы по тегам:

Похожие вопросы: