אובונטו מאבדת זמן לאחר אתחול המחשב. אם השעה שגויה ב-Windows או Linux. הגדרת חלונות לעבודה באמצעות utc

01.02.2024

משתמשים חדשים רבים שזה עתה עברו ללינוקס ממערכת ההפעלה Windows, ועדיין מריצים מערכת זו מעת לעת, מתמודדים עם הבעיה שלאחר טעינת Windows באובונטו, הזמן הולך אחורה או אחורה מספר שעות, ולאחר מכן לאחר מספר אתחולים מחדש כבר קשה להבין מה השעה עכשיו.

כל זה קורה עקב הבדלים בפורמט אחסון הזמן במערכות הפעלה אלו. וזה יקרה בכל פעם שאתה אתחול מחדש, לא משנה כמה אתה מגדיר את הזמן הנכון. אבל את הבעיה הזו אפשר לפתור. ואפילו בכמה אופנים. במאמר זה נבחן כיצד לפתור את בעיית הזמן ללכת לאיבוד באובונטו ובווינדוס.

כפי שכבר אמרתי, הבעיה היא בפורמטים שונים לאחסון ושחזור זמן. ישנם שני סוגים של שעונים במחשב. שעוני חומרה פועלים תמיד, גם כשהמחשב כבוי ושעון התוכנה מובנה בקרנל. כאשר המחשב מופעל, הערך של שעון החומרה נכתב לשעון התוכנה, ובהמשך מערכת ההפעלה לוקחת את הזמן משם. אבל Windows ולינוקס פועלים אחרת עם שני השעונים האלה. ישנן שתי דרכים לעבוד:

  • UTC- שעוני החומרה והתוכנה מבוססים על שעון גריניץ'. כלומר, השעון נותן זמן אוניברסלי באזור זמן אפס. לדוגמה, אם אזור הזמן שלך הוא GMT+3, קייב, אז השעון יהיה מאחורי שלוש שעות. ומשתמשים מקומיים מוסיפים לזמן הזה תיקון לאזור הזמן, למשל, בתוספת +3. כל משתמש מוסיף את התיקון הדרוש לו. זה נעשה בשרתים כך שכל משתמש יוכל לקבל את השעה הנכונה לאזור הזמן שלו.
  • זמן מקומי- בגרסה זו, שעון התוכנה פועל גם לפי שעון גריניץ', אך שעון החומרה פועל לפי השעה של אזור הזמן המקומי. אין הבדל עבור המשתמש, אתה עדיין צריך להוסיף התאמה לאזור הזמן שלך. אבל בעת טעינה וסנכרון של השעה, Windows מפחית 3 שעות (או התאמה אחרת של אזור זמן) מזמן החומרה כך שזמן התוכנה יהיה נכון.

אז למה זמן אובונטו ו-Windows הולך לאיבוד? נניח ש-Windows פועל, ועם הזמן הכל בסדר שם, הוא נשמר בפורמט זמן מקומי. אבל כשאתה מאתחל ללינוקס, מערכת ההפעלה לוקחת את Localtime וחושבת שזה UTC. כך, המשתמש ייקח את הזמן הנכון ממילא ויוסיף לו תיקון לאזור הזמן. לכן, השעה כבר לא תהיה נכונה.

לאחר מכן, תיקנת את השעה, ועכשיו שעון החומרה עובד ב-UTC. אבל אז טען את Windows. המערכת חושבת שזה Localtime וכדי להגדיר את זמן התוכנה הנכון, מוסיפה תיקון אזור זמן לחומרה, למשל במקרה שלנו +3. ואז כל משתמש מחיל את התיקון הזה שוב והשעה כבר כבויה, שוב.

הדרך הבטוחה היחידה לפתור את הבעיה היא לגרום לשתי המערכות לעבוד באותו פורמט, וזה בכלל לא קשה. יתר על כן, אתה יכול ללכת בשתי דרכים: או לגרום ל-Windows לעבוד ב-UTC, או לינוקס בפורמט Localtime, שזה לא לגמרי נכון, אבל בהחלט אפשרי. אז בואו נעבור לפתרון הבעיה של הזמן ללכת לאיבוד באובונטו.

הגדרת Windows לעבודה ב-UTC

לכן, אם אתה נתקל בבעיות תזמון של Windows ו-Linux בעת מעבר בין מערכות הפעלה, הדרך הטובה ביותר היא לאלץ את Windows לעבוד בפורמט נכון והגיוני יותר. כדי לעשות זאת, פשוט הוסף מפתח רישום אחד. אתה יכול לעשות זאת עם פקודה אחת במסוף. כדי לפתוח את המסוף ב-Windows 10, הזז את העכבר לפינה השמאלית התחתונה ולאחר מכן לחץ על הכפתור הימני. מתפריט ההקשר, בחר שורת פקודה (מנהל):

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

