Câu hỏi Thời gian đồng hồ bị tắt khi khởi động kép


Hệ thống khởi động kép Windows XP Pro và Ubuntu 12.04.

Tôi có bộ bios cho thời gian chính xác và Ubuntu được đặt cho giờ Miền Đông Hoa Kỳ. Ubuntu sẽ khởi động và thời gian sẽ tắt sau -4 giờ. Nếu tôi sửa thời gian trong Ubuntu thì khi tôi khởi động trong Windows XP, thời gian sẽ bị tắt sau + 4 giờ.

Đây là một cài đặt mới của 12.04. Tôi không có vấn đề này trước khi cài đặt lại Ubuntu.


274
2017-07-28 17:48


gốc




Các câu trả lời:


https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts

Nhiều hệ thống khởi động Time Conflicts

Hệ điều hành lưu trữ và truy xuất thời gian trong đồng hồ phần cứng   nằm trên bo mạch chủ của bạn để nó có thể theo dõi thời gian ngay cả   khi hệ thống không có điện. Hầu hết các hệ điều hành   (Linux / Unix / Mac) lưu trữ thời gian trên đồng hồ phần cứng UTC bởi   mặc định, mặc dù một số hệ thống (đặc biệt là Microsoft Windows) lưu trữ   thời gian trên đồng hồ phần cứng dưới dạng thời gian 'cục bộ'. Điều này gây ra vấn đề   trong hệ thống khởi động kép nếu cả hai hệ thống đều xem đồng hồ phần cứng   khác nhau.

Ưu điểm của việc có đồng hồ phần cứng là UTC là bạn không   cần phải thay đổi đồng hồ phần cứng khi di chuyển giữa các múi giờ hoặc   khi Giờ Tiết kiệm Ánh sáng ban ngày (DST) bắt đầu hoặc kết thúc khi UTC không có   DST hoặc bù thời gian.

Việc thay đổi Linux để sử dụng giờ địa phương dễ dàng hơn và đáng tin cậy hơn   thay đổi Windows để sử dụng UTC, vì vậy hệ thống Linux / Windows khởi động kép có xu hướng   để sử dụng giờ địa phương.

Kể từ Intrepid (8.10), UTC = yes là mặc định.

Làm cho Windows sử dụng UTC

Chú thích: Phương pháp này không được hỗ trợ ban đầu trên Windows Vista và Server 2008, nhưng đã trở lại với Vista SP2, Windows 7, Server 2008 R2   và Windows 8 / 8.1.

Để làm cho MS Windows tính thời gian từ đồng hồ phần cứng dưới dạng UTC.

Tạo tệp có tên WindowsTimeFixUTC.reg với những điều sau đây   nội dung và sau đó nhấp đúp vào nó để hợp nhất nội dung với   đăng ký:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Chú thích: Dịch vụ Thời gian Windows sẽ vẫn ghi thời gian cục bộ vào RTC bất kể cài đặt đăng ký ở trên khi tắt máy, vì vậy tiện dụng   để tắt dịch vụ Thời gian Windows bằng lệnh này (nếu đồng bộ hóa thời gian là   vẫn được yêu cầu trong khi Windows sử dụng bất kỳ đồng bộ hóa thời gian của bên thứ ba nào   dung dịch):

sc config w32time start= disabled

Đảo ngược thay đổi
 Bạn có thể tạo một tệp với các mục sau   nội dung và sau đó nhấp đúp vào nó để hợp nhất trong các thay đổi ban đầu, như   ở trên:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=-

Nếu dịch vụ Thời gian Windows bị tắt, hãy bật lại dịch vụ này bằng   chỉ huy:

sc config w32time start= demand

Làm cho Linux sử dụng thời gian 'Địa phương'

Để thông báo cho hệ thống Ubuntu của bạn rằng đồng hồ phần cứng được đặt thành 'cục bộ'   thời gian:

