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

Tác giả sysadmin, T.Mười 07, 2023, 02:57:15 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

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


Máy tính của bạn lưu trữ thời gian trong đồng hồ phần cứng trên bo mạch chủ của nó.

  • Đồng hồ phần cứng của máy tính lưu trữ thời gian, ngay cả khi máy tính tắt. Windows giả định giờ địa phương, trong khi Linux giả định thời gian UTC, gây ra sự khác biệt về thời gian trong các tình huống khởi động kép.
  • Để làm cho Linux sử dụng giờ địa phương, hãy chạy "timedatectl set-local-rtc 1 -- adjustment-system-clock" trong Terminal.
  • Để làm cho Windows sử dụng UTC, hãy tắt "Đặt thời gian tự động" trong Ứng dụng cài đặt hoặc bạn có thể sửa đổi sổ đăng ký.


Máy tính của bạn lưu trữ thời gian trong đồng hồ phần cứng trên bo mạch chủ của nó. Đồng hồ theo dõi thời gian, ngay cả khi máy tính tắt. Theo mặc định, Windows giả định thời gian được lưu trữ theo giờ địa phương, trong khi Linux giả định thời gian được lưu trữ theo giờ UTC và áp dụng giá trị chênh lệch. Điều này dẫn đến một trong các hệ điều hành của bạn hiển thị sai thời gian trong tình huống khởi động kép.

Để khắc phục điều này, bạn có hai tùy chọn: Đặt Linux sử dụng giờ địa phương hoặc bắt Windows sử dụng giờ UTC. Đừng làm theo cả hai bước hướng dẫn nếu không họ vẫn không nói cùng một ngôn ngữ! Chúng tôi khuyên bạn nên để Linux sử dụng giờ địa phương nếu có thể.

1. Làm cho Linux sử dụng giờ địa phương để khắc phục sự khác biệt về thời gian

Làm cho Linux sử dụng giờ địa phương giống như cách Windows làm có lẽ là lựa chọn tốt nhất. Windows có cài đặt đăng ký buộc nó phải lưu trữ thời gian dưới dạng UTC, nhưng theo báo cáo, cài đặt này không được hỗ trợ tốt và có thể gây ra sự cố với một số ứng dụng của bên thứ ba luôn cho rằng đồng hồ phần cứng theo giờ địa phương. Nó cũng không tương thích với dịch vụ đồng bộ hóa thời gian Internet của Windows.

Các bước để làm cho hệ thống Linux của bạn sử dụng giờ địa phương có thể khác nhau tùy theo bản phân phối Linux đến bản phân phối Linux. Tuy nhiên, trên bất kỳ bản phân phối Linux nào có systemd, bạn có thể sử dụng timedatectl lệnh để thực hiện thay đổi này. Điều này sẽ hoạt động trên các phiên bản hiện đại của Ubuntu, Fedora, Red Hat, Debian, Mint và các bản phân phối Linux khác sử dụng systemd.

Để thực hiện thay đổi này, trước tiên hãy mở cửa sổ Terminal trên hệ thống Linux của bạn. Chạy lệnh sau để đặt đồng hồ thời gian thực trên bo mạch chủ sang giờ địa phương. Linux sẽ lưu trữ thời gian theo giờ địa phương, giống như Windows.

Mã nguồn [Chọn]
timedatectl set-local-rtc 1 --adjust-system-clock

Bạn sẽ không nhận được bất kỳ phản hồi nào sau khi thực hiện lệnh. Để kiểm tra cài đặt hiện tại của bạn, hãy chạy:

Mã nguồn [Chọn]
timedatectl

Nếu bạn thấy "RTC ở TZ địa phương: có", Linux được đặt để sử dụng múi giờ địa phương thay vì UTC. Lệnh cảnh báo bạn rằng chế độ này không được hỗ trợ đầy đủ và có thể gây ra một số vấn đề khi thay đổi giữa các múi giờ và với thời gian tiết kiệm ánh sáng ban ngày. Tuy nhiên, chế độ này có lẽ được hỗ trợ tốt hơn tùy chọn UTC trong Windows. Nếu bạn khởi động kép với Windows, Windows sẽ xử lý thời gian tiết kiệm ánh sáng ban ngày cho bạn.

Nếu bạn muốn hoàn tác thay đổi này, hãy chạy lệnh sau:

Mã nguồn [Chọn]
timedatectl set-local-rtc 0 --adjust-system-clock

2. Làm cho Windows sử dụng thời gian UTC để sửa lỗi thời gian

Bắt Windows sử dụng thời gian UTC như Linux có lẽ không phải là phương án tốt nhất. Bạn có thể chỉnh sửa sổ đăng ký để làm cho Windows sử dụng thời gian UTC, nhưng điều này có thể gây ra nhiều vấn đề hơn là chỉ bắt Linux sử dụng giờ địa phương.

Nếu muốn thực hiện việc này, trước tiên bạn phải tắt tính năng cập nhật thời gian Internet trên Windows. Điều này đảm bảo Windows sẽ không đặt đồng hồ sai khi cố gắng đồng bộ hóa thời gian hiện tại từ Internet. Trên Windows 10, hãy đi tới Cài đặt > Thời gian & ngôn ngữ và tắt "Đặt thời gian tự động". Trên Windows 7, nhấp chuột phải vào đồng hồ hệ thống trên thanh tác vụ và chọn "Điều chỉnh ngày/giờ". Nhấp vào tab "Thời gian Internet", nhấp vào nút "Thay đổi cài đặt", bỏ chọn tùy chọn "Đồng bộ hóa với máy chủ thời gian Internet" và nhấp vào "OK".


