
Виртуальные машины VirtualBox по умолчанию синхронизируют системное время с хост-компьютером, но при работе с разными часовыми поясами или серверными системами это может приводить к расхождениям. Точное время критично для тестирования приложений, работы с базами данных и настройки сетевых служб.
Настройка времени в VirtualBox требует понимания, как гостевая ОС обрабатывает системные часы. В Windows и Linux процессы синхронизации различаются: Windows использует службу времени Windows Time, а Linux – демон NTP или системные таймзоны. Игнорирование этих различий может привести к постоянному сбою времени после перезапуска виртуальной машины.
Кроме стандартной синхронизации с хостом, VirtualBox позволяет вручную изменять дату и часовой пояс через настройки самой виртуальной машины и командную строку VBoxManage. Эти инструменты полезны при настройке серверов, тестировании скриптов с временными метками и отладке приложений, зависящих от точного времени.
Проверка текущих настроек времени виртуальной машины

Для точной настройки времени сначала необходимо определить текущие параметры системы. В Windows откройте командную строку и выполните команду time /T для отображения текущего времени и date /T для даты. В Linux используйте команду timedatectl status, которая покажет локальное время, системное время UTC, часовой пояс и статус синхронизации NTP.
В VirtualBox также важно проверить, включена ли синхронизация времени с хостом. Для этого в настройках VM перейдите в раздел System → Motherboard и убедитесь, что опция Hardware Clock in UTC Time установлена корректно. Неправильное значение может вызвать смещение времени при перезапуске виртуальной машины.
Если возникают расхождения между временем гостевой ОС и хоста, рекомендуется записать эти значения и сравнить их после отключения синхронизации. Это позволит определить, связано ли смещение с настройками VirtualBox или с самой операционной системой.
Синхронизация времени с хост-системой
VirtualBox поддерживает автоматическую синхронизацию времени между хостом и гостевой ОС через службу Guest Additions. Для её работы необходимо установить Guest Additions внутри виртуальной машины и убедиться, что модуль VBoxService запущен. В Linux это проверяется командой systemctl status vboxservice, в Windows – через диспетчер задач.
Синхронизация работает по умолчанию каждые 10 секунд, корректируя небольшие расхождения. Для изменения интервала используйте команду VBoxManage setextradata «Имя_ВМ» «VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled» 0 для включения синхронизации или 1 для её отключения.
При работе с часовой зоной хоста и гостя, важно убедиться, что настройка UTC согласована. На Windows VM время Guest Additions синхронизируется с локальным временем хоста, в Linux – обычно с UTC. Несоответствие часовых поясов может привести к постоянным смещениям времени при перезапуске виртуальной машины.
Изменение часового пояса внутри гостевой ОС
В Windows для смены часового пояса откройте Панель управления → Дата и время → Изменить часовой пояс и выберите необходимую зону. После изменения рекомендуется перезапустить службу времени Windows с помощью команд net stop w32time и net start w32time для корректной синхронизации с хостом.
В Linux управление часовым поясом выполняется через timedatectl set-timezone. Например, команда timedatectl set-timezone Europe/Moscow сразу применяет выбранный часовой пояс и корректирует системное время. Проверить текущие настройки можно командой timedatectl status.
При смене часового пояса важно учитывать, что Guest Additions может автоматически корректировать время по хосту. Чтобы сохранить выбранный часовой пояс без постоянной подстройки, используйте настройку VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled через VBoxManage, установив значение 1.
Использование командной строки для корректировки времени

В Windows корректировка времени через командную строку выполняется командой date для даты и time для часов. Например, date 26-11-2025 установит дату 26 ноября 2025 года, а time 14:30:00 задаст точное время. Для автоматизации можно использовать пакетные файлы с последовательными командами date и time.
В Linux изменение времени выполняется командой sudo date -s «2025-11-26 14:30:00» для установки точной даты и времени. Для постоянного сохранения изменений в системе с NTP необходимо синхронизировать аппаратные часы командой sudo hwclock —systohc.
Для управления временем через VirtualBox без входа в гостевую ОС используется VBoxManage controlvm «Имя_ВМ» setdatetime YYYY-MM-DDTHH:MM:SS. Эта команда задаёт системное время виртуальной машины напрямую и полезна при сценариях тестирования, где требуется точная временная метка без вмешательства хост-системы.
Отключение автоматической синхронизации времени

