Waktu Lokal Windows vs Linux?

40

Sejak saya mulai menggunakan Linux di dualboot dengan Windows, saya perhatikan bahwa ketika saya reboot mesin, waktu di OS lain salah, misalnya jam 12:00 di Linux, kemudian saya reboot dan pada Windows pukul 18:00, dan ketika saya memeriksa BIOS, RTC diatur ke 18:00. Karena zona waktu saya adalah -06: 00 CST, saya berasumsi bahwa Linux hanya mengatur waktu RTC ke UTC dan menghitung ulang waktu berdasarkan zona waktu, sedangkan Windows hanya menetapkan RTC ke waktu setempat. Keduanya menggunakan server NTP yang sama untuk menyinkronkan waktu.

Pertanyaannya adalah, mana yang melakukan hal yang benar? Di mana saya harus mengatur pengaturan zona waktu ke UTC agar memiliki waktu yang tepat untuk keduanya?

arielnmz
sumber
pertanyaan sampingan: mengapa ini tidak terjadi pada versi Windows dan Linux yang lebih lama?
golimar

Jawaban:

16

Tidak ada yang salah, tetapi menggunakan UTC lebih tepat. RTC tidak memiliki zona waktu; ini hanya jam dinding yang bodoh. Jika zona waktu setempat Anda menghormati DST (yang mana ada banyak rasa, dan peraturan berubah secara sewenang-wenang), maka dua kali setahun, Anda harus pergi dan mengubahnya. OS akan melakukannya untuk Anda, tetapi jika RTC adalah UTC, OS melakukan terjemahan lokal UTC-> - mengapa mengotak-atik jam? Selain itu, selama transisi "mundur" DST, RTC tidak dapat memberi tahu Anda jam berapa sekarang! Apakah jam 1:30 pagi CDT atau CST?

Rupanya, Windows 8 mendukung UTC untuk RTC. Windows 7 juga melakukannya, tetapi ada masalah .

Ada argumen yang lebih baik terhadap hal ini ketika orang mengatur jam BIOS mereka secara manual, tetapi waktu berbasis server jauh lebih lazim sekarang.

Ken
sumber
68

Saya baru-baru ini menghadapi masalah yang sama dan ini adalah bagaimana 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 diatur dengan benar.

Sekarang atur jam perangkat keras ke UTC dengan perintah ini.

hwclock --systohc --utc

Sumber

Sekarang boot ke Windows dan tambahkan registry 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 menunjukkan waktu yang tepat.

Ayan
sumber
6
Jawaban terbaik yang didokumentasikan dengan instruksi nyata! +1.
agtoever
1
Harus menyertakan edisi Windows apa yang diterapkan oleh tweak registri.
Tanath
2
Kapan Windows mendapatkan kemampuan untuk memahami jam sistem yang membuat waktu selain lokal?
Markus
1
Tweak registri ini berfungsi untuk Windows XP / Vista / 7/8 / 8.1. @Tanath
Ayan
3
@ Mark Pada Windows XP.
Michael Hampton
4

Kasus normal adalah bahwa sistem Linux memiliki RTC (real-time clock) diatur ke UTC, dan konversi ke waktu lokal dilakukan di userspace berdasarkan data zona waktu dan TZvariabel lingkungan. Ini "kurang buruk" karena membuat sistem RTC meningkat secara monoton, dan menerapkan keajaiban zona waktu di kemudian hari, memastikan misalnya bahwa tidak ada file yang biasanya memiliki stempel waktu di masa mendatang (yang dapat dengan mudah terjadi setidaknya sekali setahun, jika sistem RTC diatur ke waktu lokal). Seperti yang ditunjukkan Ken , RTC sendiri tidak memiliki konsep zona waktu, hanya waktu.

Seperti yang Anda temukan, ini menyebabkan masalah ketika dual-boot dengan sistem yang biasanya tidak beroperasi seperti itu, seperti keluarga sistem operasi Microsoft yang umumnya mengharapkan RTC diatur ke waktu lokal . Ya, Windows NT (saya pikir akan kembali ke NT 4, sebenarnya) dapat bekerja dengan RTC yang diatur ke UTC, tetapi setidaknya saya melihat itu bukan konfigurasi yang didukung dan ada sejumlah peringatan.

