노트북을 듀얼 부팅하고 EndeavourOS를 설치했습니다. (다른 OS는 Windows 10입니다.)
따라서 하드웨어와 시스템 시계 모두 잘못된 시간을 표시하고 있습니다.
올바른 시간대(UTC+5:30)를 설정했지만 여전히 잘못된 시간이 표시됩니다.
timedatctl
Local time: Sat 2023-02-25 09:12:46 IST
Universal time: Sat 2023-02-25 03:42:46 UTC
RTC time: Sat 2023-02-25 03:42:46
Time zone: Asia/Kolkata (IST, +0530)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
여기 내 터미널의 스냅샷이 있는데 잘못된 시간이 표시됩니다. 심지어 UTC 시간은 약 3시 59분이고 이 글을 쓰는 시점의 현지 시간은 9시 29분입니다.
다양한 웹사이트를 살펴봤지만 이 문제에 대한 해결책을 찾을 수 없습니다.
어떤 도움이라도 대단히 감사하겠습니다!
답변1
따라서 UTC 시간은 약 17분 정도 다릅니다.
System clock synchronized: no
NTP service: active
NTP 서비스가 활성화되어 있어도 System clock synchronized: no
접속하도록 구성된 NTP 서버로부터 정확한 시간 정보를 성공적으로 얻지 못했음을 나타냅니다.
실제 NTP 서비스의 상태와 구성을 검토해야 합니다. 문자 그대로 ntpd
, 또는 chronyd
, 또는 을 의미할 수 있습니다 systemd-timesyncd
. (모든 기능을 갖춘 NTP 클라이언트인 다른 두 클라이언트와 달리 이는 systemd-timesyncd
SNTP 클라이언트입니다.)
상태를 쿼리하려면 ntpd
를 사용하세요 ntpq -np
.
가능하다면 chronyd
다음을 사용하세요.chronyc -n sources
사용된.systemd-timesyncd
timedatectl show-timesync --all
이러한 명령의 출력에는 NTP 동기화 서비스에 NTP 서버가 구성되어 있는지 여부와 해당 서버에 연결되었는지 여부가 표시됩니다. NTP 서버가 현재 구성되어 있지 않거나 서버가 해당 서버에 액세스할 수 없다는 점을 확인하시기 바랍니다.
의 구성은 ntpd
일반적으로 의 여러 파일과 하위 디렉터리 /etc/ntp.conf
에 있으며 에서 구성됩니다 .chronyd
/etc/chrony/
systemd-timesyncd
/etc/systemd/timesyncd.conf
시스템 시계가 실제 시간과 너무 멀기 때문에 시간 동기화 서버가 큰 시간 점프를 방지하기 위해 자동으로 동기화하지 못할 수도 있습니다. 그렇다면 더 큰 시간 조정을 허용하기 위해 적절한 옵션을 사용하여 수동으로 동기화를 한 번 시작해야 할 수도 있습니다. ntpd의 경우 ntpd -qg
.
답변2
따라서 하드웨어와 시스템 시계 모두 잘못된 시간을 표시하고 있습니다.
음. 그럴 것 같지 않습니다. 그러나 만일다른운영 체제는 MS-Windows이므로 일부 차이점이 설명될 수 있습니다. PC에 MS-DOS(또는 DR-DOS)가 함께 제공되면 하드웨어 시계가 현지 시간으로 설정됩니다. MS-DOS는 시간대를 인식하지 못합니다. MS-DOS의 유령은 현대 MS-Windows에 여전히 존재합니다. 하드웨어 시계를 현지 시간대 또는 UTC와 동기화되도록 구성할 수 있습니다. 그러나 귀하의 컴퓨터가 15분만 느린 것으로 나타나므로 다른 운영 체제는 하드웨어 시계에서 UTC를 사용하고 있는 것으로 보입니다.
OTOH, 당신은 "arch-linux"라는 태그를 달고 EndeavourOS를 설치했다고 말했습니다. 따라서 아마도 두 운영 체제 모두 서로 다른 버전의 Linux를 실행하고 있을 것입니다. 이제 Arch Linux로 부팅해도 같은 차이가 나타날 것 같습니다.
Linux는 부팅 시 또는 하드웨어 시계를 자체 계산된 시간과 동기화하기로 결정할 때만 하드웨어 시계를 읽습니다. 또한 15분 동안 잠을 자지 않고 몇 달을 보낼 가능성도 없습니다.
가장 가능성이 높은 원인은 하드웨어 시계가 완전히 잘못되었기 때문입니다. 명령을 사용하거나 ntp(Linux가 런타임에 사용하는)를 통해 시스템 시계를 설정할 수 있습니다 date
. 이 작업을 수행한 후에는 하드웨어 시계를 설정해야 합니다. 이는 hwclock 명령을 사용하여 수행됩니다.
로컬 컴퓨터의 매뉴얼 페이지에서 date 및 hwclock 명령 사용에 대한 지침을 찾을 수 있습니다.
답변3
이 문제는 Linux와 MS Windows 간의 서로 다른 시간 가정으로 인해 발생할 수 있습니다. 기본적으로 MS Windows에서는 시간이 현지 시간으로 저장된다고 가정하고, Linux에서는 시간이 UTC 시간으로 저장된다고 가정합니다. 따라서 이중 부팅을 하면 운영 체제 중 하나에 잘못된 시간이 표시됩니다. 해결책은 Linux가 현지 시간을 사용하도록 하는 것입니다. 아니면 MS Windows에서 UTC를 사용하도록 하세요. 두 번째 옵션은 쉽지 않을 수 있습니다. 이 OS에서 이러한 사항을 변경하는 방법을 모르겠습니다. 그러나 Linux에서 현지 시간을 사용하도록 하려면 다음 명령을 사용하면 됩니다.
timedatectl set-local-rtc 1 --adjust-system-clock
그런 다음 표시된 명령을 실행하면 timedatectl
약간 다른 출력이 표시됩니다 “RTC in local TZ: yes”
.
답변4
다른 답변은 작동하지만존경받는Linux 및 Windows를 UTC를 사용하도록 설정하면 일부 Windows 버전에서는 온라인 시간을 동기화하도록 설정된 경우 하드웨어 시계를 현지 시간으로 되돌립니다. (Windows의 기본값은현지 시각)
이 작업은 간단한 레지스트리 복구로 수행할 수 있습니다. 레지스트리를 열고 regedit
레지스트리에 16진수 값을 추가합니다.
DWORD
1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
관리자 명령 프롬프트에서 이 작업을 수행할 수 있습니다.
C:\>reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
또는 데스크탑에서 다음 내용으로 *.reg 파일을 생성하고 두 번 클릭하여 레지스트리로 가져옵니다.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001
DST 변경으로 인해 Windows에서 시계 업데이트가 필요한 경우 그대로 두십시오. 예상대로 UTC 시계를 유지하고 표시된 시간만 수정합니다.
이 값을 설정한 후에는 하드웨어 시계와 시스템 시계 시간을 업데이트해야 할 수도 있습니다.
시간 오프셋 문제가 있는 경우 tzdata를 다시 설치하고 시간대를 다시 설정해 보세요.
예
timedatectl set-timezone America/Los_Angeles