Tempo diverso in Windows e Linux Mint


18

Ho installato Linux Mint prima sul mio Acer Aspire 4930 e poi doppio avvio con Windows 7.

Vedo sempre l'ora corretta su Linux Mint ma all'avvio in Windows il tempo viene spostato indietro di alcune ore, anche dopo aver ripristinato l'ora, al riavvio mostra di nuovo un orario sbagliato.


Domande:

  1. Perché sta succedendo?

  2. Cosa posso fare al riguardo?

Risposte:


17

Su Windows, l'orologio RTC di sistema viene tradizionalmente mantenuto nell'ora locale. In Unix e Linux, è tradizionalmente conservato in UTC e /etc/localtimeviene utilizzato per indicare il fuso orario corrente in modo che l'ora visualizzata sia corretta.

Queste due visioni del mondo si scontrano in configurazioni a doppio avvio perché c'è solo un RTC. Di solito, si dice a Linux di supporre che l'RTC sia l'ora locale (perché non è possibile dire a Windows). Questo varia da un Linux ad un altro, ma dal momento che Mint è come Ubuntu probabilmente si può impostare UTC=noin /etc/default/rcS. Quindi puoi impostare l'orologio sull'ora locale in Windows e Linux lo lascerà solo dopo.


Nota del redattore :

Quel file non è presente da Linux Mint 19 (o più precisamente dalla base Ubuntu 18.04):

/etc/default/rcS

2
UTC è già impostato su no, la differenza di orario è ancora presente.
Ballistic,

5

Menta 18.2 KDE sembra essere immune alle altre correzioni (comprese quelle aggiuntive che ho trovato in una ricerca). I file menzionati nelle risposte di aecolley e error404 non esistono più o sembrano non trovarsi più dove si fa riferimento all'impostazione, almeno nella versione corrente di KDE. Il comando nella risposta di Julie Pelletier ha funzionato per 18,2 Cannella ma non per 18,2 KDE.

Dopo aver provato una mezza dozzina di soluzioni suggerite, il problema seguente è stato risolto per 18.2 KDE. Con l'ora corretta visualizzata, eseguire il seguente comando terminale:

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

Fonte: suggerimenti e trucchi per Linux Mint dopo l'installazione [Mint 18 - Cinnamon Edition]

Questo dovrebbe funzionare anche per Cinnamon come soluzione alternativa, e presumo anche altri DE.

Note del redattore:

  • Non è sudonecessario, eseguire quel comando come utente.

  • Persiste al riavvio, dovrebbe essere permanente.

  • Testato su Linux Mint 19.1 Cinnamon, basato su Ubuntu 18.04.


Confermo, funziona con Mint 18.3 Cannella.
bianco

@Vlastimil, è da un po 'che non lo faccio. Il mio ricordo è che sudo non è richiesto (se lo fosse, l'avrei incluso nella risposta, e correzioni simili non si riferiscono nemmeno a sudo, quindi sono abbastanza sicuro che non lo sia). E sì, questo persiste.
Fixer 1234

@ fixer1234 Grazie mille, amico! Mi hai salvato la giornata e penso che tutti siano :)
LinuxSecurityFreak

3

Il modo più generico di farlo è con:

hwclock --systohc --localtime

che è persistente tra i riavvii e funziona sulla maggior parte dei sistemi.


Se l'orologio attualmente visualizza l'ora corretta, il comando necessario è effettivamente hwclock --systohc --localtime, che imposterà l'orologio hardware sull'ora locale utilizzando il valore attualmente visualizzato dal sistema. Tuttavia, se l'orologio è attualmente errato (ovvero l'orologio hardware è l'ora locale, ma il sistema aggiunge l'offset per il fuso orario, determinando un valore visualizzato errato), è necessario hwclock --hctosys --localtime.
Youen

@Youen, ho avuto quella situazione e la tua modifica ha semplicemente gettato il tempo libero nell'altra direzione. La soluzione per me era ripristinare l'orologio all'ora corretta e quindi utilizzare il comando nella risposta di Julie.
fixer1234,

@ fixer1234 OK, strano. Ad essere sincero non ho provato il secondo comando nel mio commento, dato che avevo già riparato il mio orologio da allora. Credo comunque che eseguire uno di questi comandi, e quindi impostare l'orologio sull'ora visualizzata corretta, farà il trucco (eseguire di nuovo il primo comando probabilmente non era necessario se tu avessi già eseguito il secondo). Sono contento che alla fine abbia funzionato per te :)
sei stato il

1

AVVERTIMENTO

Questo metodo è errato nelle versioni precedenti a 7 di Windows, ma risolve il problema sul lato Windows dell'equazione, piuttosto che sull'estremità di Linux: non è necessario impostare Linux per utilizzare Localtime .


Tratto dal più glorioso e stimato Wiki di Arch Linux :

Un motivo per cui gli utenti spesso impostano RTC in localtime è il doppio avvio con Windows (che utilizza localtime).

Tuttavia, Windows [può gestire l'RTC essendo UTC] con una semplice correzione del registro. Si consiglia di configurare Windows per utilizzare UTC, piuttosto che Linux per utilizzare Localtime.

Utilizzando regedit, aggiungi un DWORDvalore con valore esadecimale 1al registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

Puoi farlo da un prompt dei comandi dell'amministratore in esecuzione:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

In alternativa, crea un file * .reg (sul desktop) con il seguente contenuto e fai doppio clic per importarlo nel registro:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Se quanto sopra sembra non avere alcun effetto e viene utilizzata una variante a 64 bit di Windows, l'utilizzo di un QWORDvalore anziché di un DWORDvalore potrebbe risolvere il problema.

Se Windows chiede di aggiornare l'orologio a causa di modifiche all'ora legale, lasciarlo. Lascia l'orologio in UTC come previsto, correggendo solo l'ora visualizzata.

L'orologio hardware e l'ora di sistema potrebbero dover essere aggiornati dopo aver impostato questo valore. Se riscontri problemi con la differenza di orario, prova a reinstallare tzdata e quindi a impostare nuovamente il fuso orario:

# timedatectl set-timezone America/Los_Angeles

In realtà ho riscontrato questo problema sul mio computer Windows, ma finora lo ho semplicemente ignorato; Vedrò comunque se questo metodo funziona e riferirò i miei risultati.
Alexej Magura,

1
Per me funziona. Grazie molto! In questo modo non devo modificare tutte le installazioni di Linux presenti sul mio PC.
Lokesh,

0

Modifica (come root) la /etc/timeadjvariabile da UTCa LOCAL.

Questo ha risolto il problema senza dover giocherellare con regedit sul lato Windows.


0

Esegui uno di questi due comandi che corrispondono all'ora locale

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

'o'

timedatectl set-local-rtc 0 --adjust-system-clock
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.