Solusi mudah dalam kasus Anda mungkin adalah mengatur RTC ke waktu lokal, beri tahu sistem Linux Anda bahwa RTC diatur ke waktu lokal (mekanisme yang tepat untuk melakukan ini bervariasi berdasarkan distribusi dan versi rilis, tetapi tampaknya di Ubuntu Anda atur UTC=nodi / etc / default / rcS ), dan kemudian konfigurasikan sistem operasi sedemikian rupa 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 sampai telah di-boot dan memiliki kesempatan untuk memperbaikinya) menangani perubahan waktu musim panas . Dan hidup dengan kelemahan, yang harus dikelola pada sistem pengguna tunggal.

Anda juga dapat mengatur sisi Windows untuk menggunakan UTC sebagai zona waktu dan mematikan perubahan waktu musim panas secara otomatis di Windows, dan menjaga Linux tetap mengatur agar RTC di 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 kita orang Eropa, yang paling banyak sekitar tiga jam libur dari UTC, tetapi mungkin lebih merupakan masalah di AS. Ini kemungkinan merupakan opsi yang lebih realistis jika Anda hanya menggunakan Windows sesekali, dan OS utama Anda adalah Linux atau OS lain yang sadar RTC-UTC.

sebuah CVn
sumber
Apakah Anda memiliki informasi tentang "itu bukan konfigurasi yang didukung dan ada sejumlah peringatan."
Random832
@ Random832 Biarkan saya melihat apakah saya dapat menemukannya. Saya tahu saya pernah melihatnya sebelumnya, tetapi sekarang sepertinya tidak dapat menemukannya dengan pencarian google cepat setidaknya.
CVn
2

Jika Anda melakukan boot ganda dan ada konflik waktu antara Windows dan Ubuntu, ini terjadi karena Ubuntu menyimpan waktu pada jam perangkat keras sebagai UTC secara default sedangkan Microsoft Windows menyimpan waktu sebagai waktu lokal, sehingga menyebabkan waktu yang bertentangan antara Ubuntu dan Windows.

Anda perlu mengatur sistem Linux Anda untuk menggunakan waktu lokal seperti yang dijelaskan di sini dalam panduan ini untuk Ubuntu .

JakeGould
sumber
Itu memang menggunakan waktu setempat, dan saya sadar itu memang menyimpan waktu sebagai UTC (jika Anda setidaknya membaca pertanyaan), dan saya tahu apa yang bisa saya lakukan untuk memperbaikinya, pertanyaannya adalah mana yang benar-benar melakukan hal yang benar untuk ganti yang lain sebagai gantinya.
arielnmz
Secara default, Windows menggunakan waktu lokal, Mac OS menggunakan UTC, dan sistem operasi mirip UNIX bervariasi. Suatu OS yang menggunakan standar UTC, umumnya, akan mempertimbangkan waktu CMOS (jam perangkat keras) sebagai waktu UTC (GMT, waktu Greenwich) dan membuat penyesuaian padanya sambil mengatur waktu Sistem saat boot sesuai dengan zona waktu Anda.
Sekali lagi, saya sadar akan hal itu, saya hanya ingin tahu OS mana yang melakukannya dengan benar sehingga saya dapat misalnya mengatur zona waktu windows ke UTC dan memperbaikinya, atau sebaliknya.
arielnmz
@MagomedSegaIsmailov Apakah Mac OS berjalan pada sistem yang menggunakan BIOS RTC? Saya berasumsi bahwa EFI menyediakan kewarasan.
Random832
0

Saya dual booting windows 10 dan remix os dan hanya mengikuti hanya panduan untuk windows yang bekerja untuk saya, kedua kali sudah benar. Saya menggunakan baris perintah untuk menambahkan skrip Anda juga karena lebih mudah

Edwin Correa
sumber
Tolong jangan tambahkan "terima kasih" sebagai jawaban. Investasikan waktu dalam situs ini dan Anda akan memperoleh hak istimewa yang cukup untuk meningkatkan jawaban yang Anda sukai, yang merupakan cara Pengguna Super mengucapkan terima kasih.
DavidPostill