오래된 문젠데, 이 방법이 최선으로 보인다.
리눅스와 MS 윈도우간 다중 부팅 시, 시스템 시간이 엉뚱하게 설정되는 문제가 있다.
원인은 서로 생각하는 바(?)가 달라서인데, 리눅스는 시스템, 즉 메인보드의 시간(Real time clock)이 UTC 로 설정되어 있다고 가정한다. 반면, MS 윈도우는 rtc 가 현재 지역시간(Local Time)으로 돼 있다고 가정한다.
리눅스는 시작되고 나서 rtc 를 UTC 로 바꿔버린다. 현재 대한민국 시간이 오후 17:13 이라면, UTC 는 08:13 이 되고, 리눅스는 rtc 를 08:13 으로 바꿔버린다.
이 상태에서 MS 윈도우로 부팅하면, 08:13 을 로컬시간으로 인식하여 OS 시간도 08:13 으로 강제(?) 변경시켜버린다.
이를 방지하려면 두가지 방법을 쓸 수 있는데..
하나는 Linux 에서 rtc 를 현지시간으로 바꾸는 방법이고, 다른 하나는 MS 윈도우에서 rtc 를 UTC 로 쓰도록 하는 방법이다.
뭘 써도 관계없지만, 메인보드의 시간이 아무래도 현지 시간인게 좀 더 보기가 낫지 않겠나? 따라서 리눅스에서 수정하는 방법이 더 나아 보인다.
timedatectl set-local-rtc 1
이러고 나면 뭐라 경고를 날려주는데, 사용에 큰 상관은 없어 보인다.
MS 윈도우와 리눅스만 사용한다면 이걸로 끝인데, 만약 여기에 macOS(해킨토시)까지 사용한다면 이 방법으로는 되질 않는다.
macOS 도 아마 리눅스와 같은 가정을 하는 모양이다. 즉, rtc 를 UTC 로 설정하는 방식을 쓴다.
따라서, macOS 에서도 timedatectl
과 프로그램으로 rtc 를 로컬 시간으로 바꿔줘야 하는데, macOS 엔 그런게 없는 듯?? 찾아봐도 잘 보이질 않는다.
결론!
세 OS 를 넘나들려면, MS 윈도우에서 레지스트리를 고쳐주는게 편하다. 다만, 이렇게되면 rtc(메인보드 시계)는 UTC 를 따르게 되어, 펌웨어 설정에 들어가면 이상한 시간(?)을 봐야만 하는 상황이 된다.
MS 윈도우 레지스트리 설정은 itfoss 참고.