

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
hwclock・とは?基本の考え方
このセクションでは、hwclock の基本的な役割と、PC の現在時刻との関係をやさしく解説します。hwclock はハードウェア時計(RTC: Real-Time Clock)を操作するコマンドで、電源を切っても時刻を保つ仕組みです。BIOS/UEFI と連携して動作しており、OS の時刻が合っているかを補助します。
hwclockとは何か
hwclock は「ハードウェア時計」を操作する Linux コマンドです。通常、OS が動作している間はソフトウェア的な「システム時刻」が使われていますが、OS が再起動するときにハードウェア時計から時刻を引き継ぐことで、日付が戻らないようにします。
ハードウェア時計とソフトウェア時計の違い
「ハードウェア時計(RTC)」は PC の内部に搭載された時計で、電源を切っても動作します。一方、「ソフトウェア時計(システム時刻)」は Linux が動作している間だけ正確に動き、ふだんはこのソフトウェア時計を基準に時間を進めています。起動時には hwclock --hctosys などの操作でハードウェア時計の時間をシステム時刻へ反映します。
UTCとlocaltimeの違いと設定
UTC とは協定世界時、localtime とは各地域の現地時刻のことです。RTC を UTC のまま運用するか、ローカル時間として扱うかは重要な設定です。デュアルブート(Windows と Linux)環境ではどちらかに合わせる必要があります。多くの Linux ディストリビューションは UTC を RTC に設定するのが一般的ですが、Windows を localtime で運用している場合は調整が必要です。
よく使うコマンドと使い方
以下のコマンドは基本中の基本です。必要に応じて sudo を付けて実行します。
| コマンド | 意味 | 例 |
|---|---|---|
| hwclock --show | ハードウェア時計の現在時刻を表示します | sudo hwclock --show |
| hwclock --hctosys | ハードウェア時計の時刻をシステム時刻へ設定します | sudo hwclock --hctosys |
| hwclock --systohc | システム時刻をハードウェア時計へ設定します | sudo hwclock --systohc |
| hwclock --set --date 'YYYY-MM-DD HH:MM:SS' | ハードウェア時計を任意の日時に設定します | sudo hwclock --set --date '2024-07-15 12:34:56' |
| hwclock --adjust | ドリフトを自動補正します(/etc/adjtime が関与します) | sudo hwclock --adjust |
補足として、時刻の自動同期には modern な方法として timedatectl status を使う方法があります。これは systemd の機能で、NTP による時刻同期の状態を確認できます。実務では ntpd や chronyd といったデーモンが動作しているか、/etc/adjtime の内容や leapseconds などを確認するのが大切です。
実務の流れと注意点
実務では次の順序で確認・設定を進めると安心です。
1) 現在の時刻と RTC の時刻を確認する → hwclock --show、timedatectl status を使います。
2) ディストリビューションの時刻同期を整える → NTP サービスを有効化します。systemd-timesyncd や ntpd、chronyd などを選択します。
3) RTC の設定を整える → /etc/adjtime の内容を確認し、UTC か localtime かを統一します。必要であれば hwclock --hctosys または hwclock --systohc を使って同期します。
4) 再起動後の時間を確認する → 再起動後に正しい時刻が表示されるかを確認します。Windows と Linux のデュアルブート環境では、相互の時刻設定に注意が必要です。
まとめ
hwclock はハードウェア時計を操作する重要なツールです。ソフトウェア時計と hardware clock の関係を理解し、UTC/localtime の設定、ドリフト補正、NTP の同期を組み合わせて正確な時刻を保つことが、安定したシステム運用の基本になります。初心者のうちは、まず hwclock --show で現在時刻を確認し、必要に応じて --hctosys や --systohc の使い方を練習しましょう。
このように、hwclock の理解を深めると、PC の起動時の時間ずれや自動同期の設定がスムーズになります。
hwclockの同意語
- ハードウェアクロック
- マザーボード上に搭載され、電池で駆動される実時間を刻む時計。OSの hwclock コマンドが読み書きする対象で、システム時刻の長期保持源の一つです。
- ハードクロック
- 上記と同義の略称。日常的に使われる表現。
- RTC(リアルタイムクロック)
- Real Time Clock の略。電源を落としたときでも時刻を保持するハードウェア時計。多くのPCでこの機能を指します。
- リアルタイムクロック
- RTCの正式名称。マザーボード上の時計で、電池で持続される時刻を提供します。
- CMOS時計
- CMOSメモリ領域に格納された時計。実時間時計と連携して動作し、起動時に現在時刻を提供します。
- CMOSリアルタイムクロック
- CMOS領域に格納された RTC の別名。起動時の時刻管理源として使われます。
- BIOS時計
- BIOS/UEFI が参照する時計。実質的にはハードウェア時計として機能します。
- マザーボード時計
- マザーボード上に搭載される実時間時計の別名。
hwclockの対義語・反対語
- ソフトウェアクロック
- OSがソフトウェア側で管理する時刻。ハードウェア時計(hwclock)とは別に、カーネルの現在時刻として扱われる。
- システム時刻
- OSのカーネルが提供・維持する現在時刻。通常はソフトウェア時計として扱われ、ハードウェア時計の値と同期していることが多い。
- ソフトウェア時間
- プログラムやOSが参照・更新する時刻情報。実体はRAM上の時刻データで、ハードウェア時計とは独立して動作することがある。
- 仮想時計
- 仮想マシンや特定のソフトウェア環境で使われる、仮想的な時刻。物理的なハードウェア時計とは別の基準で進むことがある。
- システムクロック
- システム全体で用いられる基準時刻。多くはソフトウェア時計(システム時刻)として扱われ、ハードウェア時計と同期して使用される。
hwclockの共起語
- RTC
- Real Time Clock。マザーボード上のハードウェア時計で、電源を切っても時刻を保持します。
- CMOS
- CMOSはBIOS設定やRTCの設定を保存する小容量メモリ領域です。RTCと連携して動作します。
- BIOS
- BIOSはPCの基本的なファームウェアで、RTCの読み書きを行う窓口になります。
- dev_rtc
- /dev/rtcはLinuxでハードウェア時計にアクセスするデバイスファイルです。
- systohc
- system timeをハードウェア時計へ反映させる操作。hwclock --systohcと同義です。
- hctosys
- ハードウェア時計の時刻をシステム時刻へ反映させる操作。hwclock --hctosysと同義です。
- adjtime
- 時計の徐々かな補正を管理する仕組み。/etc/adjtimeに関連する情報が保存されます。
- driftfile
- ドリフト補正値を記録するファイル。hwclockの補正計算に使われます。
- UTC
- 協定世界時。RTCがUTCで保存される設定が一般的です。
- localtime
- RTCがローカルタイムで保存される設定。地域設定次第で扱いが異なります。
- timesyncd
- systemd-timesyncdはネットワーク経由で時刻を同期するサービスです。
- chrony
- Chronyは高精度な時刻同期デーモン。NTPと連携して正確な時刻を保ちます。
- ntpd
- NTPデーモン。ネットワーク経由で時刻を同期します。
- ntp
- NTPはネットワーク時刻同期のプロトコルのことです。
- timedatectl
- systemdの時刻設定コマンド。NTP有効化、タイムゾーン、RTCとシステム時刻の関係を管理します。
- date
- dateコマンド。現在時刻の表示や設定を行います。
- proc_rtc
- procfsのRTC情報。/proc/driver/rtc などから現在時刻や設定を確認できます。
- CLOCK_REALTIME
- カーネルの実時間(システム時刻)を表す内部表現。ハードウェア時計とは別の概念です。
- kernel_timekeeping
- カーネル内部の時刻管理機構。hwclockとの同期はここを通じて行われます。
- tzdata
- タイムゾーンデータベースの総称。地域ごとの標準時を決めます。
- timezone
- タイムゾーン設定。TZ環境変数や/etc/timezoneで指定します。
- drift
- 時計の進みのずれ(ドリフト)。補正計算やadjtimeで使われます。
- CMOS_battery
- RTCを保持するためのCMOS電池。電力が供給されていないと時刻が失われることがあります。
hwclockの関連用語
- hwclock
- Linuxのコマンドで、ハードウェアクロックとシステム時刻の同期を行います。--hctosysでハードウェア時計→システム時刻へ、--systohcでシステム時刻→ハードウェア時計へ設定します。UTC/Localtimeの基準も指定可能です。
- RTC(Real-Time Clock)
- Real-Time Clockの略。マザーボード上に搭載された時計で、電源を切っても動作し、長時間時刻を保持します。
- CMOSバッテリ
- RTCを長時間動作させるための小型電池。バッテリが弱いと時刻がずれる原因になります。
- /dev/rtc
- Linux上でRTCを操作するデバイスファイル。hwclockはこのデバイスを介してハードウェア時計へアクセスします。
- BIOS/UEFI
- 起動時にハードウェア時計の設定を読み書きするソフトウェア。ハードウェア時計の基準を決めることが多いです。
- UTC/Localtime設定
- ハードウェア時計の時刻基準をUTC(協定世界時)またはLocaltime(ローカル時刻)として扱う設定。hwclockの --utc/--localtime オプションで指定します。
- /etc/adjtime
- ハードウェア時計とシステム時刻のずれ補正情報を保存するファイル。NTP同期の情報もここに反映されることがあります。
- NTP(Network Time Protocol)
- ネットワーク経由で時刻を取得し、システム時刻を正確に保つ仕組み。サーバと同期します。
- Chrony
- NTP実装の一つ。高精度で安定した時刻同期を提供します。多くの現代的な環境で推奨されます。
- ntpd / NTPD
- NTPのデーモン。ネットワーク経由で時刻を同期します。Chronyに置き換えられることが多いです。
- CLOCK_REALTIME
- Linuxカーネルが提供する実時間クロック。システム時刻として利用され、gettimeofday/clock_gettimeで参照されます。
- CLOCK_MONOTONIC
- カーネルのモノトニッククロック。起動からの経過時間を返し、時刻変更の影響を受けません。
- gettimeofday / clock_gettime
- システム時刻を取得するAPI。gettimeofdayは古く、clock_gettimeが推奨されることが多いです。
- adjtimex / adjtime
- 時刻を滑らかに補正するためのシステムコール。NTPなどの同期で用いられ、カーネルの時刻調整を行います。
- Systohc / Hctosys
- hwclockコマンドの操作モード。Systohcはシステム時刻をハードウェア時計へ、Hctosysはハードウェア時計からシステム時刻へ設定します。
- うるう秒 / Leap second
- 地球の回転の微細な乱れを補正する追加の秒。時刻同期の際に影響することがあります。



