Hệ thống 15.04 trước Ubuntu (ví dụ: Ubuntu 14.04 LTS):

  1. chỉnh sửa /etc/default/rcS
  2. thêm hoặc thay đổi phần sau

    # Set UTC=yes if your hardware clock is set to UTC (GMT)
    UTC=no
    

Ubuntu 15.04 hệ thống trở lên (ví dụ: Ubuntu 16.04 LTS):

  1. mở một thiết bị đầu cuối và thực hiện lệnh sau

    timedatectl set-local-rtc 1
    

232
2017-07-28 18:07



Chúa ơi. Tôi không thể tin họ đã đủ ngu ngốc để sử dụng giờ địa phương trên đồng hồ phần cứng. Tại sao bạn sẽ bao giờ làm điều đó? - iono
@ bởi vì không có nhiều trong cách kết nối mạng trong những ngày đầu của MS-DOS, và nó sẽ không có được phổ biến để di chuyển một máy tính cho đến nay mà nó di chuyển múi giờ. (Và vâng, thậm chí xem xét lịch sử đó, nó vẫn không phải là động thái tốt nhất). - Jon Hanna
@twome mặc dù tôi đồng ý với bạn đồng hồ phần cứng ở lại như Universal, vì nó không giữ thông tin múi giờ, có rất ít vấn đề với điều đó: A) BIOS / UEFI có nhiều tính năng như tự động đánh thức / giờ ngủ, nơi bạn đặt thời gian cho những trình kích hoạt đó. Thật kỳ lạ khi thiết lập thời gian đó trong UTC - ít nhất là đối với người dùng trung bình. B) Như Jon đã nói ở trên, lý do tương thích ngược. - Shahriyar Imanov
Trong Windows PowerShell, hãy chạy lệnh này để cập nhật thuộc tính đăng ký được đề cập ở trên: New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001 - Anatoly Mironov
Đối với những người lướt qua văn bản, bạn chỉ phải thay đổi cài đặt trong một trong các hệ điều hành, không phải cả hai. - Alexander Revo


Để đặt đồng hồ BIOS thành giờ cục bộ thay vì UTC trong phiên bản dựa trên hệ thống (15.04 trở lên), bạn sẽ phải sử dụng timedatectlchỉ huy. Theo Arch Wiki:

Bạn có thể đặt tiêu chuẩn thời gian đồng hồ phần cứng thông qua dòng lệnh.   Bạn có thể kiểm tra những gì bạn đã đặt để sử dụng bằng cách:

$ timedatectl | grep local

Đồng hồ phần cứng có thể được truy vấn và thiết lập với timedatectl   chỉ huy. Để thay đổi tiêu chuẩn thời gian đồng hồ phần cứng thành giờ địa phương, hãy sử dụng:

# timedatectl set-local-rtc 1

Nếu bạn muốn hoàn nguyên về đồng hồ phần cứng đang ở trong UTC, hãy làm:

# timedatectl set-local-rtc 0

59
2018-01-13 03:40



Trên Ubuntu 16.10 nó đã giúp làm "hwclock --systohc --localtime". Điều này viết "phần địa phương" để / etc / adjtime và do đó làm cho nó vĩnh viễn. - user1050755
@ user1050755 là trước, sau hoặc thay vì lệnh timedatectl? - nasch


Múi giờ của bạn là phương Đông, hiện đang là EDT (Eastern Daylight Time). EDT là UTC trừ bốn giờ, giống như bù đắp bạn đang gặp phải.

Khi điều này xảy ra trên hệ thống khởi động kép, thường là do một hệ điều hành cho rằng đồng hồ phần cứng theo dõi thời gian cục bộ, trong khi hệ điều hành khác cho rằng đồng hồ phần cứng theo dõi UTC.

Trong trường hợp của bạn, đồng hồ phần cứng của bạn có thể được đặt thành giờ địa phương và:

  • Windows được đặt để sử dụng giờ địa phương, trong đó (cho cài đặt thời gian của bạn) là chính xác.
  • Ubuntu được thiết lập để sử dụng UTC, mà (cho các thiết lập thời gian của bạn) là sai.

