Di recente ho riscontrato lo stesso problema ed è così che l'ho risolto. Devi apportare una piccola modifica in entrambi i sistemi operativi.
Ho iniziato con Linux prima. Esegui i seguenti comandi come root.
ntpdate pool.ntp.org
Questo aggiornerà il tuo orario se non impostato correttamente.
Ora imposta l'orologio hardware su UTC con questo comando.
hwclock --systohc --utc
Fonte
Ora avvia Windows e aggiungi il seguente registro. Crea semplicemente un file .reg usando il codice qui sotto in Blocco note. Salvalo ed eseguilo.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
Fonte
Dal prossimo avvio in poi, entrambi i sistemi operativi mostreranno l'ora corretta.
Nessuno dei due è sbagliato, ma usare UTC è più corretto. L'RTC non ha un fuso orario; è solo uno stupido orologio da parete. Se il tuo fuso orario locale rispetta l'ora legale (di cui ci sono molti tipi e le regole cambiano arbitrariamente), allora due volte l'anno devi andare a cambiarlo. Il sistema operativo lo farà per te, ma se l'RTC è UTC, il sistema operativo esegue comunque la traduzione UTC-> locale:perché giocherellare con l'orologio? Inoltre, durante la transizione "fallback" dell'ora legale, l'RTC non può dirti che ore sono! È l'1:30 CDT o CST?
Apparentemente, Windows 8 supporta UTC per l'RTC. Anche Windows 7 funzionava, ma c'erano dei problemi.
C'era un argomento migliore contro questo quando le persone impostavano manualmente i loro orologi del BIOS, ma ora l'ora basata sul server è molto più diffusa.
Il caso normale è che i sistemi Linux hanno l'RTC (orologio in tempo reale) impostato su UTC e la conversione all'ora locale viene eseguita nello spazio utente in base ai dati del fuso orario e allo TZ
variabile d'ambiente. Questo è "meno dannoso" perché mantiene l'RTC del sistema in aumento monotono e applica qualsiasi magia del fuso orario in un secondo momento, assicurando ad esempio che nessun file avrà normalmente un timestamp in futuro (cosa che può facilmente accadere almeno una volta all'anno, se il sistema RTC è impostato sull'ora locale). Come ha sottolineato Ken, l'RTC stesso non ha il concetto di fuso orario, solo tempo.
Come hai scoperto, ciò causa problemi durante il dual-boot con un sistema che normalmente non funziona in questo modo, come la famiglia di sistemi operativi Microsoft che generalmente si aspettano che l'RTC sia impostato su local volta. Sì, Windows NT (penso che risale a NT 4, in realtà) può funzionano con l'RTC impostato su UTC, ma almeno l'ultima volta ho visto che non era davvero una configurazione supportata e c'erano una serie di avvertimenti.
La soluzione semplice nel tuo caso è probabilmente impostare l'RTC sull'ora locale, dire al tuo sistema Linux che l'RTC è impostato sull'ora locale (la meccanica esatta per farlo varia a seconda della distribuzione e della versione di rilascio, ma a quanto pare in Ubuntu hai impostato UTC=no
in /etc/default/rcS), quindi configurare i sistemi operativi in modo tale che solo uno di essi (preferibilmente quello che usi di più, poiché l'ora visualizzata in tutti gli altri sarà errata due volte all'anno fino a quando non sarà stato avviato e non avrà avuto la possibilità di correggerlo) gestisce i cambiamenti dell'ora legale. E convivi con i lati negativi, che dovrebbero essere gestibili su un sistema a utente singolo.
Potresti anche imposta il lato Windows per utilizzare UTC come fuso orario e disattiva i cambi automatici dell'ora legale in Windows e mantieni Linux impostato per avere l'RTC in UTC e visualizzare l'ora convertita secondo le sue pratiche. Tuttavia, questo farà sì che Windows visualizzi la data e l'ora in UTC, che potrebbe non essere ciò che desideri veramente. Non è un grosso problema per noi europei, che al massimo sono qualcosa come tre ore fuori dall'ora UTC, ma potrebbe essere più un problema negli Stati Uniti. Questa è probabilmente un'opzione più realistica se usi Windows solo occasionalmente e il tuo sistema operativo principale è Linux o qualche altro sistema operativo compatibile con RTC-UTC.