Nếu hệ thống của bạn dual boot cả Windows và Linux, bạn có thể nhận thấy không thể đồng bộ hóa đồng hồ hệ thống. Dù bạn thay đổi đồng hồ trong một hệ điều hành, nó không khắc phục được vấn đề với hệ điều hành kia. Điều này là do sự bất đồng về phương pháp tính thời gian giữa Windows và các hệ điều hành dựa trên Unix. May mắn thay, có cách khắc phục tương đối dễ dàng.
Tại sao lại xảy ra chuyện này?
Máy tính của bạn lưu thời gian hiện tại trong một đồng hồ trên bo mạch chủ. Điều này cho phép máy tính theo dõi thời gian ngay khi tắt máy. Để tính đến múi giờ, các hệ điều hành khác nhau sử dụng các phương pháp khác nhau. Windows giả định thời gian địa phương được lưu trong bo mạch chủ, vì vậy nó không áp dụng bất kỳ bù trừ múi giờ nào. Linux, mặt khác, sẽ hiểu thời gian trên bo mạch chủ là UTC (hay giờ Greenwich) và áp dụng bù trừ múi giờ để hiển thị thời gian địa phương.
Cả hai hệ thống đều hoạt động hoàn hảo độc lập. Vấn đề xảy ra khi bạn dual boot một hệ thống, chạy Windows và Linux trên cùng một bo mạch chủ. Khi các hệ điều hành bị buộc phải chia sẻ một kho lưu trữ thời gian, đồng hồ sẽ không đồng bộ.
Có hai cách khác nhau để khắc phục vấn đề này: chúng ta có thể thay đổi cách Linux hiểu thời gian lưu trữ hoặc làm tương tự với Windows.
Tùy chọn 1: Làm cho Linux sử dụng thời gian địa phương
Cách đáng tin cậy nhất để làm cho Linux và Windows đồng ý về thời gian là thay đổi phương pháp tính thời gian của Linux. Mặc dù điều này không được hỗ trợ rõ ràng, nhưng nó hơi đáng tin cậy hơn làm tương tự trong Windows. Nó hoạt động trên mọi phiên bản Linux sử dụng systemd, bao gồm Ubuntu, Fedora, Red Hat, Debian và Mint. Thay đổi thời gian Windows thường cũng hoạt động tốt, nhưng đôi khi dẫn đến sự không ổn định trong phần mềm bên thứ ba mong đợi thời gian lưu trữ là thời gian địa phương.
- Mở Terminal và chạy lệnh sau:
timedatectl set-local-rtc 1 --adjust-system-clock

Lệnh này sẽ nói với hệ thống hiểu thời gian lưu trữ trên bo mạch chủ là thời gian địa phương. Linux sẽ không còn áp dụng điều chỉnh múi giờ cho thời gian lưu trữ trên bo mạch chủ. Kết quả là đồng hồ sẽ đồng bộ.
Nếu cần đảo ngược lệnh, hãy đổi 1 thành 0:
timedatectl set-local-rtc 0 --adjust-system-clock
Tùy chọn 2: Làm cho Windows sử dụng UTC
Bạn cũng có thể thay đổi cách Windows xem thời gian hệ thống. Điều chỉnh này sẽ khiến Windows hiểu thời gian lưu trữ trên bo mạch chủ là UTC, mà Linux sau đó có thể hiểu là múi giờ chính xác. Mặc dù thường hoạt động tốt, một số ứng dụng dựa vào thời gian bo mạch chủ là thời gian địa phương. Kết quả là, các lỗi khó theo dõi đôi khi xuất hiện. Điều đó làm cho tùy chọn này hơi kém mong muốn hơn tùy chọn đầu tiên.
- Tắt "Đặt thời gian tự động" (Set time automatically) dưới "Thời gian và ngôn ngữ" (Time & Language) trong ứng dụng Settings. Điều này sẽ ngăn Windows khôi phục lại những thay đổi chúng ta sắp làm.

- Mở Registry Editor bằng cách gõ
regedittrong menu Start.

- Tìm khóa registry sau trong bảng bên trái của registry editor. Để đến nhanh, dán vị trí vào thanh địa chỉ của registry editor:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

- Chuột phải vào khóa "TimeZoneInformation" ở bảng bên trái và chọn "Mới → Giá trị DWORD (32-bit)" (New → DWORD (32-bit) Value) từ menu ngữ cảnh.

- Đặt tên giá trị mới là "RealTimeIsUniversal".

- Nhấp đúp vào giá trị vừa tạo, đặt giá trị là "1" và nhấp "OK".

Kết luận
Cách an toàn nhất để đồng bộ đồng hồ hệ thống trên hệ thống dual-boot là điều chỉnh cách Linux hiểu thời gian. Nếu cách đó không hiệu quả (hoặc bạn dùng macOS thay vì Linux), bạn cũng có thể chỉnh sửa registry Windows để thay đổi cách Windows hiểu thời gian bo mạch chủ.