Khắc phục lỗi Windows và Linux hiển thị thời gian khác nhau khi khởi động kép

Khi khởi động kép Windows và Linux, bạn có thể nhận thấy rằng không thể đồng bộ hóa đồng hồ hệ thống giữa hai hệ điều hành này. Mặc dù bạn đã thay đổi đồng hồ ở một hệ điều hành nhưng vẫn không khắc phục được vấn đề trên hệ điều hành còn lại. Điều này là do hai hệ điều hành này sử dụng phương pháp định thời thời gian khác nhau. Bài viết này sẽ hướng dẫn các bạn cách khắc phục lỗi Windows và Linux hiển thị thời gian khác nhau khi khởi động kép.

Tại sao hai hệ điều hành lại hiển thị thời gian khác nhau?

Máy tính lưu trữ thời gian hiện tại trên đồng hồ trong bo mạch chủ. Điều này cho phép máy tính theo dõi thời gian ngay cả khi tắt máy. Để tính các 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 máy tính được lưu trữ trong bo mạch chủ, vì vậy nó không áp dụng bất kỳ loại múi giờ nào cả. Mặt khác, Linux sẽ diễn giải thời gian trên bo mạch chủ như UTC (còn gọi là Giờ trung bình tại Greenwich) và áp dụng một múi giờ để hiển thị thời gian trên máy tính.

Cả hai hệ điều hành này hoạt động hoàn toàn độc lập. Vấn đề xảy ra khi người dùng khởi động kép 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 buộc phải chia sẻ một kho thời gian, các đồng hồ sẽ không đồng bộ.

Cách khắc phục lỗi Windows và Linux hiển thị thời gian khác nhau khi khởi động kép

Cách 1: Điều chỉnh để Linux sử dụng thời gian trên máy tính

Phương pháp an toàn nhất để Linux và Windows hiển thị cùng một thời gian là thay đổi phương pháp định thời gian của Linux. Nó hoạt động trên tất cả các bản phân phối của Linux sử dụng systemd, bao gồm Ubuntu, Fedora, Red Hat, Debian và Mint. Thay đổi thời gian của Windows thường hoạt động tốt, nhưng đôi khi nó có thể dẫn đến sự không ổn định trong phần mềm của bên thứ ba.

Mở cửa sổ Terminal và chạy lệnh sau:

timedatectl set-local-rtc 1 --adjust-system-clock

Chạy lệnh trên cửa sổ terminal

Lệnh này sẽ nói cho hệ thống sử dụng thời gian lưu trữ của bo mạch chủ như giờ trên máy tính. 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ẽ được đồng bộ. Nếu muốn đảo ngược lệnh, chỉ cần thay đổi 1 thành 0:

timedatectl set-local-rtc 0 --adjust-system-clock

Cách 2: Điều chỉnh để Windows sử dụng UTC

Bạn cũng có thể thay đổi cách mà Windows xem hệ thống thời gian. Điều chỉnh này sẽ khiến Windows sử dụng thời gian được lưu trữ trên bo mạch chủ như là UTC. Mặc dù phương pháp này nói chung hoạt động tốt, nhưng một số ứng dụng dựa trên thời gian của bo mạch chủ có thể bị ảnh hưởng, do đó, đôi khi khó khăn để theo dõi lỗi.

Bước 1. Vô hiệu hoá "Set time automatically" trong "Time & Language" trong ứng dụng Settings. Điều này sẽ ngăn không cho Windows xóa những thay đổi mà chúng ta sắp thực hiện.

Vô hiệu hóa Set time automatically

Bước 2. Mở Registry Editor bằng cách gõ regedit vào menu Start.

Mở Registry Editor

Bước 3. Tìm key đăng ký sau trong ngăn bên trái của Registry Editor bằng cách dán dòng sau vào thanh địa chỉ của registry editor:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

Tìm key đăng ký trong ngăn bên trái của Registry Editor

Bước 4. Nhấp chuột phải vào key "TimeZoneInformation" trong khung bên trái và chọn "New -> DWORD (32-bit) Value" từ trình đơn ngữ cảnh.

Chọn DWORD (32-bit) value

Bước 5. Đặt tên cho giá trị mới là "RealTimeIsUniversal". 

Đặt tên cho giá trị mới

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

Đặt giá trị là 1

Cách an toàn nhất để đồng bộ đồng hồ hệ thống trong một hệ thống khởi động kép là điều chỉnh cách Linux sử dụng thời gian. Nếu cách này không hiệu quả (hoặc nếu đang sử dụng macOS thay vì Linux), bạn cũng có thể chỉnh sửa Windows registry để thay đổi cách Windows sử dụng thời gian của bo mạch chủ.

Chúc các bạn thực hiện thành công! 

Xem thêm: 

Thứ Năm, 04/01/2018 15:15
31 👨 1.600