Saya baru-baru ini menghadapi masalah yang sama dan inilah cara saya memperbaikinya. Anda perlu melakukan sedikit perubahan di kedua OS.
Saya mulai dengan Linux terlebih dahulu. Jalankan perintah berikut ini sebagai root.
ntpdate pool.ntp.org
Ini akan memperbarui waktu Anda jika tidak disetel dengan benar.
Sekarang setel jam perangkat keras ke UTC dengan perintah ini.
hwclock --systohc --utc
Sumber
Sekarang boot ke Windows dan tambahkan registri berikut. Cukup buat file .reg menggunakan kode di bawah ini di Notepad. Simpan dan jalankan.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
Sumber
Dari boot berikutnya dan seterusnya, kedua OS akan menampilkan waktu yang tepat.
Tidak ada yang salah, tetapi menggunakan UTC lebih tepat. RTC tidak memiliki zona waktu; itu hanya jam dinding bodoh. Jika zona waktu lokal Anda menghargai DST (yang memiliki banyak rasa, dan aturan berubah secara sewenang-wenang), maka dua kali setahun, Anda harus pergi dan mengubahnya. OS akan melakukannya untuk Anda, tetapi jika RTC adalah UTC, OS tetap melakukan terjemahan lokal UTC-> - mengapa mengutak-atik jam? Selain itu, selama transisi "mundur" DST, RTC tidak dapat memberi tahu Anda jam berapa sekarang! Apakah sekarang pukul 01.30 CDT atau CST?
Rupanya, Windows 8 mendukung UTC untuk RTC. Windows 7 juga melakukannya, tetapi ada masalah.
Ada argumen yang lebih baik menentang hal ini saat orang menyetel jam BIOS mereka secara manual, tetapi waktu berbasis server jauh lebih lazim sekarang.
Kasus normalnya adalah sistem Linux memiliki RTC (real-time clock) yang disetel ke UTC, dan konversi ke waktu lokal dilakukan di ruang pengguna berdasarkan data zona waktu dan TZ
variabel lingkungan. Ini "kurang buruk" karena membuat sistem RTC meningkat secara monoton, dan menerapkan sihir zona waktu nanti, memastikan misalnya bahwa tidak ada file yang biasanya memiliki stempel waktu di masa mendatang (yang dapat dengan mudah terjadi setidaknya setahun sekali, jika sistem RTC diatur ke waktu setempat). Seperti yang ditunjukkan Ken, RTC sendiri tidak memiliki konsep zona waktu, hanya waktu.
Seperti yang telah Anda temukan, hal ini menyebabkan masalah saat booting ganda dengan sistem yang biasanya tidak beroperasi seperti itu, seperti sistem operasi keluarga Microsoft yang umumnya mengharapkan RTC disetel ke lokal waktu. Ya, Windows NT (menurut saya kembali ke NT 4, sebenarnya) bisa berfungsi dengan RTC yang disetel ke UTC, tetapi setidaknya terakhir saya melihat bahwa itu bukan konfigurasi yang didukung dan ada sejumlah peringatan.
Solusi mudah dalam kasus Anda mungkin adalah menyetel RTC ke waktu lokal, beri tahu sistem Linux Anda bahwa RTC disetel ke waktu lokal (mekanisme yang tepat untuk melakukan ini bervariasi berdasarkan distribusi dan versi rilis, tetapi ternyata di Ubuntu Anda menyetel UTC=no
di /etc/default/rcS), lalu konfigurasikan sistem operasi sehingga hanya satu dari mereka (lebih disukai yang paling sering Anda gunakan, karena waktu yang ditampilkan di semua yang lain akan salah dua kali setahun hingga di-boot dan memiliki kesempatan untuk memperbaikinya) menangani perubahan waktu musim panas. Dan hiduplah dengan kelemahannya, yang seharusnya dapat dikelola pada sistem pengguna tunggal.
Anda juga bisa atur sisi Windows untuk menggunakan UTC sebagai zona waktu dan matikan perubahan waktu musim panas otomatis di Windows, dan biarkan Linux mengatur agar RTC dalam UTC dan menampilkan waktu yang dikonversi sesuai dengan praktiknya. Namun, ini akan menyebabkan Windows menampilkan tanggal dan waktu dalam UTC, yang mungkin bukan yang Anda inginkan. Ini bukan masalah besar bagi kami orang Eropa, yang paling banyak sekitar tiga jam libur dari UTC, tetapi mungkin lebih menjadi masalah di AS. Opsi ini mungkin lebih realistis jika Anda hanya menggunakan Windows sesekali, dan OS utama Anda adalah Linux atau OS lain yang mendukung RTC-UTC.