ועבור 64 סיביות, עליך להשתמש בסוג הערך REG_QWORD:

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

כמעט מוכן, אבל שירות הזמן של Windows, ללא קשר להגדרה זו, יכתוב את השעה בפורמט מקומי בעת עדכון דרך האינטרנט, כך שנוח להשבית את השירות הזה. כדי לעשות זאת, הפעל:

> sc config w32time start= מושבת

איך אני יכול להחזיר אותו?

אם אתה רוצה להחזיר הכל כמו שהיה, אז זה יכול להיעשות בקלות ככל האפשר. ראשית נחזיר את מפתח הרישום למיקום הנכון:

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0

והפעל את שירות הסנכרון בחזרה:

> sc config w32time start= demand

הגדרת לינוקס להפעלת זמן מקומי

כברירת מחדל, לינוקס משתמשת בפורמט זמן UTC, אך אם אובונטו 16.04 מתעסק עם זמן Windows, אתה יכול בקלות רבה לאלץ את המערכת לאחסן זמן מקומי בטיימר החומרה. בכל ההפצות המשתמשות ב-Systemd, כולל אובונטו 16.04, כל מה שאתה צריך לעשות הוא להפעיל את הפקודה:

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

כדי להציג את המצב הנוכחי של שעוני החומרה והתוכנה, הפעל:

sudo timedatectl

סיימת, כעת תוכל להפעיל מחדש את המחשב ולהפעיל את Windows כדי לוודא שהשעה לא תלך לאיבוד בעת אתחול מחדש. במערכות אובונטו ישנות יותר, עליך לערוך את הקובץ /etc/default/rcS ולהחליף את UTC=yes ב-UTC=no. אתה יכול לעשות זאת עם הפקודה:

sudo sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS

איך אני יכול להחזיר אותו?

שוב, אתה יכול להחזיר הכל כפי שהיה בפקודה אחת:

sudo timedatectl set-local-rtc 0

ובהפצות ישנות יותר של אובונטו:

sudo sed -i "s/UTC=no/UTC=yes/" /etc/default/rcS

מסקנות

זה הכל. כעת, אם נתקלתם בבעיה בווינדוס 10 - הזמן אבוד באובונטו או בכל הפצת לינוקס אחרת, כבר תדעו איך לפתור אותה בשתי שיטות עבודה לחלוטין. אם יש לך שאלות, שאל בתגובות!
הבנו איך להגדיר את השעה הנכונה באובונטו ובווינדוס כדי שאזורי זמן לא יתבלבלו, אבל מה הם אזורי זמן ולמה הם נחוצים בוא נסיים את הסרטון על זה:

במצב UEFI (אתחול מאובטח). זמן ה-BIOS שלי נכון.

כשאני מאתחל באובונטו ואז מאתחל ל-Windows 10, זה מראה את הזמן הלא נכון. אני צריך לתקן את זה באופן ידני או מקוון ב-Windows 10 וכשאני אתחול מחדש ב-Windows 10 זה לא בעיה. השעון מראה את השעה הנכונה. ואז כשאני מאתחל ללינוקס השעון תקין, אבל כשחוזרים ל-Windows 10 השעון מתחיל לעבוד שוב.

מערכות הפעלה מאחסנות ומחזירות זמן בשעון חומרה הממוקם על לוח האם שלך כדי לעקוב אחר הזמן גם כאשר המערכת אינה מופעלת. רוב מערכות ההפעלה (Linux/Unix/Mac) מאחסנות את השעה על שעון החומרה כ-UTC כברירת מחדל, אם כי מערכות מסוימות (בעיקר Microsoft Windows) מאחסנות את השעה על שעון החומרה כזמן "מקומי". זה גורם לבעיות במערכת אתחול כפול אם שתי המערכות מתייחסות לשעון החומרה בצורה שונה.

היתרון בשימוש בשעון חומרה כ-UTC הוא שאינך צריך לשנות את שעון החומרה בעת מעבר בין אזורי זמן או כאשר שעון הקיץ (DST) מתחיל או מסתיים, שכן ל-UTC אין קיזוז זמן או זמן.

שינוי לינוקס לשימוש בזמן מקומי קל ואמין יותר משינוי של Windows לשימוש ב-UTC, כך שמערכות Linux/Windows אתחול כפול משתמשות בדרך כלל בזמן מקומי.

