ntpdate コマンドが見つかりません:解決策
<code>ntpdate</code> コマンドは非推奨となり、最新の Linux 配布版から削除されました。Debian や Ubuntu Linux システムで「ntpdate コマンドが見つかりません」というエラーが発生した場合、このガイドでは、現代的な代替として<code>systemd-timesyncd</code> や <code>chrony</code> を使ってシステム時間を同期する方法を示します。
$ ntpdate
bash: ntpdate: command not foundNTP同期を有効にしようとしたときに、次のエラーが表示されることもあります:
$ timedatectl set-ntp true
Failed to set ntp: NTP not supportedこのチュートリアルで学ぶこと:
- なぜ ntpdate が非推奨となり、削除されたのか
- systemd-timesyncd を使った自動時刻同期の方法
- chrony を ntpdate の代替として使う方法
- 一回限りの手動時間同期の実行方法
ソフトウェア要件
記事の要約: ntpdate コマンドは、Debian 13 以降および Ubuntu 24.04 以降では利用できません。代わりに systemd-timesyncd または chrony を使用してください。
| ステップ | コマンド/アクション |
|---|---|
| 1. timesyncd をインストールする(Debian 13) | |
| 2. NTP同期を有効にする | |
| 3. 同期状況を確認する | |
なぜ ntpdate は削除されたのですか?
知っていましたか?
ntpdate コマンドは、NTPプロジェクトによって何年も前に非推奨となり、現在ではDebian 13(Trixie)から完全に削除され、Ubuntu 24.04では移行用パッケージとしてのみ利用可能です。削除の主な理由には、以下が含まれます:一度きりの設計(ntpdateは時間を一度だけ設定して終了し、継続的に正確な時間を維持しない)、ドリフト補正がない(同期間のクロックドリフトを補正できない)、デーモンとの競合(ntpdateはntpdのような実行中のNTPデーモンと競合する)、より良い代替手段が存在する(systemd-timesyncdやchronyはより優れた機能を提供する)。
インストールされているNTPパッケージを確認する
先に進む前に、systemd-timesyncd または chrony がすでにシステムにインストールされているか確認してください。
$ dpkg -l | grep -E "systemd-timesyncd|chrony"出力にどちらのパッケージも表示されない場合は、いずれかをインストールする必要があります。ほとんどのシステムに適した軽量の解決策として systemd-timesyncd を使用するか、より高度な機能や信頼性の低いネットワーク接続の取り扱いに優れた chrony を使用してください。
systemd-timesyncd の使用
systemd-timesyncd サービスは、自動的な時刻同期を提供します。これはほとんどのシステムに適した軽量の NTP クライアントです。
systemd-timesyncdをインストールする:システムにまだ存在しない場合は、パッケージをインストールしてください。
$ sudo apt install systemd-timesyncdNTP同期を有効にする: 自動時刻同期を有効にします。
$ sudo timedatectl set-ntp true同期状態を確認: 時刻同期サービスが稼働しており、NTPサーバーに接続されているか確認してください。
$ systemctl status systemd-timesyncd「active (running)」および連絡したNTPサーバーを示す「Status」行を探します。
即時同期を強制する:時間をすぐに同期する必要がある場合は、timesyncd サービスを再起動してください。
$ sudo systemctl restart systemd-timesyncd
DEBIAN ユーザー
sudo が設定されていない Debian システムでは、特権コマンドを実行する前に su - を使って root になるか、コマンドに su -c "command" を付けて実行してください。
Chronyの使用
より高度なNTP機能が必要な場合、chronyは優れた代替手段です。これは断続的なネットワーク接続をよりうまく処理でき、NTPサーバーとしても機能します。
chronyをインストールする: パッケージマネージャを使用してchronyパッケージをインストールします。
$ sudo apt install chronyサービスを開始して有効化する: chrony が起動時に自動的に開始されることを確認してください。
$ sudo systemctl enable --now chrony同期ソースを確認: chrony が NTP サーバーに接続されていることを確認してください。
$ chronyc sources -v追跡状況を確認:詳細な同期情報を表示します。
$ chronyc tracking
インストールのヒント
chrony をインストールすると、2つの時刻同期サービス間の競合を防ぐために systemd-timesyncd が自動的に無効になります。
一度限りの手動同期
もし ntpdate が提供していたような一度きりの同期を行う必要がある場合、2つの選択肢があります:
chronydを-qフラグ付きで使用する
この方法はNTPサーバーに問い合わせを行い、一度だけ時刻を設定して終了します。ntpdateの動作と似ています。なお、chronyサービスが実行中の場合は、先に停止する必要があります:
$ sudo systemctl stop chrony
$ sudo chronyd -q 'server pool.ntp.org iburst'systemd-timesyncd の使用
サービスを再起動して即座に同期を強制する:
$ sudo systemctl restart systemd-timesyncd
$ systemctl status systemd-timesyncdトラブルシューティング
ユニット systemd-timesyncd.service が見つかりませんでした
サービスの状態を確認したときにこのエラーが表示される場合、systemd-timesyncd がインストールされていません:
$ systemctl status systemd-timesyncd
Unit systemd-timesyncd.service could not be found.これを解決するにはパッケージをインストールしてください:
$ sudo apt install systemd-timesyncdサーバーのクエリに失敗しました: 名前 org.freedesktop.timesync1 が提供されませんでした
systemd-timesyncd がインストールされていない状態で時刻同期のステータスを確認しようとしたときに、このエラーが表示されます:
$ timedatectl timesync-status
Failed to query server: The name org.freedesktop.timesync1 was not provided by any .service filessystemd-timesyncd をインストールして有効にする:
$ sudo apt install systemd-timesyncd
$ sudo systemctl enable --now systemd-timesyncdNTPの設定に失敗しました: NTPはサポートされていません
このエラーは、NTPクライアントサービスがインストールされていないか、実行されていない場合に発生します:
$ sudo timedatectl set-ntp true
Failed to set ntp: NTP not supportedこれを解決するには、systemd-timesyncd をインストールして有効にしてください:
$ sudo apt install systemd-timesyncd
$ sudo systemctl enable --now systemd-timesyncdその後、NTP同期の有効化を再試行してください。
時間がまだ同期していません
NTPサーバーへのネットワーク接続を確認し、ファイアウォールの設定をチェックしてください。NTPはUDPポート123を使用します:
$ sudo ufw allow 123/udpユニットの有効化に失敗しました: リンクされたユニットファイル chronyd.service での操作を拒否します
このエラーは、chrony の代わりに chronyd を使用して chrony サービスを有効にしようとしたときに発生します:
$ sudo systemctl enable --now chronyd
Failed to enable unit: Refusing to operate on linked unit file chronyd.service代わりにサービス名としてchronyを使用してください:
$ sudo systemctl enable --now chrony別の chronyd がすでに実行されている可能性があります
このエラーは、chrony サービスがすでに実行されている状態で chronyd -q を使用して一度限りの同期を試みると発生します:
$ sudo chronyd -q 'server pool.ntp.org iburst'
Fatal error : Another chronyd may already be running (pid=3630), check /run/chrony/chronyd.pid一時的な同期を実行する前に、まず chrony サービスを停止してください:
$ sudo systemctl stop chrony
$ sudo chronyd -q 'server pool.ntp.org iburst'結論
「ntpdate コマンドが見つかりません」というエラーは、ntpdate が非推奨となり削除されたため、最新の Debian および Ubuntu システムで予想されるものです。推奨される代替手段は、デスクトップシステム向けには systemd-timesyncd、サーバーや断続的なネットワーク接続を持つシステム向けには chrony です。どちらの代替手段も、従来の ntpdate コマンドと比べて優れた時間同期機能を提供します。
NTPおよび時刻同期に関する詳細は、公式のChronyドキュメントを参照してください。
よくある質問
- Debian 13 または Ubuntu 24.04 にまだ ntpdate をインストールできますか? Debian 13(Trixie)では、ntpdate パッケージはリポジトリから完全に削除されており、インストールできません。Ubuntu 24.04 では移行用パッケージが存在しますが、それは単に ntpsec-ntpdate にリダイレクトされるだけです。その代わりに
systemd-timesyncdまたはchronyを使用することが推奨されます。 - systemd-timesyncdとchronyの違いは何ですか?
systemd-timesyncdは、ほとんどのデスクトップシステムに適した軽量のSNTPクライアントです。Chronyは、ネットワークの中断に強く、より正確な時刻同期を提供し、NTPサーバーとしても機能する完全なNTP実装です。高精度が必要なサーバーやシステムにはchronyを使用してください。 - システム時刻が同期されているかどうかを確認するには?
systemctl status systemd-timesyncdを実行し、出力に「active (running)」が表示されているか確認します。「Status」行には接続されたNTPサーバーが表示されます。また、timedatectl statusを実行して「System clock synchronized: yes」を確認することもできます。 - なぜ timedatectl set-ntp true を実行すると「NTP not supported」と表示されるのですか? このエラーは、NTPクライアントサービスがインストールされていないか、実行されていない場合に発生します。
sudo apt install systemd-timesyncdで systemd-timesyncd をインストールし、その後sudo systemctl enable --now systemd-timesyncdで有効にしてから、再度 timedatectl コマンドを実行してください。




