Waktu jam tidak aktif saat boot ganda

303

Sistem boot ganda Windows XP Pro dan Ubuntu 12.04.

Saya memiliki set BIOS untuk waktu yang benar dan Ubuntu ditetapkan untuk waktu US Eastern. Ubuntu akan boot dan waktu akan dimatikan -4 jam. Jika saya memperbaiki waktu di Ubuntu maka ketika saya boot di Windows XP waktu akan dimatikan + 4 jam.

Ini adalah instalasi baru 12,04. Saya tidak memiliki masalah ini sebelum menginstal ulang Ubuntu.

Bill Walden
sumber

Jawaban:

265

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

Beberapa Konflik Waktu Sistem Booting

Sistem operasi menyimpan dan mengambil waktu dalam jam perangkat keras yang terletak pada motherboard Anda sehingga dapat melacak waktu bahkan ketika sistem tidak memiliki daya. Sebagian besar sistem operasi (Linux / Unix / Mac) menyimpan waktu pada jam perangkat keras sebagai UTC secara default, meskipun beberapa sistem (terutama Microsoft Windows) menyimpan waktu pada jam perangkat keras sebagai waktu 'lokal'. Ini menyebabkan masalah dalam sistem dual boot jika kedua sistem melihat jam perangkat keras secara berbeda.

Keuntungan memiliki jam perangkat keras sebagai UTC adalah bahwa Anda tidak perlu mengubah jam perangkat keras saat berpindah di antara zona waktu atau ketika Daylight Savings Time (DST) dimulai atau berakhir karena UTC tidak memiliki DST atau offset zona waktu.

Mengubah Linux untuk menggunakan waktu lokal lebih mudah dan lebih dapat diandalkan daripada mengubah Windows untuk menggunakan UTC, sehingga sistem dual-boot Linux / Windows cenderung menggunakan waktu lokal.

Sejak Intrepid (8.10), UTC = yes adalah default.

Jadikan Windows menggunakan UTC

Catatan: Metode ini awalnya tidak didukung pada Windows Vista dan Server 2008, tetapi kembali dengan Vista SP2, Windows 7, Server 2008 R2 dan Windows 8 / 8.1.

Untuk membuat MS Windows menghitung waktu dari jam perangkat keras sebagai UTC.

Buat file bernama WindowsTimeFixUTC.reg dengan konten berikut dan kemudian klik dua kali untuk menggabungkan konten dengan registri:

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

Catatan: Layanan Windows Time masih akan menulis waktu lokal ke RTC terlepas dari pengaturan registri di atas pada shutdown, jadi sangat berguna untuk menonaktifkan layanan Windows Time dengan perintah ini (jika sinkronisasi waktu masih diperlukan saat di Windows menggunakan waktu pihak ketiga apa pun solusi sinkronisasi):

sc config w32time start= disabled

Membalikkan perubahan
Anda dapat membuat file dengan konten berikut dan kemudian klik dua kali untuk menggabungkan perubahan asli, seperti di atas:

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

Jika layanan Windows Time dinonaktifkan, aktifkan lagi dengan perintah:

sc config w32time start= demand

Jadikan Linux menggunakan waktu 'Lokal'

Untuk memberi tahu sistem Ubuntu Anda bahwa jam perangkat keras diatur ke waktu 'lokal':

Sistem Pra-Ubuntu 15.04 (mis. Ubuntu 14.04 LTS):

  1. sunting /etc/default/rcS
  2. tambahkan atau ubah bagian berikut

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

Sistem Ubuntu 15.04 ke atas (mis. Ubuntu 16.04 LTS):

  1. buka terminal dan jalankan perintah berikut

    timedatectl set-local-rtc 1
    
Eric Carvalho
sumber
53
Oh Tuhan. Saya tidak percaya mereka cukup bodoh untuk menggunakan waktu lokal pada jam perangkat keras. Mengapa Anda pernah melakukan itu?
iono
20
@ dua karena karena tidak ada banyak cara jaringan pada hari-hari awal MS-DOS, dan itu tidak akan umum untuk memindahkan PC sejauh itu memindahkan zona waktu. (Dan ya, bahkan mengingat sejarah itu, itu masih bukan langkah terbaik).
Jon Hanna
9
@twome walaupun saya setuju dengan Anda bahwa jam perangkat keras tetap sebagai Universal, karena tidak menyimpan informasi zona waktu, ada beberapa masalah dengan itu: A) BIOS / UEFI memiliki berbagai fitur seperti pengatur waktu tidur / bangun otomatis, di mana Anda atur waktu untuk pemicu tersebut. Akan aneh untuk mengatur waktu tersebut di UTC - setidaknya untuk pengguna biasa. B) Seperti yang dikatakan Jon di atas, alasan kompatibilitas ke belakang.
Shahriyar Imanov
5
Di Windows PowerShell jalankan perintah ini untuk memperbarui properti registri yang disebutkan di atas: New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001
Anatoly Mironov
6
Bagi mereka yang membaca sepintas teks, Anda hanya perlu mengubah pengaturan di salah satu OS, bukan keduanya.
Alexander Revo
67

Untuk mengatur jam BIOS ke waktu lokal dan bukan UTC dalam versi berbasis sistemd (15.04 dan lebih tinggi), Anda harus menggunakan timedatectlperintah. Menurut Arch Wiki :