3. Làm cho Windows sử dụng thời gian UTC bằng cách chỉnh sửa sổ đăng ký

Bây giờ bạn sẽ cần thêm giá trị thích hợp vào sổ đăng ký Windows. Đây là cảnh báo tiêu chuẩn của chúng tôi: Trình chỉnh sửa sổ đăng ký là một công cụ mạnh mẽ và việc sử dụng sai mục đích có thể khiến hệ thống của bạn không ổn định hoặc thậm chí không thể hoạt động. Đây là một cách hack khá dễ dàng và bạn sẽ không gặp bất kỳ vấn đề gì miễn là bạn làm theo hướng dẫn. Điều đó có nghĩa là, nếu bạn chưa từng làm việc với nó trước đây, hãy cân nhắc đọc về cách sử dụng Trình chỉnh sửa sổ đăng ký trước khi bắt đầu. Và chắc chắn sao lưu Sổ đăng ký (và máy tính của bạn!) trước khi thực hiện thay đổi.

Trước tiên, hãy mở Trình chỉnh sửa sổ đăng ký bằng cách nhấp vào Bắt đầu, nhập "regedit" và nhấn Enter. Đồng ý với lời nhắc bảo mật xuất hiện.


Điều hướng đến khóa sau trong khung bên trái của trình chỉnh sửa sổ đăng ký:

Mã nguồn [Chọn]
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
Trên Windows 10 và Windows 11, bạn có thể sao chép và dán dòng trên vào hộp địa chỉ. Tuy nhiên, cách hack này cũng sẽ hoạt động trên các phiên bản Windows cũ hơn.


Nhấp chuột phải vào phím "TimeZoneInformation" và chọn Giá trị mới > DWORD (32-bit).


Đặt tên cho giá trị mới của bạn RealTimeIsUniversal.


Bấm đúp vào RealTimeIsUniversalgiá trị bạn vừa tạo, đặt dữ liệu giá trị thành 1, và bấm "OK".


Bây giờ bạn đã hoàn tất và bạn có thể đóng Trình chỉnh sửa sổ đăng ký. Windows sẽ lưu trữ thời gian ở dạng UTC, giống như Linux.

Nếu bạn muốn hoàn tác thay đổi này, hãy quay lại vị trí này trong sổ đăng ký, bấm chuột phải vào giá RealTimeIsUniversaltrị bạn đã thêm và xóa nó khỏi sổ đăng ký của bạn.

4. Tải xuống Bản hack đăng ký bằng một cú nhấp chuột của chúng tôi để thay đổi sang UTC


Nếu bạn không muốn tự mình chỉnh sửa sổ đăng ký, bạn có thể sử dụng bản hack sổ đăng ký có thể tải xuống của chúng tôi. Chúng tôi đã tạo một bản hack khiến Windows sử dụng thời gian UTC và một bản hack khôi phục nó về giờ địa phương. Cả hai đều được bao gồm trong tệp ZIP sau. Chỉ cần tải xuống tệp, nhấp đúp vào bản hack bạn muốn sử dụng và đồng ý thêm thông tin vào sổ đăng ký của bạn.

Làm cho Windows sử dụng thời gian UTC   Đăng nhập để xem liên kết

Các cách hack ở trên thực hiện tương tự như chúng tôi đã mô tả ở trên. Bản hack Make Windows Use UTC Time tạo ra mục nhập "RealTimeIsUniversal" có giá trị là "1", trong khi bản hack Make Windows Use Local Time sẽ xóa mục nhập "RealTimeIsUniversal".

Nếu bạn muốn xem tệp này hoặc bất kỳ tệp.reg nào khác làm gì, hãy nhấp chuột phải vào tệp đó và chọn "Chỉnh sửa" để xem tệp trong Notepad. Bạn có thể dễ dàng thực hiện các bản hack sổ đăng ký của riêng mình, chỉ bao gồm danh sách các mục đăng ký để thêm, chỉnh sửa và xóa trong danh sách được định dạng chính xác.

5. Còn việc khởi động kép Windows trên máy Mac thì sao?

Mặc dù macOS của Apple sử dụng thời gian UTC giống như Linux nhưng bạn không cần phải làm gì đặc biệt khi chạy Windows trong Boot Camp trên máy Mac. Trình điều khiển Boot Camp của Apple xử lý mọi thứ. (Tuy nhiên, bộ khởi động kép Hackintosh lại là một câu chuyện khác và bạn sẽ phải thử sử dụng tinh chỉnh sổ đăng ký Windows ở trên.)

6. Tại sao Windows sử dụng Giờ địa phương thay vì UTC?

Nói tóm lại, nó nhằm duy trì khả năng tương thích ngược với hệ thống Windows 3.1 và để tránh mọi người bối rối khi đặt thời gian trong BIOS của máy tính. Tất nhiên, các nhà sản xuất PC đã chọn giờ địa phương để tương thích với Windows và Windows đã chọn giờ địa phương để tương thích với quyết định mà các nhà sản xuất PC đã chọn, do đó chu trình trở nên tự củng cố.

Hiện tại không có tiêu chuẩn nào để ghi nhãn liệu thời gian được lưu trữ dưới dạng UTC hay giờ địa phương trong phần sụn BIOS hoặc UEFI, đây có lẽ là giải pháp hợp lý nhất. Nhưng nó sẽ đòi hỏi một số công việc và hầu hết mọi người thậm chí sẽ không bao giờ nhận thấy các hệ điều hành khác nhau sử dụng các định dạng thời gian khác nhau - ngoại trừ trong cấu hình khởi động kép.