Διαφορετικές ώρες για windows και ubuntu. Ο χρόνος χάνεται στο Ubuntu και στα Windows

Υπάρχουν φορές που κατά την εγκατάσταση ενός δεύτερου συστήματος, αυτό συμβαίνει συνήθως linux, ο χρόνος στα συστήματα αρχίζει να πηγαίνει στραβά, για παράδειγμα, εργαζόσασταν κάτω από το δικό σας linuxκαι αποφάσισε να μετακομίσει σε παράθυρα, και διαπίστωσε ότι η ώρα και η ημερομηνία είναι εντελώς λανθασμένες, ή το αντίστροφο, αυτό οφείλεται σε διαφορές στη μορφή ώρας, αυτά τα λειτουργικά συστήματα λειτουργούν με αυτό διαφορετικά, λίγη θεωρία και έτσι, ας ξεκινήσουμε με linux, αυτά τα λειτουργικά συστήματα λειτουργούν με την UTC
UTC- Τα ρολόγια υλικού και λογισμικού βασίζονται στη μέση ώρα του Γκρίνουιτς. Δηλαδή, το ρολόι δίνει καθολική ώρα στη ζώνη ώρας μηδέν. Για παράδειγμα, εάν η ζώνη ώρας σας είναι GMT+3, Μόσχα, τότε το ρολόι θα είναι τρεις ώρες πίσω. Και οι χρήστες προσθέτουν τοπικά σε αυτήν την ώρα μια διόρθωση για τη ζώνη ώρας, για παράδειγμα, συν +3. Κάθε χρήστης προσθέτει την τροποποίηση που χρειάζεται. Αυτό γίνεται στους διακομιστές, έτσι ώστε κάθε χρήστης να μπορεί να έχει τη σωστή ώρα για τη ζώνη ώρας του.
παράθυραμε τη σειρά του λειτουργεί με Τοπική ώρα
Τοπική ώρα- σε αυτήν την έκδοση, το ρολόι λογισμικού λειτουργεί επίσης σύμφωνα με τη μέση ώρα Γκρίνουιτς, αλλά το ρολόι υλικού λειτουργεί σύμφωνα με την ώρα της τοπικής ζώνης ώρας. Δεν υπάρχει διαφορά για τον χρήστη, πρέπει να προσθέσετε μια προσαρμογή στη ζώνη ώρας σας. Αλλά κατά τη φόρτωση και τον συγχρονισμό της ώρας, τα Windows αφαιρούν 3 ώρες (ή κάποια άλλη προσαρμογή ζώνης ώρας) από την ώρα υλικού, έτσι ώστε η ώρα λογισμικού να είναι σωστή.
Έτσι, φαίνεται ότι έχουμε τακτοποιήσει τη θεωρία, τώρα ας προχωρήσουμε στην πράξη, και έτσι, στην αρχή θα φορτώσουμε τα παράθυρα, εκκινήστε την κονσόλα ως διαχειριστής και εκτελέστε εντολές για ένα σύστημα 32 bit
Προσθήκη Reg HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
ή για 64 bit
Προσθήκη Reg HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
αλλά το ρολόι θα εξακολουθεί να συγχρονίζεται με την ώρα του διακομιστή· για να το κάνετε αυτό, απενεργοποιήστε την υπηρεσία συγχρονισμού ρολογιού
sc config w32time start= απενεργοποιημένο
Τώρα κάνουμε επανεκκίνηση του συστήματός μας και ξεκινάμε linuxσυνδεθείτε στο τερματικό κάτω από ρίζακαι εκτελέστε τις εντολές
timedatectl set-local-rtc 1 --adjust-system-clock
Και
sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS
κοιτάξτε την κατάσταση του ρολογιού υλικού
sudo timedatectl
Τώρα κάνουμε επανεκκίνηση ξανά, εισάγουμε το bios και ορίζουμε την ημερομηνία και την ώρα, ελέγχουμε...
αν για κάποιο λόγο χρειαστεί να τα απενεργοποιήσουμε όλα αυτά, τότε εκτελούμε τις εντολές στο Linux
timedatectl set-local-rtc 0
Και
sed -i "s/UTC=no/UTC=yes/" /etc/default/rcS
στα windows, κονσόλα ως διαχειριστής
Προσθήκη Reg HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
Και
sc config w32time start= demand
Μια άλλη επιλογή θα ήταν η ακόλουθη, σε linux debian και παράγωγα
εκτελέστε την εντολή για να ορίσετε την τοπική ώρα
sudo hwclock --τοπική ώρα --προσαρμογή
αν θέλουμε να το επιστρέψουμε πίσω
sudo hwclock --utc --προσαρμογή
τώρα ας ελέγξουμε
timedatectl | grep τοπικό
αν η απάντηση
RTC στην τοπική TZ: όχι
τότε ο χρόνος μας κυλάει σύμφωνα με τον Γκρίνουιτς, αλλά αν η απάντηση
RTC στην τοπική TZ: ναι
Αυτό σημαίνει ότι ο χρόνος μας κυλά σύμφωνα με το σύστημα που έχει καθιερωθεί
αυτό είναι όλο, νομίζω ότι σας ήταν χρήσιμο

