সিস্টেম ডুয়াল বুটে উইন্ডোজ এবং লিনাক্স উভয় থাকলে সিস্টেম ক্লক সিঙ্ক করা অসম্ভব লাগে। এক OS-এ ক্লক চেঞ্জ করলে অন্য OS-এ সমস্যা ফিক্স হয় না। এর কারণ উইন্ডোজ এবং ইউনিক্স-ভিত্তিক OS-এর মধ্যে টাইম-কিপিং মেথডোলজি নিয়ে ডিসঅ্যাগ্রিমেন্ট। خوشখবর, এর সহজ সমাধান আছে।
এটি কেন হয়?
কম্পিউটার বর্তমান সময় মাদারবোর্ডের একটি ক্লকে স্টোর করে। এতে কম্পিউটার অফ থাকাকালীনও টাইম ট্র্যাক করতে পারে। টাইম জোন অ্যাকাউন্ট করার জন্য ভিন্ন OS ভিন্ন মেথড ব্যবহার করে। উইন্ডোজ অনুমান করে লোকাল টাইম মাদারবোর্ডে স্টোরড, তাই কোনো টাইম জোন অফসেট অ্যাপ্লাই করে না। লিনাক্স অন্যদিকে মাদারবোর্ডের টাইমকে UTC (Greenwich Mean Time) হিসেবে ইন্টারপ্রেট করে এবং লোকাল টাইম দেখাতে টাইম জোন অফসেট অ্যাপ্লাই করে।
দুই সিস্টেমই স্বতন্ত্রভাবে ভালো কাজ করে। সমস্যা হয় ডুয়াল বুটে, একই মাদারবোর্ডে উইন্ডোজ এবং লিনাক্স রান করাতে। শেয়ার্ড টাইম স্টোরেজ বাধ্য করলে ক্লকগুলো সিঙ্ক হয় না।
দুটি উপায়ে ফিক্স করা যায়: লিনাক্স কীভাবে স্টোরড টাইম ইন্টারপ্রেট করে সেটি বদলান, অথবা উইন্ডোজের সাথে একই কাজ করা।
অপশন ১: লিনাক্সকে লোকাল টাইম ব্যবহার করানো
লিনাক্স এবং উইন্ডোজকে টাইমে একমত করার সবচেয়ে নির্ভরযোগ্য উপায় লিনাক্সের টাইম-কিপিং মেথডোলজি বদলানো। যদিও এক্সপ্লিসিটলি সাপোর্টেড নয়, উইন্ডোজে একই কাজ করার চেয়ে কিছুটা বেশি নির্ভরযোগ্য। systemd ব্যবহারকারী সব লিনাক্স ফ্লেভার (Ubuntu, Fedora, Red Hat, Debian, Mint) এ কাজ করে। উইন্ডোজ টাইম বদলাও সাধারণত কাজ করে, কিন্তু থার্ড-পার্টি সফ্টওয়্যার যা এক্সপেক্ট করে স্টোরড টাইম লোকাল টাইম, সেটি কখনো কখনো ইনস্ট্যাবিলিটি সৃষ্টি করে। তাই এই অপশন কিছুটা কম পছন্দনীয়।
১. টার্মিনাল খুলে নিচের কমান্ড চালান:
timedatectl set-local-rtc 1 --adjust-system-clock

এটি সিস্টেমকে বলবে মাদারবোর্ডের স্টোরড টাইমকে লোকাল টাইম হিসেবে ইন্টারপ্রেট করতে। লিনাক্স আর মাদারবোর্ডের টাইমে টাইম জোন অ্যাডজাস্টমেন্ট করবে না। ফলে ক্লকগুলো সিঙ্ক হবে।
কখনো রিভার্স করতে চাইলে ১-কে ০ করুন:
timedatectl set-local-rtc 0 --adjust-system-clock
অপশন ২: উইন্ডোজকে UTC ব্যবহার করানো
উইন্ডোজ সিস্টেম টাইম देखने এর পদ্ধতি বদলাও করা যায়। এই টুইক উইন্ডোজকে মাদারবোর্ডের টাইমকে UTC হিসেবে ইন্টারপ্রেট করাবে, যা লিনাক্স তারপর সঠিক টাইম জোন হিসেবে ইন্টারপ্রেট করবে। যদিও সাধারণত ভালো কাজ করে, কিছু অ্যাপ্লিকেশন মাদারবোর্ড টাইম লোকাল টাইম এক্সপেক্ট করে। ফলে হার্ড-টু-ট্র্যাক বাগ কখনো কখনো আসতে পারে। এতে এই অপশন কিছুটা কম ডিজাইরেবল।
১. Settings অ্যাপে "Time & Language"-এ "Set time automatically" ডিসএবল করুন। এটি উইন্ডোজকে আমাদের চেঞ্জ রিভার্ট করতে বাধা দেবে।

২. স্টার্ট মেনুতে regedit টাইপ করে Registry Editor খুলুন।

৩. নিচের রেজিস্ট্রি কী খুঁজুন (দ্রুত যেতে অ্যাড্রেস বারে পেস্ট করুন):
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

৪. বাম প্যানেলে "TimeZoneInformation" কীতে রাইট-ক্লিক > New > DWORD (32-bit) Value।

৫. নতুন ভ্যালুর নাম "RealTimeIsUniversal" দিন।

৬. ডাবল-ক্লিক করে ভ্যালু "১" সেট করুন, OK ক্লিক করুন।

উপসংহার
ডুয়াল-বুটিং সিস্টেমে সিস্টেম ক্লক সিঙ্ক করার সবচেয়ে সেফ উপায় লিনাক্সের টাইম ইন্টারপ্রিটেশন বদলানো। সেটি না হলে (অথবা macOS ব্যবহার করলে) উইন্ডোজ রেজিস্ট্রি এডিট করে উইন্ডোজের মাদারবোর্ড টাইম বুঝতে পদ্ধতি বদলান।