حل مشکل نمایش ساعت در دوال-بوت لینوکس و ویندوز


کامپیوتر شما زمان روی یک ساعت سخت افزاری در مادربورد ذخیره میکنه، که حتی وقتی کامپیوتر هم خاموش بود این ساعت از بین نره. ویندوز بصورت پیشفرض زمان محلی رو در نظر میگیره درحالیکه لینوکس زمان رو بر اساس ساعت جهانی (UTC) و تفاوت اون با موقعیت مکانی شما (offset) ذخیره میکنه. این باعث میشه وقتی شما همزمان از دو سیستم عامل ویندوز و لینوکس استفاده میکنید (Dual-Boot) یکی از سیستم عامل ها زمان رو درست نشون نده!

تفاوت نمایش ساعت در لینوکس و ویندوز
تفاوت نمایش ساعت در لینوکس و ویندوز



راه حل اول : کاری کنیم که لینوکس از زمان محلی استفاده کنه!

اگر کاری کنیم که لینوکس زمان رو بصورت محلی، همانطور که ویندوز اینکارو انجام میده ذخیره کنه احتمالا بهترین گزینه است!

ویندوز در تنظیمات رجیستری خودش گزینه ای داره که که زمان رو بصورت جهانی (UTC) ذخیره بکنه، اما این ممکنه برای نرم افزار های دیگه ویندوز که فرض بر این میگیرن که زمان محلی هست دچار مشکل بکنه و همچنین با قابلیت همگام سازی زمان ویندوز با اینترنت تداخل داره.

مراحلی که انجام میدیم برای اینکه لینوکس شما از زمان محلی استفاده بکنه بسته به اینکه شما از چه توزیعی استفاده میکنید ممکنه متفاوت باشه. اگرچه در هر توزیعی که از systemd استفاده میکنه شما میتونید با دستور timedatectl این تغییر رو انجام بدید. این روش روی نسخه های جدید اوبونتو، فدورا، ردهت، دبیان، مینت و توزیع های دیگه ای که از systemd استفاده میکنن جواب میده.

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

برای دیدن تنظیمات فعلی سیستم دستور زیر اجرا کنید :

timedatectl

اگر شما عبارت "RTC in local TZ: yes" رو مشاهده کردید، نگهداری زمانی لینوکس روی حالت محلی بجای جهانی تنظیم شده. این دستور به شما اخطار میده که این حالت کامل پشتیبانی نمیشه و شما زمانی که بین موقعیت های زمانی مختلف (time zones) تغییر میکنید یا در حالت Daylight Saving ممکنه دچار مشکل بشه. اما این روش بهتر از گزینه پشتیبانی (UTC) توسط ویندوزه و وقتی شما دو-بوته (dual-boot) هستید و ویندوز رو بالا میارید، ویندوز خودش تنظیمات daylight saving برای شما انجام میده و از این بابت جای نگرانی نیست.

اگر یه زمانی خواستید که تنظیمات رو به حالت قبل برگردونید از دستور زیر استفاده کنید :

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




راه حل دوم : کاری کنیم که ویندوز از زمان جهانی استفاده کنه!

این که کاری کنیم ویندوز از زمان جهانی استفاده بکنه، بهترین روش نیست. شما میتونید در رجیستری تغییراتی ایجاد کنید که ویندوز رو مجبور به استفاده از زمان جهانی (UTC) کنید، اما این روش یجورایی عوارضش از روش اول بیشتره.

اگر واقعا میخواید این کار رو انجام بدید، اول باید قابلیت تنظیم زمان خودکار توسط اینترنت رو غیرفعال کنید. این باعث میشه مطمئن بشید در حین همگام سازی با اینترنت ساعت اشتباهی روی سیستمتون تنظیم نمیشه.

در ویندوز 10 به مسیر زیر برید :

Settings > Time & language

و گزینه "Set time automatically" رو غیرفعال کنید.

غیرفعال سازی تنظیم ساعت خودکار
غیرفعال سازی تنظیم ساعت خودکار

در ویندوز 7 روی ساعت در تسک بار کلیک راست کنید و گزینه "Adjust date/time" رو انتخاب کنید، سپس تب "Internet Time" انتخاب و روی گزینه "Change Settings" کلیک کنید. تیک گزینه "Synchronize with Internet time server" بردارید و OK کنید.

این مقاله ترجمه ای است از مقاله زیر با کمی تغییر :

https://www.howtogeek.com/323390/how-to-fix-windows-and-linux-showing-different-times-when-dual-booting/