NOMO.asia

가상 PC 환경을 구축하기 위한 VMware 는 개발 중인 프로그램의 테스트 환경으로의 역할로도 유용하게 사용된다. 만약 어떠한 소프트웨어를 개발할 때 Windows 의 설치 시점과 현재 Windows 시간의 관계에 따라 프로그램 구동을 다르게 하고싶다면, 이 기능의 테스트를 위해 Windows 설치 일자를 조정해야 테스트가 가능할 것이다.

VMware 를 사용하지 않는 경우에는 메인보드 BIOS 설정에서 시간을 원하는 시간으로 설정하고 인터넷 연결을 끊은 채로 Windows 를 설치하면 될 것이다. 다만 매번 이런 과정을 진행하는 것은 매우 수고로우므로, VMware 로 가상 머신을 만들어 복사 & 보관해놓으면 편하게 테스트가 가능할 것이다.

아래에서는 VMware 에서 시간 동기화를 해제하고, 초기 윈도우 설치 시간을 지정하는 방법에 대해 정리하였다.

VMware 작업 환경

  • VMware Workstation 15 Player
  • Windows 10

VMware 시간 동기화 해제 & 초기 윈도우 설치 시간 지정하기

가상 머신 만들기

상단 메뉴에서 [File - New Virtual Machine] 메뉴를 선택한다.

아래와 같이 새 가상 머신을 만들기 위한 마법사 메뉴가 뜨면, Windows 설치를 위한 iso 파일을 선택해주어야 한다.

Windows ISO 파일을 선택할 때 주의해야 할 점이 있다. 만약 내가 설정하고 싶은 초기 Windows 시간이 Windows 설치 파일의 빌드 시점보다 "미래 시점" 이라면 어떤 ISO 파일을 선택하든 상관없다. (예: Windows 설치 파일이 18년 6월에 빌드된 것이고, 현재인 19년 7월보다 미래 시점인 20년 6월로 시간 설정을 하고 싶은 경우)

하지만 아래에서 설명할 방법을 따라하면서 현재 시점보다 과거 시점으로 Windows 를 설치할 생각이라면 Windows 설치 파일의 빌드 시점이 중요하다. 즉 내가 설정하고 싶은 과거 시간보다 이전에 빌드된 Windows 설치 파일을 이용하여 Windows 를 설치해야 한다.

이렇게 해야하는 이유는 Windows 10 을 기준으로, 빌드 시점이 18년 6월인 ISO 파일을 이용하고 아래에서 설명할 방법을 이용해 VMware의 시간을 16년 6월로 설정한 경우에, VMware 의 설정과 상관없이 빌드 시점으로 Windows 시간이 고정되는 것을 경험했다. 그러니까 너무 과거 시점으로 Windows 를 설치하려고 하면 강제로 해당 Windows 버전이 생성된 시점으로 초기 설치 일자가 고정된다는 것이다. Windows 버전에 따라 다를 수도 있고, 다른 방법이 있을지는 모르겠지만 본 포스트에서 설명하는 방법을 따라할 경우 이 점을 주의해야한다.

다시 한 번 강조하자면 현재 시점보다 과거 시점으로 Windows 를 설치할 생각이라면 내가 설정하고 싶은 Windows 설치 시점 이전에 빌드된 Windows 설치 파일을 이용하여 Windows 를 설치해야 한다.


이후에는 기존에 하던대로 VMware 생성을 해주면 되고, 계속 진행하다가 아래의 화면이 나타나면 [Customize Hardware] 버튼을 클릭한다.

Windows Power On 시 자동으로 인터넷이 연결되어 인터넷을 통한 시간 동기화를 하는 것을 막기 위하여, [Network Adapter] 설정에서 [Connect at power on] 의 체크를 해제한다.

이 이후에는 특별한 것이 없으므로, 원하는대로 생성을 마무리해주면 된다.

설정 수정하기

가상 머신을 생성하고 Windows 를 설치하기 전에, 생성된 가상 머신을 우클릭하여 [Settings] 메뉴로 들어간다.

[Options] - [VMware Tools] 에서 [Synchronize guest time with host] 에 체크되어 있다면 체크를 해제한다.

이후 가상머신을 생성한 폴더를 찾아 확장자가 .vmx 인 파일을 텍스트 편집기로 연다.

tools.syncTime 항목을 검색하여 찾은 후, 값이 TRUE 로 되어있다면 아래와 같이 FALSE 로 값을 변경한다. 아예 항목이 없다면 아래의 내용을 맨 끝에 추가한다.

tools.syncTime = "FALSE"

이후 time 으로 내용을 검색하면 위 항목 말고는 검색되는 것이 없을 것이다. 아래의 내용을 문서의 맨 끝에 추가한다.

time.synchronize.continue = "FALSE"
time.synchronize.restore = "FALSE"
time.synchronize.resume.disk = "FALSE"
time.synchronize.shrink = "FALSE"
time.synchronize.tools.startup = "FALSE"
time.synchronize.tools.enable = "FALSE"
time.synchronize.resume.host = "FALSE"
rtc.startTime = "1512900459"

마지막의 rtc.startTime 에 들어가는 숫자는 내가 설정하고 싶은 초기 구동 시간을 유닉스 시간의 형태로 입력한 것이다. 유닉스 시간이란 1970년 1월 1일 00:00:00 부터의 경과 시간을 초로 환산하여 정수로 나타낸 것을 말한다.

https://www.unixtimestamp.com/ 와 같은 웹사이트에 접속한 후, 원하는 날짜와 시간을 선택해 유닉스 시간 형태로 된 시간을 얻어낸 뒤, rtc.startTime = """" 안에 붙여넣으면 된다.

수정을 완료하였다면 저장한다.

설정 결과

위에서 .vmx 파일을 편집하는 것을 마지막으로 필요한 모든 설정이 끝났다.

가상 머신을 구동하여 Windows 를 설치하는 과정을 진행하면, 내가 설정한 날짜로 Windows 가 설치 및 구동되는 것을 확인할 수 있을 것이다.