最初にAcer Aspire 4930にLinux Mintをインストールし、次にWindows 7でデュアルブートしました。
Linux Mintでは常に正しい時刻が表示されますが、Windowsを起動すると、時刻が数時間戻ってしまいます。時刻をリセットした後でも、再起動すると再び間違った時刻が表示されます。
質問:
なぜこうなった?
それについて私は何ができますか?
Windowsでは、システムRTC時計は伝統的に現地時間で保持されます。UnixおよびLinuxでは、伝統的にUTCで保持され、/etc/localtime
は、現在のタイムゾーンを示すために使用され、表示される時刻が正確になります。
RTCが1つしかないため、これら2つの世界観はデュアルブート構成で衝突します。通常、LinuxにRTCは現地時間であると想定します(Windowsは認識できないため)。これはLinuxによって異なりますが、MintはUbuntuのように設定できるため、 UTC=no
in /etc/default/rcS
。その後、WindowsおよびLinuxでクロックを現地時間に設定すると、その後はそのままになります。
編集者注:
そのファイルはLinux Mint 19以降(より正確にはUbuntu 18.04ベース以降)には存在しません。
/etc/default/rcS
Mint 18.2 KDEは他の修正(検索で見つかった追加の修正を含む)の影響を受けないようです。 aecolley's および error404's の回答で言及されているファイルは、少なくとも現在のKDEバージョンでは、存在しないか、設定が参照されている場所ではなくなっているようです。 Julie Pelletierの回答 のコマンドは18.2 Cinnamonでは機能しましたが、18.2 KDEでは機能しませんでした。
提案されたソリューションを6ダース試した後、18.2 KDE用に以下を修正しました。正しい時刻が表示された状態で、次の端末コマンドを実行します。
timedatectl set-local-rtc 1 --adjust-system-clock
ソース: インストール後のLinux Mintのヒントとコツ[Mint 18-Cinnamon Edition]
これはシナモンでも代替ソリューションとして機能するはずです。他のDEも同様です。
編集者のメモ:
Sudo
は必要ありません。ユーザーとしてそのコマンドを実行してください。
再起動後も持続しますが、永続的なものでなければなりません。
Ubuntu 18.04ベースのLinux Mint 19.1 Cinnamonでテスト済み。
それを行う最も一般的な方法は次のとおりです。
hwclock --systohc --localtime
これは再起動後も持続し、ほとんどのシステムで機能します。
[〜#〜]警告[〜#〜]
この方法は、7より前のバージョンのWindowsではバグがありますが、Linux側ではなくWindows側の問題を解決します:Linuxを設定する必要はありませんlocaltimeを使用します。
最も栄光があり尊敬されている Arch Linux Wiki からの引用:
ユーザーがローカルタイムでRTC=を設定することが多い理由の1つは、Windows(ローカルタイムを使用)でデュアルブートすることです。
ただし、Windowsは単純なレジストリ修正でRTC UTCである]を処理できます。ローカルタイムを使用するためにLinuxではなくUTCを使用するようにWindowsを構成することをお勧めします。
regedit
を使用して、DWORD
値と16進値1
をレジストリに追加します。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
これは、次のコマンドを実行している管理者コマンドプロンプトから実行できます。
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
上記の効果がないようで、64ビット版のWindowsが使用されている場合、
QWORD
値の代わりにDWORD
値を使用すると問題が解決する場合があります。
WindowsがDSTの変更のために時計を更新するように求めたら、それを許可します。時計はUTCのままになり、表示された時刻のみが修正されます。
この値を設定した後、ハードウェアクロックとシステムクロック時間を更新する必要がある場合があります。時間のオフセットに問題がある場合は、tzdataを再インストールしてから、タイムゾーンを再度設定してください。# timedatectl set-timezone America/Los_Angeles
修正(ルートとして)/etc/timeadj
変数はUTC
からLOCAL
まで。
これにより、Windows側でregeditをいじる必要なく問題が分類されました。
現地時間に一致するこれら2つのコマンドのいずれかを実行します
timedatectl set-local-rtc 1 --adjust-system-clock
「または」
timedatectl set-local-rtc 0 --adjust-system-clock