mercoledì 26 marzo 2008

Ma che ora e'?

Se si usa un PC in dual/multi-boot con Windows e altri sistemi operativi molto probabilmente prima o poi si finisce per andare a cozzare contro il problema dell'ora.

Il motivo e' piuttosto semplice: Windows di default assume che l'ora memorizzata nel BIOS sia l'ora locale, ovvero la stessa identica ora che settate dal pannello di controllo in Windows. L'ora del BIOS viene quindi aggiornata da Windows in base al fuso orario e all'ora legale o solare.

Fin qui tutto bene, ma se si riavvia il PC con un altro sistema operativo non e' detto che l'ora visualizzata sia quella giusta.

Un primo problema gia' avviene se il secondo sistema e' Windows e si e' a cavallo del cambio di ora legale/solare e nel pannello di controllo e' settato l'aggiornamento in automatico.
Quello che succede e' che viene effettuato un secondo aggioramento dell'ora e ci si ritrova avanti o indietro di un'ora in piu'.

La cosa pero' puo' passare inosservata se si e' collegati a Internet e la sincronizzazione con un time server e' attiva.
In quel caso l'errore viene immediamente corretto e l'utente difficilmente se ne accorge.

Quando invece il secondo sistema operativo e' Linux o Mac OS allora le cose si complicano un po' perche' Linux e Mac OS assumono che l'ora memorizzata nel BIOS/EFI sia in formato UTC (quello che una volta si chiamava GMT).

In questo caso l'errore avviene ad ogni reboot e anche se la sincronizzazione con un time server puo' nasconderlo, prima o poi capita che non si e' collegati ad Internet oppure il time server non e' raggiungibile e l'errore si manifesta.

Per risolvere il problema si puo' agire sul registry di Windows per informare il sistema che la data del BIOS va trattata in formato UTC e non locale.

Bisogna creare la keyword RealTimeIsUniversal di tipo DWORD con valore 1 in questa posizione del registry:

HKEY_LOCAL_MACHINE
  SYSTEM
    CurrentControlSet
      Control
        TimeZoneInformation


Ho provato su Vista e la cosa funziona, non ho ancora provato con XP, ma provero' appena possibile.
Se dopo questa modifica il vostro PC esplode... dimentica di aver letto questo suggerimento ;-)

9 commenti:

  1. Mi sono sempre chiesto perché Microsoft non esponesse un'impostazione simile... fino a questo momento ho sempre risolto impostando il sistema operativo alternativo a Windows per utilizzare l'orario "locale". Sul Mac il problema viene risolto da un servizio che installa Apple insieme ai driver che vengono insieme a Boot Camp che sincronizza gli orari di Windows e Mac OS.

    RispondiElimina
  2. A dire il vero su Mac almeno su Leopard 10.5.2 il problema e' ancora presente o forse mi e' sfuggito qualcosa.

    RispondiElimina
  3. uhm...mi sfugge qualcosa...io ho in dual boot win xp e suse 10.3
    Ma avuto problemi di ora....

    RispondiElimina
  4. Potrebbe essere che sotto Suse di default interpreta il clock del BIOS come ora locale, oppure e' sempre collegato a internet e il time server provvede a tenere le cose a posto.

    RispondiElimina
  5. più probabile la prima...verificherò. di sicuro ne suse ne xp sono sincronizzati con un server esterno.

    RispondiElimina
  6. si, suse interpreta l'ora del BIOS come ora locale
    Si può cmq cambiare scelta

    RispondiElimina
  7. Una domanda: se il problema è dei SO guest perchè la modifica la fai sul so host? Dovrebbe essere il contrario.

    L'UTC (Coordinated Universal Time) è uno standard seguito da tutti (non solo i computer Windows) dal 1884.

    IMHO preferisco basarmi sull'orario UTC ed aggiungere o togliere ore in base al fuso orario e all'ora legale/solare.

    RispondiElimina
  8. Shance,
    non c'e' un OS guest e uno host, sono due OS in dual boot.
    Il BIOS e' una cosa, Windows un'altra, la rappresentazione della data del BIOS puo' essere interpretata dagli OS a piacimento, nel caso del Mac non c'e' il BIOS, ma Vista non lo sa perche' tramite BootCamp "pensa" di star girando su un normale PC con BIOS, da qui il problema.

    RispondiElimina
  9. Avevo capito che Mac era il so secondario (mi suonava strano infatti). Dovrei provare a vedere che succede con un mac senza internet. Hai provato? Franco dice che occorre disabilitare l'aggiornamento automatico dell'oraio.

    Stesso problema mi è capitato però all'ultimo cambio di fuso sia su telefoni Nokia che su Windows mobile... saranno stati gli australiani che ci hanno fatto aggiornare il sistema?

    RispondiElimina