Waktu berbeda di Windows dan Linux Mint

18

Saya telah menginstal Linux Mint pertama pada Acer Aspire 4930 saya dan kemudian dual-boot dengan Windows 7.

Saya selalu melihat waktu yang tepat di Linux Mint tetapi saat boot ke Windows waktu digeser kembali oleh beberapa jam, bahkan setelah mengatur ulang waktu, pada reboot itu menunjukkan waktu yang salah lagi.


Pertanyaan:

  1. Mengapa ini terjadi?

  2. Apa yang bisa saya lakukan?

Balistik
sumber

Jawaban:

17

Pada Windows, jam sistem RTC secara tradisional disimpan dalam waktu lokal. Di Unix dan Linux, secara tradisional disimpan di UTC, dan /etc/localtimedigunakan untuk menunjukkan zona waktu saat ini sehingga waktu yang ditampilkan benar.

Kedua pandangan dunia ini bertabrakan dalam konfigurasi dual-boot karena hanya ada satu RTC. Biasanya, Anda memberi tahu Linux untuk menganggap bahwa RTC adalah waktu lokal (karena Windows tidak dapat diberitahu). Ini bervariasi dari satu Linux yang lain, tapi karena Mint adalah seperti Ubuntu Anda mungkin dapat mengatur UTC=nodi /etc/default/rcS. Kemudian Anda dapat mengatur jam ke waktu lokal di Windows dan Linux akan membiarkannya sendiri setelah itu.


Catatan Editor :

File itu tidak ada sejak Linux Mint 19 (atau lebih tepatnya sejak basis Ubuntu 18.04):

/etc/default/rcS
aecolley
sumber
2
UTC sudah diatur ke tidak, perbedaan waktu masih ada.
Balistik
5

Mint 18.2 KDE tampaknya kebal terhadap perbaikan lainnya (termasuk perbaikan tambahan yang saya temukan dalam pencarian). File-file yang disebutkan dalam jawaban aecolley dan error404 entah tidak ada lagi atau sepertinya tidak lagi menjadi tempat pengaturan direferensikan, setidaknya dalam versi KDE saat ini. Perintah dalam jawaban Julie Pelletier bekerja untuk 18.2 Cinnamon tetapi tidak 18.2 KDE.

Setelah mencoba setengah lusin solusi yang disarankan, berikut ini memperbaikinya untuk 18.2 KDE. Dengan waktu yang benar ditampilkan, jalankan perintah terminal berikut:

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

Sumber: Kiat dan Trik untuk Linux Mint setelah Instalasi [Mint 18 - Cinnamon Edition]

Ini juga bisa digunakan untuk Cinnamon sebagai solusi alternatif, dan saya menganggap DE lain juga.

Catatan Editor:

  • Tidak sudodiperlukan, jalankan perintah itu sebagai pengguna Anda.

  • Itu tetap bertahan saat reboot, harus permanen.

  • Diuji pada Linux Mint 19.1 Cinnamon, yang berbasis Ubuntu 18.04.

fixer1234
sumber
Saya mengkonfirmasi, ini berfungsi pada Mint 18.3 Cinnamon.
dchrome
@Vastimil, sudah beberapa saat sejak saya melakukan ini. Ingatan saya adalah bahwa sudo tidak diperlukan (jika itu, saya akan memasukkannya dalam jawaban, dan perbaikan yang serupa tidak merujuk ke sudo juga, jadi saya cukup yakin itu tidak). Dan ya, ini masih ada.
fixer1234
@ fixer1234 Terima kasih banyak, sobat! Anda menyelamatkan hari saya dan saya pikir semua orang :)
LinuxSecurityFreak
3

Cara paling umum untuk melakukannya adalah dengan:

hwclock --systohc --localtime

yang persisten di seluruh reboot dan berfungsi pada sebagian besar sistem.