Автоматическая синхронизация времени VirtualBox может мешать точной настройке даты и часового пояса. Для её отключения используйте следующие методы:
- Через VBoxManage: выполните команду VBoxManage setextradata «Имя_ВМ» «VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled» 1. Это полностью отключает синхронизацию с хостом.
- В Linux-гостях: остановите службу vboxservice командой sudo systemctl stop vboxservice и запретите её автозапуск sudo systemctl disable vboxservice.
- В Windows-гостях: завершите процесс VBoxService.exe через диспетчер задач и удалите автозагрузку через msconfig или редактор реестра.
После отключения синхронизации рекомендуется проверить время командой date /T и time /T в Windows или timedatectl status в Linux. Это позволяет убедиться, что системное время сохраняется независимо от хост-системы.
Исправление проблем с расхождением времени при запуске VM
Расхождение времени после запуска виртуальной машины часто связано с конфликтом настроек Guest Additions и системного часового пояса. Для выявления причины рекомендуется провести сравнение времени гостя и хоста.
| Проверка | Команда Windows | Команда Linux |
|---|---|---|
| Текущее системное время | time /T | timedatectl status |
| Аппаратные часы | w32tm /query /status | hwclock |
| Состояние синхронизации с хостом | Проверка службы VBoxService | systemctl status vboxservice |
Для корректировки выполните следующие действия:
- Отключите автоматическую синхронизацию через VBoxManage setextradata «Имя_ВМ» «VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled» 1.
- Установите правильный часовой пояс внутри гостевой ОС (timedatectl set-timezone для Linux, Панель управления → Дата и время для Windows).
- Синхронизируйте аппаратные часы с системным временем: hwclock —systohc в Linux или перезапуск службы времени в Windows.
После этих действий расхождения времени при запуске VM исчезают, а система сохраняет установленное время независимо от хоста.
Настройка времени для виртуальных машин Linux и Windows
В Linux точное время устанавливается через команду timedatectl. Для установки часового пояса используйте timedatectl set-timezone Europe/Moscow, для задания конкретного времени – sudo date -s «2025-11-26 14:30:00». После этого синхронизируйте аппаратные часы с системным временем командой sudo hwclock —systohc. Если используется NTP, убедитесь, что демон ntpd или systemd-timesyncd активен.
В Windows настройка времени выполняется через Панель управления → Дата и время, а точное значение можно задать командами date и time в командной строке. Для синхронизации с внешними серверами времени включите службу Windows Time и перезапустите её командами net stop w32time и net start w32time.
Для обеих систем рекомендуется проверять работу Guest Additions. В Linux служба vboxservice, в Windows процесс VBoxService.exe обеспечивают синхронизацию с хостом. При необходимости отключения автоматической синхронизации используйте VBoxManage setextradata «Имя_ВМ» «VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled» 1.
Вопрос-ответ:
Почему время в виртуальной машине отличается от времени хоста после перезагрузки?
Время гостевой ОС может смещаться из-за конфликта между настройками часового пояса и автоматической синхронизацией с хостом через Guest Additions. Чтобы устранить расхождение, проверьте правильность часового пояса внутри гостя и убедитесь, что служба синхронизации времени запущена корректно. В Linux это демон vboxservice, в Windows — процесс VBoxService.exe.
Как временно отключить синхронизацию времени с хост-системой?
Для временного отключения синхронизации используйте команду VBoxManage setextradata «Имя_ВМ» «VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled» 1. В Linux дополнительно можно остановить службу vboxservice (sudo systemctl stop vboxservice), а в Windows завершить процесс VBoxService.exe через диспетчер задач. Это позволяет вручную задавать время без автоматической подстройки хостом.
Как установить точное время и часовой пояс в Linux-гостевой ОС?
Для задания часового пояса используйте команду timedatectl set-timezone, например, timedatectl set-timezone Europe/Moscow. Для установки конкретного времени примените sudo date -s «2025-11-26 14:30:00». После этого синхронизируйте аппаратные часы с системным временем командой sudo hwclock —systohc, чтобы изменения сохранялись после перезапуска.
Можно ли корректировать время виртуальной машины без входа в гостевую ОС?
Да, это выполняется через команду VBoxManage controlvm «Имя_ВМ» setdatetime YYYY-MM-DDTHH:MM:SS. Команда задаёт системное время виртуальной машины напрямую, что удобно для тестирования сценариев с временными метками или при подготовке серверных образов без загрузки гостевой ОС.