Nếu bạn chỉ cần đặt lại thời gian trong hệ thống Ubuntu, theo cách thủ công hoặc tự động, nó sẽ là sai trong Windows, do đó, đó không phải là một giải pháp tốt.

Thay vào đó, giải pháp tốt nhất có lẽ là cấu hình lại Ubuntu để xử lý thời gian đồng hồ phần cứng như giờ địa phương (sau đó bạn có thể để cấu hình Windows và thời gian đồng hồ phần cứng của bạn, một mình).

Để thực hiện việc này, hãy chỉnh sửa /etc/default/rcS như là người chủ và chắc chắn rằng nó có UTC=no:

  1. nhấn Alt+F2.

  2. Kiểu gksu gedit /etc/default/rcS và hãy nhấn Đi vào.

  3. Có thể bạn sẽ thấy điều này:

    # assume that the BIOS clock is set to UTC time (recommended)
    UTC=yes
    
    • Nếu bạn làm thế, hãy thay đổi UTC=yes đến UTC=no. (Hoặc bạn cũng có thể muốn thêm bình luận, bằng cách thay đổi nó thành một cái gì đó như UTC=no # changed to accommodate Windows system. Mọi thứ trên một dòng sau # ký tự là một nhận xét và chỉ có để làm cho cài đặt của bạn dễ đọc hơn.)
    • Nếu không, hãy tìm kiếm UTC= hàng. Nếu nó không được chú ý (nghĩa là, không có # lúc đầu), thay đổi nó cho phù hợp. Nếu được nhận xét, hãy bỏ ghi chú bằng cách xóa hàng đầu # và chắc chắn rằng nó nói UTC=no.
  4. Lưu tệp và thoát khỏi trình soạn thảo văn bản.

  5. Khởi động lại để áp dụng các thay đổi của bạn và kiểm tra xem thời gian có hoạt động bình thường ngay trên cả hai hệ điều hành hay không.

Nguồn:  https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time 

(Nhưng đó là rất chung chung, tôi đã viết câu trả lời này để áp dụng cụ thể cho tình hình của bạn, đó là một vấn đề hơi phổ biến.)


32
2017-07-28 18:16



Lưu ý rằng điều này cũng có thể xảy ra khi bạn nâng cấp từ bản phát hành Ubuntu này sang bản phát hành tiếp theo, giống như nó đã làm cho tôi. Tôi có thể khuyên bạn nên thực hiện các sửa chữa ở trên, và sau đó cũng đồng bộ hóa thủ công đồng hồ của bạn như trong câu trả lời này (điều chỉnh nó để làm việc với systemd): askubuntu.com/a/254846/139735 - starbeamrainbowlabs
Đây sẽ là câu trả lời được chấp nhận imho. Tôi đã cài đặt Windows và chạy tốt, sau đó tôi đã cài đặt Ubuntu và các đồng hồ chạy haywire - tôi không thể thấy lý do tại sao tôi nên sửa đổi cài đặt Windows nếu rõ ràng là việc bổ sung linux đã phá vỡ cấu hình của tôi. - Przemek D


Khắc phục / etc / rcS không hoạt động trên bản cài đặt Win7 / Ubuntu 14.04x64 của tôi, cũng như không khắc phục được thông qua GUI đồng hồ. Bởi vì gốc của vấn đề là thời gian BIOS VS UTC, và Windows là một nỗi đau trong mông khi nói đến việc sử dụng UTC, tôi chỉ chọn một điểm trên bản đồ sử dụng UTC + 0 (không thay đổi giữa thời gian BIOS và UTC) .

Hãy thử thay đổi vị trí của bạn thành Reykjavik (thủ đô của Iceland). Thì đấy! Thời gian Ubuntu của bạn sẽ thay đổi để phù hợp với thời gian BIOS của bạn.


12
2017-07-03 17:49



Haha! Tuyệt vời. : D Tôi thực sự không quan tâm đến vị trí của mình. Đây là hai giây sửa chữa. Cảm ơn rất nhiều. - Pale Blue Dot