当サイトは広告およびアフィリエイトプログラムによる収益を得ています。

UbuntuでWindowsとのデュアルブート時に時計がずれないようにする方法

Ubuntu→デスクトップ→ステータスバー Linux

1つのパソコンで[Windows]と[Ubuntu]の両方を使っている場合(デュアルブートなど)、表示される時刻に「ズレ」が生じることがあります。ズレが9時間の場合、これは両方のOSで時刻の取り扱いに違いがあることが原因です。

なぜ9時間ずれるのか

時刻に9時間のズレが生じるのは時差によるもので、日本の時差が協定世界時(UTC)から+9時間だからです。

パソコンは本体に時刻の情報(ハードウェアクロック)を持っており、その時刻をWindowsは「ローカル時刻(日本標準時/JST)」とみなしますが、UbuntuをはじめとしたLinuxでは「協定世界時/UTC」とみなします。時刻はインターネット上から自動的に同期してしまうため、[Windows]と[Ubuntu]の両方を使っていると同期のタイミングによって「時計がずれる」と言うことが起こりえます。

これを解決するには、本体の時刻を「ローカル時刻とUTCのどちらとみなすか」を揃えれば良いので、今回はUbuntuを「ローカル時刻である」とみなすよう変更してみました。

ローカル時刻とみなすやり方

  1. 端末より以下のコマンドを実行し、現在の状態を確認します。
    実行結果に「ハードウェアの時刻は UTC です」や「ハードウェアの時刻が UTC に設定されているものと仮定します。」などが含まれていればハードウェアクロック=UTCとみなしています。
    sudo hwclock --verbose
    
  2. 端末より以下のコマンドを実行し、ハードウェアクロック=ローカル時刻にします。
    sudo hwclock --verbose --systohc --localtime
    

    ちなみに、元に戻す(ハードウェアクロック=UTC)には以下のコマンドを実行します。

    sudo hwclock --verbose --systohc --utc
    
  3. 必要であれば以下のコマンドを実行して内容を確認します。
    実行結果に「ハードウェアの時刻は ローカル時刻 です」や「ハードウェアの時刻が ローカル時刻 に設定されているものと仮定します。」などが含まれていればハードウェアクロック=ローカル時刻とみなしています。
    sudo hwclock --verbose
    

ハードウェアクロックを「ローカル時刻」とみなすやり方は以上です。

ちなみにWindowsの方を「UTCとみなす」こともできますが、レジストリを編集する必要があるためUbuntuでコマンドを実行したほうが簡単でしょう。

プロフィール

この記事を書いた人
anykey

anykeyの管理人。

IT系ブラック企業にてSE・プログラマを5年経験したのち一般企業の社内SEを2年ほど経験しました。

図書館で読んだ本をきっかけに、こんなサイトを作るまでになりました。