Σε λειτουργία UEFI (Ασφαλής εκκίνηση). Η ώρα του BIOS μου είναι σωστή.

Όταν κάνω εκκίνηση στο Ubuntu και μετά εκκίνηση στα Windows 10, δείχνει τη λάθος ώρα. Πρέπει να το διορθώσω χειροκίνητα ή διαδικτυακά στα Windows 10 και όταν κάνω επανεκκίνηση στα Windows 10 δεν είναι πρόβλημα. Το ρολόι δείχνει τη σωστή ώρα. Και μετά όταν κάνω επανεκκίνηση στο Linux το ρολόι είναι σωστό, αλλά όταν επιστρέφω στα Windows 10 το ρολόι αρχίζει να λειτουργεί ξανά.

Τα λειτουργικά συστήματα αποθηκεύουν και ανακτούν την ώρα σε ένα ρολόι υλικού που βρίσκεται στη μητρική σας πλακέτα για να παρακολουθούν την ώρα ακόμα και όταν το σύστημα δεν τροφοδοτείται. Τα περισσότερα λειτουργικά συστήματα (Linux/Unix/Mac) αποθηκεύουν την ώρα στο ρολόι υλικού ως UTC από προεπιλογή, αν και ορισμένα συστήματα (κυρίως τα Microsoft Windows) αποθηκεύουν την ώρα στο ρολόι υλικού ως "τοπική" ώρα. Αυτό προκαλεί προβλήματα σε ένα σύστημα διπλής εκκίνησης εάν και τα δύο συστήματα χειρίζονται διαφορετικά το ρολόι υλικού.

Το πλεονέκτημα της χρήσης ενός ρολογιού υλικού ως UTC είναι ότι δεν χρειάζεται να αλλάζετε το ρολόι υλικού όταν μετακινείστε μεταξύ ζωνών ώρας ή όταν ξεκινά ή τελειώνει η θερινή ώρα (DST), καθώς το UTC δεν έχει μετατοπίσεις ώρας ή ώρας.

Η αλλαγή του Linux για χρήση τοπικής ώρας είναι ευκολότερη και πιο αξιόπιστη από την αλλαγή των Windows σε χρήση UTC, επομένως τα συστήματα διπλής εκκίνησης Linux/Windows χρησιμοποιούν συνήθως τοπική ώρα.

Από το Intrepid (8.10), το UTC = ναι είναι η προεπιλογή.

Κάντε τα Windows να χρησιμοποιούν UTC

Σημείωση. Αυτή η μέθοδος αρχικά δεν υποστηριζόταν σε Windows Vista και Server 2008, αλλά επέστρεψε με Vista SP2, Windows 7, Server 2008 R2 και Windows 8/8.1.

Έτσι, τα MS Windows υπολογίζουν την ώρα από το ρολόι υλικού σε μορφή UTC.

Δημιουργήστε ένα αρχείο με το όνομα WindowsTimeFixUTC.reg με το ακόλουθο περιεχόμενο και, στη συνέχεια, κάντε διπλό κλικ σε αυτό για να συγχωνεύσετε το περιεχόμενο στο μητρώο:

Windows Registry Editor Έκδοση 5.00 "RealTimeIsUniversal"=dword:00000001

Σημείωση. Η υπηρεσία ώρας των Windows θα εξακολουθεί να καταγράφει την τοπική ώρα στο RTC ανεξάρτητα από την παραπάνω ρύθμιση μητρώου όταν είναι απενεργοποιημένη, επομένως είναι βολικό να απενεργοποιήσετε την υπηρεσία ώρας των Windows χρησιμοποιώντας αυτήν την εντολή (εάν απαιτείται συγχρονισμός ώρας ενώ τα Windows χρησιμοποιούν συγχρονισμό ώρας τρίτου μέρους ):

Sc config w32time start= απενεργοποιημένο

Ακύρωση αλλαγής

Μπορείτε να δημιουργήσετε ένα αρχείο με το ακόλουθο περιεχόμενο και στη συνέχεια να κάνετε διπλό κλικ για να συγχωνεύσετε τις αρχικές αλλαγές όπως παραπάνω:

Windows Registry Editor Έκδοση 5.00 "RealTimeIsUniversal"=-

Εάν η υπηρεσία ώρας των Windows ήταν απενεργοποιημένη, ενεργοποιήστε την ξανά χρησιμοποιώντας την εντολή:

Sc config w32time start= demand

Κάντε το Linux «τοπική» ώρα

Για να πείτε στο σύστημά σας στο Ubuntu ότι το ρολόι υλικού έχει ρυθμιστεί σε "τοπική" ώρα:

  1. αλλάξτε το /etc/default/rcS
  2. προσθέστε ή αλλάξτε την παρακάτω ενότητα

    # Ρυθμίστε το UTC=ναι εάν το ρολόι του υλικού σας έχει ρυθμιστεί σε UTC (GMT) UTC=no

Ubuntu 15.04 και νεότερα συστήματα (π.χ. Ubuntu 16.04 LTS):

    ανοίξτε ένα τερματικό και εκτελέστε την ακόλουθη εντολή

    Εάν θέλετε να δείτε στον ιστότοπό μας απαντήσεις στις ερωτήσεις σας σχετικά με οτιδήποτε σχετίζεται με την τεχνολογία της Apple, το λειτουργικό σύστημα Mac OS X (και την κυκλοφορία του σε υπολογιστή), γράψτε μας μέσω ή.

    Λάβαμε την εξής ερώτηση:

    καλό απόγευμα!
    Το Hackintosh τρέχει το Snow Leopard, τα Windows 7 και το Ubuntu. Ο χρόνος χάνεται συνεχώς μετά από μια επανεκκίνηση ((το Mac OS τον επαναφέρει πάντα 4-5 ώρες! Πείτε μου πώς να διορθώσω το πρόβλημα

    Ένα πρόβλημα με συγχρονισμός χρόνουείναι σχετικό όχι μόνο για τα Hackintoshes, αλλά και για πραγματικούς Mac, στους οποίους εκτελούνται τα Windows μέσω του Boot Camp. Ο λόγος για αυτό είναι πολύ απλός: το Mac OS X πάντα υποθέτει ότι ο χρόνος που καταγράφεται στο BIOS (ή EFI) είναι γραμμένος εκεί στη μορφή UTC- με άλλα λόγια, σύμφωνα με τον Γκρίνουιτς. Σε αυτό προσθέτει την κατάλληλη διόρθωση για τη ζώνη ώρας.

    Αλλά τα Windows κάνουν τα πράγματα διαφορετικά: το κάνουν διαβάζει απευθείαςώρα από το BIOS. Και αν αλλάξετε αυτή τη φορά ή συγχρονιστεί αυτόματα, τότε θα εγγραφεί στο BIOS με τη διορθωμένη μορφή: UTC+correction.

    Πώς να λυθεί αυτή η αντίφαση; Υπάρχουν δύο προσεγγίσεις: μία από την πλευρά του Mac OS, η άλλη από την πλευρά των Windows και του Linux.

    Λύση με χρήση Mac OS X

    Ας πούμε αμέσως ότι αυτός δεν είναι ο καλύτερος τρόπος. Η ουσία είναι ότι για το Mac OS X ορίσαμε τη ζώνη ώρας σε Μέση ώρα Γκρίνουιτς. Για παράδειγμα, στις ρυθμίσεις (απομακρυσ ημερομηνία και ώρα, καρτέλα Ζώνη ώρας) επιλέξτε ως τοποθεσία σας Ρέικιαβικ.

    Επιπλέον, στην καρτέλα "Ημερομηνία και ώρα"Φροντίστε να απενεργοποιήσετε τον αυτόματο συγχρονισμό ώρας, διαφορετικά θα αποδειχθεί ακόμα χειρότερο από πριν.

    Μετά από αυτά τα βήματα, η ώρα στα Windows θα είναι πάντα σωστή και το Mac OS X δεν θα τη χαλάσει. Γιατί όμως δεν είναι αυτός ο καλύτερος τρόπος; Το γεγονός είναι ότι εάν συγχρονίσετε κάποιο gadget με Mac OS X - για παράδειγμα, ένα iPhone, τότε η λάθος ζώνη ώρας θα παραμορφώσει πολλά σημαντικά δεδομένα. Για παράδειγμα, η ώρα των εισερχόμενων SMS θα είναι επίσης Greenwich.

    Λύση με χρήση Windows και Linux

    Ένας άλλος τρόπος είναι τα Windows και το Linux να διαβάζουν την ώρα από το BIOS με τον ίδιο τρόπο που κάνει το Mac OS. Ευτυχώς, όντως παρέχεται μια τέτοια ευκαιρία, αλλά κρύβεται πολύ βαθιά.

    Στα Windows, θα πρέπει να εκτελέσετε το πρόγραμμα από το παράθυρο Εκτέλεση regeditΕπεξεργαστής μητρώου.Στη συνέχεια, πηγαίνετε στο νήμα \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformationκαι δημιουργήστε μια τιμή DWORD εκεί με το όνομα RealTimeIsUniversalκαι τιμή ίση με ένα:

    Στο Linux (τουλάχιστον στο Ubuntu), πρέπει να επεξεργαστείτε το αρχείο /etc/default/rcSσε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου και αντικαταστήστε τα περιεχόμενα της παραμέτρου "UTC=όχι"επί "UTC=ναι".

    Μετά από αυτό, κάντε επανεκκίνηση στο Mac OS X και ορίστε την εγγενή ζώνη ώρας σας, ταυτόχρονα μπορείτε να ενεργοποιήσετε τον αυτόματο συγχρονισμό ώρας μέσω Διαδικτύου. Μετά την επανεκκίνηση σε Windows και Ubuntu θα δείτε ακριβώς την ίδια ώρα.

    Η χρήση πολλαπλών λειτουργικών συστημάτων στον ίδιο υπολογιστή μερικές φορές προκαλεί σύγκρουση μεταξύ τους όταν χρησιμοποιούν το ίδιο πράγμα. Μερικές φορές αφορά κάτι τόσο απλό όσο ο χρόνος. Ακόμη και τέτοια δημοφιλή λειτουργικά συστήματα υπολογιστών όπως τα Windows και το Ubuntu δεν μπορούν να συνεννοηθούν και να αλλάζουν συνεχώς το χρόνο του άλλου σε λάθος.

    Οι λόγοι για αυτό το φαινόμενο είναι στην πραγματικότητα απλοί: τα Windows αντιλαμβάνονται την ώρα του συστήματος (η οποία εμφανίζεται στις ρυθμίσεις CMOS) ως τοπική (λαμβάνοντας υπόψη τη ζώνη ώρας) και το Ubuntu - σύμφωνα με το UTC (Μέση ώρα Γκρίνουιτς, χωρίς να λαμβάνει υπόψη το ζώνη ώρας). Εξαιτίας αυτού, προσαρμόζουν την ώρα του συστήματος ώστε να ταιριάζει με τη λογική τους, παραβιάζοντας ο ένας τη λογική του άλλου.

    Η λύση στο πρόβλημα είναι επίσης απλή: είτε αναγκάστε τα Windows να προσθέσουν μια μετατόπιση ζώνης ώρας στην ώρα του συστήματος είτε εμποδίστε το Ubuntu να προσθέσει αυτήν τη μετατόπιση.

    Ρυθμίσεις στο Ubuntu

    Ξεκινώντας από την έκδοση 16.04, οι ρυθμίσεις εμφάνισης ώρας μπορούν να αλλάξουν χρησιμοποιώντας δύο εντολές.

    Ενεργοποίηση εμφάνισης τοπικής ώρας:
    sudo hwclock --τοπική ώρα --προσαρμογή

    Ενεργοποίηση εμφάνισης UTC:
    sudo hwclock --utc --προσαρμογή

    Σε παλαιότερες εκδόσεις του Ubuntu πρέπει να επεξεργαστείτε το αρχείο rtC:

    sudo nano /etc/default/rcS

    Πρέπει να προσθέσετε (για να εμφανίσετε την τοπική ώρα) ή να αφαιρέσετε αυτήν τη γραμμή (για να εμφανιστεί η ώρα UTC):

    Ρυθμίσεις στα Windows

    Στα Windows, σχεδόν όλες οι ρυθμίσεις συστήματος επεξεργάζονται στο μητρώο· το TimeZoneInformation, το οποίο είναι απαραίτητο σε αυτήν την περίπτωση, δεν αποτελεί εξαίρεση. Βρίσκεται στο μητρώο σε αυτή τη διεύθυνση:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Εδώ πρέπει να προσθέσετε ή να αλλάξετε την παράμετρο RealTimeIsUniversal. Ο τύπος του είναι DWORD. Για να διαβαστεί η ώρα του συστήματος σε UTC, πρέπει να ορίσετε την τιμή σε 1· για να την αναγνωρίσετε ως τοπική, πρέπει να ορίσετε την τιμή στο 0 ή να αφαιρέσετε εντελώς αυτήν την παράμετρο.

    Ο Επεξεργαστής Μητρώου μπορεί να εκκινηθεί χρησιμοποιώντας την εντολή regedit.