מאז Intrepid (8.10), UTC = yes הוא ברירת המחדל.

הפוך את Windows להשתמש ב-UTC

הערה. שיטה זו לא נתמכה במקור ב-Windows Vista וב-Server 2008, אך חזרה עם Vista SP2, Windows 7, Server 2008 R2 ו-Windows 8/8.1.

כך ש-MS Windows מחשבת את הזמן משעון החומרה בפורמט UTC.

צור קובץ בשם WindowsTimeFixUTC.reg עם התוכן הבא ולאחר מכן לחץ עליו פעמיים כדי למזג את התוכן לתוך הרישום:

עורך הרישום של Windows גרסה 5.00 "RealTimeIsUniversal"=dword:00000001

הערה. שירות Windows Time עדיין יתעד זמן מקומי ב-RTC ללא קשר להגדרת הרישום לעיל כאשר הוא כבוי, כך שנוח להשבית את שירות Windows Time באמצעות פקודה זו (אם נדרש סנכרון זמן בזמן ש-Windows משתמש בסנכרון זמן כלשהו של צד שלישי ):

Sc config w32time start= מושבת

בטל את השינוי

אתה יכול ליצור קובץ עם התוכן הבא ולאחר מכן ללחוץ עליו פעמיים כדי למזג את השינויים המקוריים כמו לעיל:

עורך הרישום של Windows גרסה 5.00 "RealTimeIsUniversal"=-

אם שירות Windows Time הושבת, הפעל אותו שוב באמצעות הפקודה:

Sc config w32time start= demand

הפוך את לינוקס לזמן "מקומי".

כדי לומר למערכת אובונטו שלך ששעון החומרה מוגדר לזמן "מקומי":

  1. שנה /etc/default/rcS
  2. הוסף או שנה את הסעיף הבא

    # הגדר את UTC=כן אם שעון החומרה שלך מוגדר ל-UTC (GMT) UTC=לא