Anda dapat mengatur standar waktu jam perangkat keras melalui baris perintah. Anda dapat memeriksa apa yang telah Anda tentukan untuk digunakan dengan:

$ timedatectl | grep local

Jam perangkat keras dapat ditanyakan dan diatur dengan timedatectl perintah. Untuk mengubah standar waktu jam perangkat keras ke waktu lokal, gunakan:

# timedatectl set-local-rtc 1

Jika Anda ingin kembali ke jam perangkat keras di UTC, lakukan:

# timedatectl set-local-rtc 0
muru
sumber
4
Pada Ubuntu 16.10 membantu untuk melakukan "hwclock --systohc --localtime". Ini menulis "bagian lokal" ke / etc / adjtime dan karenanya membuatnya permanen.
user1050755
1
@ user1050755 apakah itu sebelum, sesudah, atau bukannya perintah timedatectl?
nasch
36

Zona waktu Anda adalah Timur , yang saat ini EDT (Waktu Siang Timur). EDT adalah UTC minus empat jam, sama dengan offset yang Anda alami.

Ketika ini terjadi pada sistem dual-boot, biasanya karena satu sistem operasi menganggap jam perangkat keras melacak waktu setempat, sedangkan sistem operasi lainnya menganggap jam perangkat keras melacak UTC.

Dalam kasus Anda, jam perangkat keras Anda mungkin disetel ke waktu setempat, dan:

  • Windows diatur untuk menggunakan waktu lokal, yang (mengingat pengaturan waktu Anda) benar .
  • Ubuntu diatur untuk menggunakan UTC, yang (mengingat pengaturan waktu Anda) tidak benar .

Jika Anda hanya mengatur ulang waktu di sistem Ubuntu, baik secara manual atau otomatis , itu akan salah di Windows, jadi itu bukan solusi yang baik.

Sebaliknya, solusi terbaik mungkin adalah mengkonfigurasi ulang Ubuntu untuk memperlakukan waktu jam perangkat keras sebagai waktu lokal (maka Anda dapat meninggalkan konfigurasi Windows Anda, dan waktu jam perangkat keras Anda sendirian).

Untuk melakukan ini, edit /etc/default/rcSsebagai root dan pastikan sudah UTC=no:

  1. Tekan Alt+ F2.

  2. Ketik gksu gedit /etc/default/rcSdan tekan Enter.

  3. Anda mungkin akan melihat ini:

    # assume that the BIOS clock is set to UTC time (recommended)
    UTC=yes
    
    • Jika ya, ubah UTC=yeske UTC=no. (Atau Anda mungkin ingin menambahkan komentar juga, dengan mengubahnya menjadi sesuatu seperti UTC=no # changed to accommodate Windows system. Segala sesuatu di baris setelah #karakter adalah komentar, dan apakah ada hanya untuk membuat pengaturan Anda lebih dapat dibaca oleh manusia.)
    • Jika tidak, cari UTC=baris apa pun . Jika tidak dikomando (yaitu, tidak memiliki #di awal), ubahlah sesuai. Jika dikomentari, batalkan komentar dengan menghapus yang memimpin #dan pastikan dikatakan UTC=no.
  4. Simpan file dan keluar dari editor teks.

  5. Mulai ulang untuk menerapkan perubahan Anda dan periksa apakah waktunya sudah bekerja dengan baik sekarang di kedua sistem operasi.

Sumber: https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time

(Tapi itu sangat umum; Saya telah menulis jawaban ini untuk diterapkan secara khusus pada situasi Anda, yang merupakan masalah yang agak umum.)

Eliah Kagan
sumber
Perhatikan bahwa ini juga dapat terjadi ketika Anda meningkatkan dari satu rilis Ubuntu ke yang berikutnya, seperti yang terjadi pada saya. Saya dapat merekomendasikan melakukan perbaikan di atas, dan kemudian juga secara manual menyinkronkan jam Anda seperti dalam jawaban ini (menyesuaikannya agar bekerja dengan systemd): askubuntu.com/a/254846/139735
starbeamrainbowlabs
Ini harus menjadi jawaban yang diterima imho. Saya telah menginstal dan menjalankan Windows dengan baik, kemudian saya menginstal Ubuntu dan jam menjadi kacau - Saya tidak dapat melihat alasan mengapa saya harus memodifikasi pengaturan Windows jika itu jelas penambahan linux yang merusak konfigurasi saya.
Przemek D
13

Perbaikan / etc / rcS tidak bekerja pada instalasi Win7 / Ubuntu 14.04x64 saya, juga tidak ada perbaikan melalui GUI jam. Karena akar masalahnya adalah waktu BIOS VS waktu UTC, dan Windows adalah masalah ketika menggunakan UTC, saya baru saja memilih titik pada peta yang menggunakan UTC + 0 (tidak ada perubahan antara waktu BIOS dan UTC) .

Coba ubah lokasi Anda ke Reykjavik (ibukota Islandia). Voila! Waktu Ubuntu Anda akan berubah agar sesuai dengan waktu BIOS Anda.

Opensourcefool
sumber
Ha ha! Luar biasa. : DI saya benar-benar tidak peduli lokasi saya. Ini adalah perbaikan dua detik. Terima kasih banyak.
Pucat Blue Dot