Julie Pelletier
sumber
Jika jam Anda saat ini menampilkan waktu yang tepat, maka perintah yang Anda butuhkan memang hwclock --systohc --localtime, yang akan mengatur jam perangkat keras ke waktu lokal menggunakan nilai yang saat ini ditampilkan oleh sistem. Namun, jika jam Anda saat ini salah (mis. Jam perangkat keras adalah waktu lokal, tetapi sistem menambahkan offset untuk zona waktu Anda, menghasilkan nilai yang ditampilkan salah), maka Anda perlu hwclock --hctosys --localtime.
youen
@ Youen, saya punya situasi itu dan modifikasi Anda hanya membuang waktu ke arah lain. Perbaikan untuk saya adalah mengatur ulang jam ke waktu yang tepat dan kemudian menggunakan perintah dalam jawaban Julie.
fixer1234
@ fixer1234 OK, aneh. Sejujurnya saya tidak mencoba perintah kedua dalam komentar saya, karena saya sudah memperbaiki jam saya saat itu. Namun saya percaya menjalankan salah satu dari perintah ini, dan kemudian mengatur jam ke waktu yang ditampilkan dengan benar, akan melakukan trik (menjalankan perintah pertama lagi mungkin tidak diperlukan jika Anda sudah menjalankan yang kedua). Senang itu berhasil untuk Anda pada akhirnya :)
youen
1

PERINGATAN

Metode ini bermasalah di Windows versi pra-7, tetapi ini menyelesaikan masalah di sisi Windows dari persamaan, daripada di akhir Linux: Anda tidak perlu mengatur Linux untuk menggunakan waktu lokal .


Diambil dari Arch Linux Wiki yang paling mulia dan terhormat :

Salah satu alasan pengguna sering mengatur RTC di localtime adalah untuk dual boot dengan Windows (yang menggunakan localtime).

Namun, Windows [dapat menangani RTC menjadi UTC] dengan perbaikan registri sederhana. Disarankan untuk mengkonfigurasi Windows untuk menggunakan UTC, daripada Linux untuk menggunakan waktu lokal.

Menggunakan regedit, tambahkan DWORDnilai dengan nilai heksadesimal 1ke registri:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

Anda dapat melakukan ini dari Administrator Command Prompt yang berjalan:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

Atau, buat file * .reg (di desktop) dengan konten berikut dan klik dua kali untuk mengimpornya ke dalam registri:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Jika hal di atas tampaknya tidak berpengaruh, dan varian 64-bit Windows sedang digunakan, menggunakan QWORDnilai alih-alih DWORDnilai dapat menyelesaikan masalah.

Jika Windows meminta untuk memperbarui jam karena perubahan DST, biarkan saja. Ini akan meninggalkan jam dalam UTC seperti yang diharapkan, hanya memperbaiki waktu yang ditampilkan.

Jam perangkat keras dan jam sistem mungkin perlu diperbarui setelah menetapkan nilai ini. Jika Anda mengalami masalah dengan offset waktu, coba instal ulang tzdata dan kemudian atur lagi zona waktu Anda:

# timedatectl set-timezone America/Los_Angeles
Alexej Magura
sumber
Saya sebenarnya mengalami masalah ini di mesin Windows saya sendiri, tetapi sejauh ini saya hanya mengabaikannya; Namun, saya akan melihat apakah metode ini berfungsi dan melaporkan temuan saya.
Alexej Magura
1
Ini bekerja untuk saya. Terimakasih banyak! Dengan cara ini saya tidak perlu memodifikasi setiap instalasi Linux yang ada di PC saya.
Lokesh
0

Ubah (sebagai root) /etc/timeadjvariabel dari UTCmenjadi LOCAL.

Ini mengurutkan masalah tanpa harus bermain-main dengan regedit di sisi Windows.

kesalahan 404
sumber
0

Jalankan salah satu dari dua perintah ini yang cocok dengan waktu lokal Anda

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

'atau'

timedatectl set-local-rtc 0 --adjust-system-clock
Atul6.Singh
sumber