מערכות אובונטו 15.04 ומעלה (למשל אובונטו 16.04 LTS):

    פתח מסוף והפעל את הפקודה הבאה

    אם ברצונכם לראות באתר שלנו תשובות לשאלותיכם בכל הקשור לטכנולוגיית אפל, מערכת ההפעלה Mac OS X (והשקה שלה במחשב), כתבו לנו דרך או.

    קיבלנו את השאלה הבאה:

    אחר הצהריים טובים!
    Hackintosh מריץ את Snow Leopard, Windows 7 ואובונטו. הזמן הולך לאיבוד כל הזמן לאחר אתחול מחדש ((Mac OS תמיד מחזיר אותו 4-5 שעות אחורה! ספר לי איך לתקן את הבעיה

    בעיה עם סנכרון זמןרלוונטי לא רק עבור Hackintoshs, אלא גם עבור Macs אמיתיים, עליהם Windows פועל באמצעות Boot Camp. הסיבה לכך פשוטה מאוד: Mac OS X תמיד מניח שהזמן שנרשם ב-BIOS (או EFI) כתוב שם בפורמט UTC- במילים אחרות, לפי גריניץ'. אליו היא מוסיפה את התיקון המתאים לאזור הזמן.

    אבל Windows עושה דברים אחרת: זה קורא ישירותזמן מה-BIOS. ואם תשנה את הזמן הזה, או שהוא מסונכרן אוטומטית, אז זה יירשם ב-BIOS בפורמט המתוקן: UTC+תיקון.

    איך לפתור את הסתירה הזו? ישנן שתי גישות: אחת מהצד של Mac OS, השנייה מהצד של Windows ו-Linux.

    פתרון באמצעות Mac OS X

    בוא נגיד מיד שזו לא הדרך הטובה ביותר. השורה התחתונה היא שעבור Mac OS X אנחנו מגדירים את אזור הזמן ל-Greenwich Mean Time. לדוגמה, בהגדרות (מרחוק תאריך ושעה, לשונית אזור זמן) בחר כישוב שלך רייקיאוויק.

    בנוסף, בלשונית "תאריך ושעה"הקפד לבטל את סנכרון הזמן האוטומטי, אחרת זה יתברר אפילו יותר גרוע מבעבר.

    לאחר השלבים האלה, השעה ב-Windows תמיד תהיה נכונה, ו-Mac OS X לא יבלבל אותו. אבל למה זו לא הדרך הטובה ביותר? העובדה היא שאם אתה מסנכרן גאדג'ט כלשהו עם Mac OS X - למשל, אייפון, אז אזור הזמן הלא נכון יעוות נתונים חשובים רבים. לדוגמה, שעת ה-SMS הנכנסת תהיה גם גריניץ'.

    פתרון באמצעות Windows ולינוקס

    דרך נוספת היא לאפשר ל-Windows ולינוקס לקרוא את הזמן מה-BIOS באותו אופן שבו Mac OS קורא. למרבה המזל, הזדמנות כזו אכן מסופקת, אבל היא חבויה עמוק מאוד.

    ב-Windows, תצטרך להפעיל את התוכנית מחלון ההפעלה regeditעורך רישום.לאחר מכן עבור לשרשור \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformationוליצור שם ערך DWORD עם השם RealTimeIsUniversalוערך השווה לאחד:

    בלינוקס (לפחות באובונטו), אתה צריך לערוך את הקובץ /etc/default/rcSבכל עורך טקסט ולהחליף את תוכן הפרמטר "UTC=לא"עַל "UTC=כן".

    לאחר מכן, אתחל מחדש ל-Mac OS X והגדר את אזור הזמן המקורי שלך, במקביל תוכל להפעיל סנכרון זמן אוטומטי דרך האינטרנט. לאחר אתחול מחדש ב-Windows וב-Ubuntu תראה בדיוק את אותו הזמן.

    במאמר זה דיברתי על הסיבות והפתרונות שלהן אם התאריך והשעה במחשב שלך אובדים. מאמר זה עסק בבעיות נפוצות ללא קשר למספר מערכות ההפעלה המותקנות במחשב הנייד וביחידת המערכת.

    היום נדבר על הבעיה כאשר השעה, כלומר השעון, משתבשת במספר שעות, כאילו אזור הזמן משתנה. בעיה זו התעוררה עבורי לאחר שהתחלתי להשתמש בשתי מערכות הפעלה Linux ו-Windows במחשב שלי בו זמנית.

    מסתבר שהבעיה הזו לא כל כך חדשה. כדי לפתור בעיה זו נכתבו בעיות רבות באינטרנט.

    מהות הבעיה היא אם השעה לא נכונה.

    ישנן שתי מערכות הפעלה במחשב האישי, כלומר לינוקס וחלונות.

    אני מפעיל לינוקס - השעה רגילה.

    עשיתי קצת עבודה ואתחול לחלונות - השעה מראה כמה שעות קודם (או מאוחר יותר, אני לא זוכר בדיוק).

    קבעתי את השעה, הגדרתי סנכרון אוטומטי עם האינטרנט, אבל שום דבר לא עזר. אי אפשר לפתור את הבעיה בצורה פשוטה. חיפשתי באינטרנט ומסתבר שהבעיה היא שלמחשב יש שני סוגי שעונים, חומרה ותוכנה.

    שעון החומרה תמיד פועל, גם כשהמחשב כבוי, יש סוללה נוספת, מצבר על הלוח. זה שומר על חלוף הזמן וחוסך הגדרות.

    זמן התוכנית, הוא נכתב לתוכנית כאשר הוא מופעל ואז נלקח משם.

    Windows ולינוקס עובדים אחרת עם שעונים אלה, ומכאן תקלת התזמון בעת ​​אתחול מחדש ממערכת הפעלה אחת לאחרת.

    כאן. מה כתוב על זה באתרים אחרים על זה:

    איך פותרים את הבעיה הזו?

    הפוך את Windows ולינוקס לעבוד אותו הדבר עם שעון החומרה הזה.

    באינטרנט, בנושא "הזמן אבוד", נכתב שהפתרון הנכון יהיה לגרום ל-Windows לעבוד כהלכה. לינוקס עובדת כמו שצריך, לפי אנשים רבים.

    זה אומר שצריך לגרום ל-Windows לעבוד כמו לינוקס לאורך זמן.

    תהליך פתרון הבעיה עצמו.

    עליך להוסיף את המפתח לרישום של מערכת ההפעלה Windows שלך.

    ישנן דרכים להוסיף מפתח זה באמצעות פקודה, באמצעות שורת הפקודה. נעשה הכל ביד לפי הסדר. ולעצמנו יהיה ברור מה עשינו, והמוח שלנו יעבוד קצת.

    התקשר לחלון הביצוע באמצעות קיצור מקלדת +R.או פשוט בחר בצע מהתפריט.

    הקלד regedit ולחץ על אישור.

    עורך הרישום ייפתח.

    עבור אל סניף הרישום לאורך השביל HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    שם, בחצי השמאלי של העורך, לחץ לחיצה ימנית ולחץ על צור פרמטר

    עבור מערכות x32 סיביות DWORD

    עבור מערכות QWORD x64 סיביות

    תן לזה את השם RealTimeIsUniversal

    משתמשים חדשים רבים שזה עתה עברו ללינוקס ממערכת ההפעלה Windows, ועדיין מריצים מערכת זו מעת לעת, מתמודדים עם הבעיה שלאחר טעינת Windows באובונטו, הזמן הולך אחורה או אחורה מספר שעות, ולאחר מכן לאחר מספר אתחולים מחדש כבר קשה להבין מה השעה עכשיו. כל זה קורה עקב הבדלים בפורמט אחסון הזמן במערכות הפעלה אלו. וזה יקרה בכל פעם שאתה אתחול מחדש, לא משנה כמה אתה מגדיר את הזמן הנכון. אבל את הבעיה הזו אפשר לפתור. ואפילו בכמה אופנים. במאמר זה נבחן כיצד לפתור את בעיית הזמן ללכת לאיבוד באובונטו ובווינדוס.

    הגדרת Windows לעבודה עם UTC

    לכן, אם אתה נתקל בבעיות תזמון של Windows ו-Linux בעת מעבר בין מערכות הפעלה, הדרך הטובה ביותר היא לאלץ את Windows לעבוד בפורמט נכון והגיוני יותר. כדי לעשות זאת, פשוט הוסף מפתח רישום אחד. אתה יכול לעשות זאת עם פקודה אחת במסוף. כדי לפתוח את המסוף ב-Windows 10, הזז את העכבר לפינה השמאלית התחתונה ולאחר מכן לחץ על הכפתור הימני. מתפריט ההקשר, בחר שורת פקודה (מנהל):

    > Reg add HKLM\SYSTEM\CurrentControlSet\Control\Ti meZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

    ועבור 64 סיביות, עליך להשתמש בסוג הערך REG_QWORD:

    > Reg add HKLM\SYSTEM\CurrentControlSet\Control\Ti meZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

    Target="_blank">https://losst.ru/wp-content/uploads/2016/10/utc-windows-600x139-300x70.png 300w" width="600" />

    כמעט מוכן, אבל שירות הזמן של Windows, ללא קשר להגדרה זו, יכתוב את השעה בפורמט מקומי בעת עדכון דרך האינטרנט, כך שנוח להשבית את השירות הזה. כדי לעשות זאת, הפעל:

    > sc config w32time start= מושבת

    איך לחזור אחורה?

    אם אתה רוצה להחזיר הכל כמו שהיה, אז זה יכול להיעשות בקלות ככל האפשר. ראשית נחזיר את מפתח הרישום למיקום הנכון:

    > Reg add HKLM\SYSTEM\CurrentControlSet\Control\Ti meZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0

    והפעל את שירות הסנכרון בחזרה:

    > sc config w32time start= demand

    הגדרת LINUX ל-LOCALTIME

    כברירת מחדל, לינוקס משתמשת בפורמט זמן UTC, אך אם אובונטו 16.04 מתעסק עם זמן Windows, אתה יכול בקלות רבה לאלץ את המערכת לאחסן זמן מקומי בטיימר החומרה. בכל ההפצות המשתמשות ב-Systemd, כולל אובונטו 16.04, כל מה שאתה צריך לעשות הוא להפעיל את הפקודה:

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

    כדי להציג את המצב הנוכחי של שעוני החומרה והתוכנה, הפעל:

    Sudo timedatectl

    Target="_blank">https://losst.ru/wp-content/uploads/2016/10/rtc-localtime-600x242-300x121.jpg 300w" width="600" />

    סיימת, כעת תוכל להפעיל מחדש את המחשב ולהפעיל את Windows כדי לוודא שהשעה לא תלך לאיבוד בעת אתחול מחדש. במערכות אובונטו ישנות יותר, עליך לערוך את הקובץ /etc/default/rcS ולהחליף את UTC=yes ב-UTC=no. אתה יכול לעשות זאת עם הפקודה:

    Sudo sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS

    איך לחזור אחורה?

    שוב, אתה יכול להחזיר הכל כפי שהיה בפקודה אחת:

    Sudo timedatectl set-local-rtc 0

    ובהפצות ישנות יותר של אובונטו:

    Sudo sed -i "s/UTC=no/UTC=yes/" /etc/default/rcS

    מסקנות

    זה הכל. כעת, אם נתקלתם בבעיה בווינדוס 10 - הזמן אבוד באובונטו או בכל הפצת לינוקס אחרת, כבר תדעו איך לפתור אותה בשתי שיטות עבודה לחלוטין.