VirtualBox에서 시스템 시간을 수동으로 설정하려면 어떻게합니까?


30

VirtualBox에서 컴퓨터 시간을 수동으로 설정하려고하지만 항상 변경하기 전의 시간으로 재설정됩니다. ntp를 비활성화하고 원하는 시간을 시스템에 알리려면 어떻게해야합니까?


문제에 대한 자세한 내용을 알려줄 수 있습니까? 몇시이고 당신은 몇시에 컴퓨터를 설정합니까?
qbi

5
컴퓨터에서 임의의 시간을 잘못 설정하고 싶습니다.
Jeremy Bicha

답변:


30

해결책을 찾았습니다. 다음 자료를 읽으십시오 : 링크

기본적으로 Windows 호스트 및 Ubuntu 게스트가있는 경우 다음을 수행하십시오.

  1. VM (Virtual Machine)의 이름을 찾으십시오-VB (VirtualBox)를 실행하고 VM을 선택한 다음 설정을 열고 'General'탭에서 이름을 확인하십시오 (예 : 제 경우) Ubuntu 12.04 32bit
  2. Windows에서 명령 줄 인터프리터를 시작하고 C:\Program Files\Oracle폴더 로 이동하여 클릭 VirtualBox하여 선택한 다음 왼쪽 Shift 키를 누른 상태에서 마우스 오른쪽 버튼을 클릭하고 "여기에서 명령 창 열기"메뉴를 선택하면 이제 인터프리터가 실행 중이어야합니다.
  3. 다음 명령을 붙여 넣습니다 (VM 이름을 사용자 이름으로 변경하십시오!).

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

  4. 마지막으로 Ubuntu 게스트를 시작하고 시간과 날짜를 수동으로 설정하십시오.


6
이것은 분명히 받아 들여지는 대답이어야합니다! 내 우분투 서버 14 게스트에 공유 폴더가 마운트되어있어 게스트 추가 기능을 비활성화하고 싶지 않았습니다.
Jon B

불행하게도, 그것은 게스트 시스템에서 시간을 "동결"시키지 않습니다. 일부 시나리오에서는 모든 시간을 완전히 동결하려고합니다 (예 : 재현 가능한 빌드 수행).
VasyaNovikov

이것은 단지 나에게 시간을 많이 저장
elsadek

호스트 OS가 Ubuntu 인 경우 명령은 다음과 같습니다. vboxmanage setextradata "your_VM_name_here" "VBoxInternal / Devices / VMMDev / 0 / Config / GetHostTimeDisabled"1
Radu Maris

나는 그것을 시도 할 때이 질문을 참조, 그것은 일 : stackoverflow.com/a/45724822/18149vboxadd-service 필요한 추가 인수를 게스트에 주로--disable-timesync
leeand00

23

다른 답변에서 언급했듯이 VirtualBox에서 게스트로 Ubuntu를 실행하는 경우 게스트 추가에 의해 시스템 시간이 자동으로 동기화됩니다 (마더 보드 설정의 옵션이 아님).

이 경우 귀하의 솔루션은 게스트 추가 기능을 비활성화하는 것입니다.

sudo service vboxadd-service stop

또는

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

그런 다음 date --set시스템 설정 애플릿을 사용 하거나 사용하여 명령 행에서 원하는 시간을 설정할 수 있습니다.

다음에 다시 부팅하면 VirtualBox 서비스가 다시 시작되거나 수동으로 수행 할 수 있습니다.


3
주제를 벗어 났지만 게스트 추가를 비활성화 / 제거하면 Windows 게스트 OS에서도 시스템 시계를 설정할 수 있습니다.
speckledcarp

3
내 Ubuntu 버전에서 명령은 sudo service virtualbox-guest-utils stop입니다. 패키지 이름이 바뀌 었습니까?
Crashthatch

@Crashthatch 솔루션이 작동하는 유일한 방법입니다. 감사.
Bevor

11

유일한 방법은 명령 줄을 사용하여 Virtualbox 마더 보드에서 시간을 설정하는 것입니다.

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>

예를 들어 날짜를 1 년으로 되돌리려면

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000

4

임의의 날짜를 설정하려면 먼저 ntp를 비활성화하거나 제거해야합니다.

  • 비활성화하려면 터미널을 열고 실행하십시오. sudo update-rc.d -f ntp remove
  • 제거하려면 자주 사용하는 소프트웨어 관리 소프트웨어를 사용하십시오

그런 다음 date-command를 사용하여 시스템 시간을 설정할 수 있습니다.

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

두 명령 모두 동일합니다. 사용할 수있는 시간 만 설정하려면 다음을 수행하십시오.

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

date-manpage는 좀 더 형식 컨트롤이 있습니다. 모두 사용하여 날짜를 변경할 수 있습니다


좋아, 나는 그렇게했지만 sudo date -s는 되돌리기 전에 몇 초 동안 만 날짜를 유지한다. 즉, 달리기 날짜는 정상적으로 작동하도록 설정 한 시간을 표시하지만 패널의 시간 표시기는 표시되지 않으며 날짜를 다시 실행하면 시간이 패널 시계와 일치하도록 전환되었습니다. 인디케이터-날짜 시간 시계 변경도 작동하지 않습니다. 버그를 열어야 할 것 같습니다.
Jeremy Bicha

설치 제거 / 비활성화 ntp입니까? 다른 자동 시간 관리 소프트웨어 (예 : chrony)가 설치되어 있습니까?
qbi

그것은 VirtualBox의 새로운 Natty 설치이며 ntp를 제거하고 다른 시간 관리 소프트웨어를 설치하지 않았습니다.
Jeremy Bicha

2
Virtualbox는 호스트에서 클라이언트로 시간을 "전송"합니다. 여기에서 몇 가지 옵션을 변경해야합니다. 아마 virtualbox.org/manual/ch03.html#settings-motherboard 이 도움이 될 수 있습니다.
qbi

3

패널의 시간 및 날짜 섹션을 클릭하면 달력이 나타나고 그 아래에 시간 및 날짜 설정이 있음을 클릭하십시오.

자물쇠 아이콘을 클릭하고 암호를 입력 한 다음 수동으로 시간 설정을 선택하십시오.


계속해서 대부분의 사용자에게 가장 적합한 답변으로 표시하겠습니다. 내 특정 문제는 VirtualBox와 관련이 있습니다.
Jeremy Bicha

1

소프트웨어 센터에서 ntpdate를 찾아서 제거하거나 터미널에서 sudo apt-get remove ntpdate를 제거하십시오.

(ntp를 완전히 비활성화하려면 재부팅해야 할 수도 있습니다)

그런 다음 날짜를 설정하십시오.


좋아, 나는 ntpdate를 제거하고 재부팅했지만 여전히 시스템 시계를 설정하고 고정시킬 수는 없습니다.
Jeremy Bicha

0

".ps1"(Windows PowerShell 스크립트) 예제를 기반으로합니다.

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

VirtualBox 가상 머신이 시작되는 시간을 변경하기 위해 일반 ".bat"스크립트 파일을 작성했습니다.

원하는 시작 시간은 에포크 형식의 변수 "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"로 저장,이 시각적 기본 스크립트는 위의 ".bat"스크립트에서 호출 됨).

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

가상 머신을 실행하려면 위의 ".bat"스크립트 파일을 실행하십시오. "Oracle VM VirtualBox 관리"인터페이스를 열 필요가 없습니다.

이게 도움이 되길 바란다.

문안 인사

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.