동일한 머신에 있는 두 O/S의 시계 차이가 1시간인 이유는 무엇입니까?

동일한 머신에 있는 두 O/S의 시계 차이가 1시간인 이유는 무엇입니까?

내 컴퓨터에는 두 개의 O/S, 즉 Linux 배포판(기본)과 Windows 7(거의 사용되지 않음)이 있습니다.

두 O/S 모두 내 시간대(UTC+1)로 설정되어 있습니다.

BIOS에서 시간을 설정하는 방법에 따라 Windows에서는 현재 시간보다 1시간 전으로 시간이 표시되고 Linux에서는 1시간 이후로 시간이 표시됩니다.

왜 이런 일이 발생합니까?

Windows 시스템은 일반적으로 인터넷 연결이 끊어진 상태로 시작됩니다. 대신 리눅스가 연결되어 있어서 잠시 후 날짜를 수정하지만, 재부팅하고 나면 다시 잘못 구성되어 버립니다.

편집: 다음과 중복된 것으로 나타났습니다.https://serverfault.com/questions/16107/why-does-ubuntu-9-04-reset-my-windows-clock

답변1

여기서 발생할 수 있는 몇 가지 문제를 생각해 볼 수 있습니다.

첫째, 한쪽에서는 일광 절약 시간을 활성화하고 다른 쪽에서는 활성화하지 않았거나 OS 중 하나가 잘못된 시간대로 구성되었을 수 있습니다.

Linux는 컴퓨터의 하드웨어 시계가 로컬이 아닌 UTC로 설정되어 있다고 가정하고 Windows는 로컬로 설정되어 있다고 생각할 수 있습니다. UTC+1 또는 UTC-1에 있는 경우 해당 동작을 볼 수 있습니다. Linux는 하드웨어 시계 값을 로드하고 이를 로컬로 조정한 다음 종료 시 하드웨어 시계에 쓰기 전에 UTC로 다시 변환할 수 있습니다.

답변2

Linux 배포판은 BIOS 시계가 UTC를 사용한다고 가정하고 Windows 설치에서는 BIOS 시간이 현지 시간이라고 가정합니다.

듀얼 부팅을 사용하는 랩톱에 설정하는 방법은 다음과 같습니다. 시스템 시계에 UTC 대신 현지 시간을 사용하도록 Linux 측에서 변경합니다. 먼저 다음과 같이 시간이 Linux 측에서 올바르게 설정되도록 명령을 실행하십시오 root.

date -s "2 feb 2016 18:05:15"

hwclock --hctosys --localtimeBIOS 날짜/시간 설정을 컴퓨터에 복사하고 현지 시간으로 설정해야 합니다. hwclock --systohc --localtimeUTC 대신 현지 시간으로 BIOS 시간을 설정해야 합니다. 위의 명령을 사용하여 시간을 설정한 후 다음을 실행하는 것이 좋습니다 date: hwclock --systohc --localtime 그리고 다음도 실행: hwclock --hctosys --localtime /etc/adjtime에 'LOCAL'이라는 파일의 마지막 줄이 있는지 확인하세요. 'UTC' 또는 이와 유사한 것 대신에. 플래그 --hctosys --localtime를 함께 사용하면 프로그래밍 방식으로 이를 수행할 수 있습니다. date혼자서 할 수도 있지만 확인하지는 않았습니다.

시스템 시간이 실제로 현지 시간으로 정확한지 확인합니다. 날짜 설정 문자열의 형식이 매우 유연하므로 걱정하지 마세요. 다른 유효한 표현 방법의 예를 들면 다음과 같습니다.

date -s "2 feb 2016 6:05:15 PM"
date -s "february 2, 2016 6:11:30 PM"
date -s "Tue Feb  2 18:11:30 EST 2016"

(저는 동부 표준시, GMT -5를 사용하고 있습니다)

여전히 문제가 있는 경우 시간대를 다시 선택해야 할 수도 있습니다. Debian 또는 Ubuntu와 같은 파생 제품에서는 sudo dpkg-reconfigure tzdatancurses 인터페이스에서 시간대를 변경하는 데 사용합니다 .

해당 파일이 없으면 관련 시간대 정보 파일을 찾아보세요. 내 설치에서 이것은 /usr/share/zoneinfo/America/Indiana/Indianapolis.

찾으면 다음 위치에 복사하세요 /etc/localtime.

cp /usr/share/zoneinfo/America/Indiana/Indianapolis /etc/localtime

이 작업을 수행한 후에도 시간이 여전히 올바르게 설정되어 있는지 확인하겠습니다 date. 그렇지 않은 경우 처음 두 명령( datehwclock)을 다시 실행하십시오.

Linux에서는 Linux에서 설정한 시간이 Windows와 올바르게 공유되도록 해야 합니다. 또는 수행할 수 있지만 대신 UTC를 사용하도록 창을 설정하는 것이 더 어렵습니다. 버전 및 창에 대한 변경이 수행되는 방법은 업데이트 후 현지 시간으로 되돌아가는 것으로 알려져 있습니다.

hwclock나는 컴퓨터가 NTP를 사용하여 인터넷을 통해 현재 시간을 가져오고 있었기 때문에 모든 작업을 수행하는 것이 무시되는 특히 완고한 컴퓨터를 기억합니다 . 시간대 설정은 NTP를 완전히 비활성화하지 않고 문제를 해결할 수 있는 유일한 방법이었습니다.

어쨌든, 그것은 그 문제에 대한 나의 과거 경험을 모두 모아놓은 큰 덩어리일 뿐입니다. 그 중 하나는 거의 확실하게 작동할 것입니다. 먼저 시간대 항목을 시도해 보고, hwclock --systohc --localtime작업이 완료된 후에 BIOS 시계가 현지 시간인지 확인하도록 확실히 시도해 보겠습니다.

관련 정보