Ubuntu chạy sai giờ sau khi upgrade

Sau khi upgrade Ubuntu cho server, mình đã không để ý là đồng hồ trên nó bị chạy sai, cho mãi tới hôm nay vào kiểm tra mới thấy.

Lí do là các bản Ubuntu cũ, khoảng 15.04 trở về trước, sử dụng ntpdate/ntpd để cập nhật giờ với Internet, nhưng Ubuntu mới, từ 15.10, khi bắt đầu ứng dụng systemd vào quản lý quá trình khởi động thì làm cho ntpd không còn chạy chính xác nũa. Với hệ thống mới này thì nên dùng systemd-timesyncd để cập nhật đồng hồ với Internet. Lệnh do-release-upgrade dùng để nâng cấp Ubuntu không tự động chuyển đổi từ ntpd sang systemd-timesyncd cho ta, nên ta phải tự thay đổi cấu hình lấy.

Sau đây là cách làm:

B1. Sửa đổi /etc/systemd/timesyncd.conf. Ban đầu nó chỉ có:

[Time]
#NTP=
#FallbackNTP=ntp.ubuntu.com

Ta sẽ uncomment và thêm địa chỉ máy chủ NTP vào:

[Time]
NTP=0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org
FallbackNTP=ntp.ubuntu.com

Các địa chỉ máy chủ NTP này lấy từ /etc/ntp.conf.

B2. Kích hoạt systemd-timesyncd:

sudo timedatectl set-ntp true

B3. Gỡ bỏ ntpdate/ntpd:

sudo apt remove ntpdate ntp

Cuối cùng khởi động lại server.