इस लेख में, हम विचार करेंगे कि सिस्टम घड़ी शटडाउन, रीस्टार्ट या लैपटॉप/कंप्यूटर/सर्वर के हाइबरनेशन से रिज्यूम होने के बाद गलत समय और तारीख क्यों प्रदर्शित करती है। समय हर बार रीसेट होता है और आपको इसे मैन्युअली सेट करना पड़ता है। हम सबसे सामान्य मामले पर ध्यान देंगे: खराब BIOS बैटरी और Windows/Linux डुअल बूट पर एक कंप्यूटर पर, और Windows Server OS के साथ HPE ProLiant G9 /G8 सर्वर्स पर एक फर्मवेयर बग से जुड़े अधिक दिलचस्प मामले।
कमजोर BIOS/CMOS बैटरी के कारण सिस्टम डेटा/टाइम सेव नहीं करता
"मेरे कंप्यूटर पर रीबूट के बाद समय और तारीख क्यों रीसेट हो जाती है?" सवाल का सामान्य जवाब BIOS (CMOS) बैटरी का खराब होना है। यह बैटरी आपके कंप्यूटर या लैपटॉप के अनप्लग होने पर BIOS/UEFI सेटिंग्स को बनाए रखने के लिए जिम्मेदार है, और बिल्ट-इन हार्डवेयर घड़ी के स्वायत्त संचालन प्रदान करती है।
यदि बैटरी खराब हो गई है, तो जब मदरबोर्ड पावर्ड नहीं होता, BIOS अपनी सेटिंग्स नहीं रख सकता और उन सभी को रीसेट कर देता है, जिसमें वर्तमान तारीख और समय शामिल है। यदि आपका कंप्यूटर काफी पुराना है, तो यह बहुत संभावना है कि आपकी बैटरी खत्म हो गई है। हम इसे बदलने की दृढ़ता से सलाह देते हैं। यह कठिन नहीं है, और इस प्रक्रिया के लिए किसी विशेष इंजीनियरिंग कौशल की आवश्यकता नहीं होती। अधिकांश घरेलू और यहां तक कि एंटरप्राइज डिवाइसेज में BIOS में मानक 3V CR2032 बैटरी उपयोग की जाती है।
यदि बैटरी बदलने से मदद नहीं मिली, तो BIOS सेटिंग्स रीसेट करने के लिए उपयोग किए जाने वाले जम्पर की स्थिति जांचें (जम्पर बैटरी बे के करीब स्थित है और CMOS / CLEAR / RESET के रूप में मार्क किया गया है)। किसी ने इसे RESET स्थिति में छोड़ दिया होगा। इस प्रकार, हर बार जब आपका मदरबोर्ड पावर्ड होता है, BIOS सेटिंग्स रीसेट हो जाती हैं। जम्पर को उसकी सामान्य स्थिति में ले जाएं।
अगला विकल्प आपके मदरबोर्ड के BIOS फर्मवेयर को अपडेट करना है। अपने हार्डवेयर विक्रेता की वेबसाइट पर देखें कि यह कैसे करना है। नए फर्मवेयर में अक्सर अलग-अलग बग्स फिक्स होते हैं।
Windows: time.windows.com के साथ घड़ी सिंक्रनाइज़ेशन सेट करें
यदि Windows में आपकी तारीख/समय सेटिंग्स लगातार बदल रही हैं, तो सबसे पहले आपको वर्तमान टाइम जोन सेटिंग्स और एक्सटर्नल टाइम सर्वर के साथ समय सिंक्रनाइज़ेशन के पैरामीटर्स की जांच करनी चाहिए। Windows 10 में, आप Control Panel -> Clock and Region -> Date and Time में वर्तमान समय सेटिंग्स देख सकते हैं। इस उदाहरण में, आप देख सकते हैं कि टाइम जोन UTC + 01 निर्दिष्ट है, और डेलाइट सेविंग टाइम सक्षम है।
टिप. आप tzutil टूल या PowerShell का उपयोग करके कमांड प्रॉम्प्ट से Windows में अपना टाइम जोन सेट कर सकते हैं।यदि आपका कंप्यूटर AD डोमेन से जुड़ा नहीं है, तो एक्सटर्नल टाइम सोर्स (NTP टाइम सर्वर) के साथ इसके समय सिंक्रनाइज़ेशन सेटिंग्स की जांच करें। ऐसा करने के लिए, Internet Time टैब पर क्लिक करें और सुनिश्चित करें कि time.windows.com सर्वर के साथ स्वचालित सिंक्रनाइज़ेशन सेट है।
AD डोमेन-जॉइन्ड कंप्यूटर्स के लिए समय सिंक्रनाइज़ेशन समस्या निवारण
यदि आपका कंप्यूटर Active Directory डोमेन का हिस्सा है, तो आपको AD डोमेन में समय सिंक्रनाइज़ेशन की आर्किटेक्चर को समझने की आवश्यकता है।
Active Directory डोमेन में निम्न समय सिंक्रनाइज़ेशन योजना उपयोग की जाती है:
- AD फॉरेस्ट में रूट डोमेन कंट्रोलर, जिसके पास PDC एमुलेटर की FSMO भूमिका है, इस डोमेन के अन्य सभी DCs के लिए टाइम सोर्स है;
- अन्य DCs PDC के साथ समय सिंक्रनाइज़ करते हैं;
- सामान्य डोमेन सदस्य (सर्वर और वर्कस्टेशन) AD टोपोलॉजी के अनुसार निकटतम उपलब्ध डोमेन कंट्रोलर के साथ समय सिंक्रनाइज़ करते हैं।
रूट PDC दोनों एक्सटर्नल सोर्स और स्वयं (डिफ़ॉल्ट रूप से) के साथ अपना समय सिंक्रनाइज़ कर सकता है।
PDC भूमिका वाले डोमेन कंट्रोलर को कमांड से ढूंढा जा सकता है:
netdom /query fsmo
PDC पर एक्सटर्नल NTP सर्वर के साथ समय सिंक्रनाइज़ेशन कॉन्फिगर करने के लिए, निम्न कमांड्स उपयोग की जाती हैं।
एक्सटर्नल टाइम सोर्स कॉन्फिगर करें:
w32tm /config /manualpeerlist:"0.nl.pool.ntp.org,0x1 1.nl.pool.ntp.org,0x1 2.nl.pool.ntp.org,0x1 3.nl.pool.ntp.org,0x1"
इस DC को क्लाइंट्स के लिए विश्वसनीय टाइम सोर्स बनाएं:
w32tm /config /reliable:yes
w32 टाइम सर्वर रीस्टार्ट करके DC समय को nl.pool.ntp.org टाइम सर्वर्स के साथ सिंक्रनाइज़ करें:
net stop w32time && net start w32time
आप सिंक्रनाइज़ेशन सोर्स और स्थिति देख सकते हैं:
w32tm /query /peers
मैन्युअल मोड में सिंक्रनाइज़ेशन शुरू करें:
w32tm /resync /rediscover
डुअल बूटिंग के समय Windows और Linux अलग-अलग समय दिखाते हैं
हमें उन मामलों पर अलग से विचार करना चाहिए जब एक कंप्यूटर पर दो ऑपरेटिंग सिस्टम (Windows और Linux) डुअल बूट कॉन्फिगरेशन में इंस्टॉल होते हैं। आप इस समस्या का सामना कर सकते हैं कि दूसरे सिस्टम पर बूट करने के बाद (Windows के बाद Linux पर बूट करने पर) समय वास्तविक समय से कई घंटे आगे या पीछे होता है।
Windows और Linux BIOS समय के साथ अलग-अलग काम करते हैं। वे दो अलग-अलग समय प्रारूपों का उपयोग करते हैं: UTC और localtime।
GNU/Linux ऑपरेटिंग सिस्टम (Mac OS X सहित) मानते हैं कि BIOS में समय UTC प्रारूप (GMT) में है। तदनुसार, बूट करते समय, Linux यूजर द्वारा चुने गए वर्तमान टाइम जोन के ऑफसेट को जोड़कर (या घटाकर) UTC समय को परिवर्तित करता है। इसका मतलब है कि एथेंस टाइम जोन UTC+2 के लिए स्थानीय समय प्राप्त करने के लिए, Linux 2 घंटे जोड़ेगा।
Windows मानता है कि BIOS में समय localtime प्रारूप में रखा जाता है, और यदि आपने नया टाइम जोन निर्दिष्ट किया है या एक्सटर्नल सोर्स के साथ समय सिंक्रनाइज़ किया है, तो सिस्टम BIOS में स्थानीय समय में संबंधित परिवर्तन करेगा। Linux (मेरे मामले में Ubuntu) मानता है कि BIOS में समय UTC प्रारूप में निर्दिष्ट है और अतिरिक्त टाइम जोन ऑफसेट जोड़ता है। यही कारण है कि Linux से Windows और इसके विपरीत स्विच करते समय समय गलत हो जाता है।
इसे ठीक करने के लिए, आपको Windows को रजिस्ट्री पैरामीटर RealTimeIsUniversal में UTC समय प्रारूप का उपयोग करना चाहिए।
reg add "HKLMACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
इसके अलावा, Windows में इंटरनेट के साथ समय सिंक्रनाइज़ेशन अक्षम करें, क्योंकि प्रत्येक समय अपडेट पर Windows UTC समय को लोकल पर रीसेट कर देगा।
sc config w32time start= disabled
अपना Windows रीस्टार्ट करें।
या आप Linux को लोकल समय का उपयोग करने के लिए बना सकते हैं। Ubuntu 15.04 या उच्चतर में, आप timedatectl टूल का उपयोग कर सकते हैं:
timedatectl set-local-rtc 1
Windows Server के साथ HPE सर्वर्स: रीस्टार्ट के बाद सिस्टम समय में ऑफसेट
मेरे एक रिमोट ग्राहक को HPE DL/ML Gen9 सर्वर्स पर Windows Server 2008 R2 / 2012 R2 चलाने पर टाइम जोन बदलने के बाद एक दिलचस्प समस्या का सामना करना पड़ा। जैसा कि पता चला, HP ProLiant Gen9 सर्वर्स पर (और HP ProLiant DL580 Gen8 सर्वर्स में से एक पर), सिस्टम समय या टाइम जोन बदलते समय, सिस्टम समय सेव नहीं होता था और रीस्टार्ट के बाद पिछले समय पर रीसेट हो जाता था। यह समस्या उन सर्वर्स पर हुई जिन पर Windows Server Legacy मोड में बूट हुआ था (देशी UEFI बूट के साथ, समय परिवर्तन की कोई समस्या नहीं थी)।
सिस्टम लॉग में निम्न इवेंट दिखाई दिया:
The system time has changed to 2019-01-29T12:12:28.500000000Z from 2019-01-29T13:12:27.923115700Z.
Change Reason: System time synchronized with the hardware clock.
इस समस्या के समाधान के रूप में, HP ROM संस्करण को कम से कम 1.5 तक अपडेट करने का सुझाव देता है। यह ROM-Based Setup Utility (RBSU) का संस्करण है जिसमें टाइम रीसेट बग नहीं है।
या वर्कअराउंड समाधान के रूप में, आप सेट कर सकते हैं कि BIOS Windows को UTC सिस्टम समय प्रदान करता है (लोकल समय के बजाय)। ऐसा करने के लिए, जैसा कि हमने ऊपर बताया, आपको रजिस्ट्री कुंजी HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation में नाम RealTimeIsUniversal और मान 1 वाला पैरामीटर बनाना होगा।