web-dev-qa-db-fra.com

L'heure est éteinte sur le double démarrage

Système à double démarrage Windows XP Pro et Ubuntu 12.04.

Le bios est réglé sur l'heure correcte et Ubuntu sur l'heure est des États-Unis. Ubuntu démarrera et le temps sera réduit de -4 heures. Si je corrige l'heure dans Ubuntu, lorsque j'amorcerai sous Windows XP, l'heure sera désactivée de + 4 heures.

Ceci est une nouvelle installation de 12.04. Je n'avais pas ce problème avant de réinstaller Ubuntu.

292
Bill Walden

https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts

Conflits horaires de plusieurs systèmes d'amorçage

Les systèmes d’exploitation stockent et récupèrent l’heure dans l’horloge matérielle située sur votre carte mère afin qu’elle puisse la suivre même lorsque le système n’est pas alimenté. La plupart des systèmes d'exploitation (Linux/Unix/Mac) stockent l'heure sur l'horloge matérielle sous la forme UTC par défaut, bien que certains systèmes (notamment Microsoft Windows) stockent l'heure sur l'horloge matérielle sous la forme "locale". ' temps. Cela pose des problèmes dans un système à double démarrage si les deux systèmes voient l’horloge matérielle différemment.

L’avantage d’avoir l’horloge matérielle en UTC est qu’il n’est pas nécessaire de la modifier pour passer d’un fuseau horaire à l’autre, ni au début ou à la fin de l’heure avancée de l’été, car l’heure UTC n’a pas de décalage DST ou de fuseau horaire.

Changer Linux pour utiliser l'heure locale est plus facile et plus fiable que Windows pour utiliser l'UTC, les systèmes Linux/Windows à double démarrage ont tendance à utiliser l'heure locale.

Depuis Intrepid (8.10), UTC = yes est la valeur par défaut.

Rendre Windows utiliser UTC

Remarque: Cette méthode n'était pas initialement prise en charge sous Windows Vista et Server 2008, mais elle est revenue avec Vista SP2, Windows 7, Server 2008 R2 et Windows 8 /. 8.1.

Pour que MS Windows calcule l'heure à partir de l'horloge matérielle au format UTC.

Créez un fichier nommé WindowsTimeFixUTC.reg avec le contenu suivant, puis double-cliquez dessus pour le fusionner avec le registre:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Remarque: le service de temps Windows écrira toujours l'heure locale sur le RTC quel que soit le paramètre de registre ci-dessus à l'arrêt, il est donc pratique. pour désactiver le service de temps Windows à l'aide de cette commande (si la synchronisation de l'heure est toujours nécessaire sous Windows, utilisez une solution de synchronisation de temps tierce):

sc config w32time start= disabled

Inverser le changement
Vous pouvez créer un fichier avec le contenu suivant, puis double-cliquer dessus pour fusionner les modifications d'origine, comme ci-dessus:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=-

Si le service de temps Windows est désactivé, réactivez-le avec la commande suivante:

sc config w32time start= demand

Permet à Linux d'utiliser l'heure 'locale'

Pour indiquer à votre système Ubuntu que l'horloge matérielle est réglée sur l'heure "locale":

Systèmes antérieurs à Ubuntu 15.04 (par exemple, Ubuntu 14.04 LTS):

  1. modifier /etc/default/rcS
  2. ajouter ou modifier la section suivante

    # Set UTC=yes if your hardware clock is set to UTC (GMT)
    UTC=no
    

Systèmes Ubuntu 15.04 et supérieurs (par exemple Ubuntu 16.04 LTS):

  1. ouvrir un terminal et exécuter la commande suivante

    timedatectl set-local-rtc 1
    
257
Eric Carvalho

Pour définir l'horloge du BIOS sur l'heure locale au lieu de l'heure UTC dans une version basée sur systemd (15.04 et ultérieure), vous devez utiliser la commande timedatectl. Selon the Arch Wiki :

Vous pouvez définir l'heure standard de l'horloge matérielle via la ligne de commande. Vous pouvez vérifier ce que vous avez configuré pour utiliser en:

$ timedatectl | grep local

L'horloge matérielle peut être interrogée et définie à l'aide de la commande timedatectl. Pour modifier l'heure standard de l'horloge matérielle en heure locale, utilisez:

# timedatectl set-local-rtc 1

Si vous souhaitez revenir à l'horloge matérielle en UTC, procédez comme suit:

# timedatectl set-local-rtc 0
65
muru

Votre fuseau horaire est Est , qui est actuellement HAE (heure avancée de l'Est). L'EST est UTC moins quatre heures, le même que l'offset que vous rencontrez.

Lorsque cela se produit sur un système à double amorçage, cela est généralement dû au fait qu'un système d'exploitation pense que l'horloge matérielle suit l'heure locale, tandis que l'autre système pense que l'horloge matérielle suit UTC.

Dans votre cas, votre horloge matérielle est probablement réglée sur l'heure locale et:

  • Windows est configuré pour utiliser l'heure locale, qui (compte tenu de vos paramètres de temps) est correcte .
  • Ubuntu est configuré pour utiliser UTC, ce qui (étant donné vos paramètres de temps) est incorrect .

Si vous deviez simplement réinitialiser l'heure dans le système Ubuntu, manuellement ou automatiquement , ce serait alors faux dans Windows, ce n'est donc pas une bonne solution.

Au lieu de cela, la meilleure solution est probablement de reconfigurer Ubuntu pour traiter l'heure de l'horloge matérielle en heure locale (vous pouvez alors quitter votre configuration Windows et votre horloge matérielle. temps, seul).

Pour ce faire, éditez /etc/default/rcS en tant que root et assurez-vous qu'il a UTC=no:

  1. Presse Alt+F2.

  2. Tapez gksu gedit /etc/default/rcS et appuyez sur Enter.

  3. Vous verrez probablement ceci:

    # assume that the BIOS clock is set to UTC time (recommended)
    UTC=yes
    
    • Si vous le faites, remplacez UTC=yes par UTC=no. (Ou vous pouvez également ajouter un commentaire en le modifiant comme suit: UTC=no # changed to accommodate Windows system. Tout ce qui se trouve sur une ligne après un caractère # correspond à un commentaire et ne sert qu'à rendre vos paramètres plus lisibles par l'homme.)
    • Sinon, recherchez une ligne UTC=. Si elle n’est pas commentée (c’est-à-dire qu’elle n’a pas de # au début), changez-la en conséquence. Si c'est commenté, décommentez-le en supprimant le # initial et assurez-vous qu'il dit UTC=no.
  4. Enregistrez le fichier et quittez l'éditeur de texte.

  5. Redémarrez pour appliquer vos modifications et vérifier que l'heure fonctionne correctement sur les deux systèmes d'exploitation.

Source: https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time

(Mais c'est très général; j'ai écrit cette réponse pour qu'elle s'applique spécifiquement à votre situation, ce qui est un problème assez commun.)

36
Eliah Kagan

Le correctif/etc/rcS ne fonctionnait pas sur mon installation Win7/Ubuntu 14.04x64, pas plus que les correctifs via l’interface graphique d’horloge. Parce que la racine du problème est l'heure du BIOS par rapport à l'heure UTC et que Windows est un problème pour l'utilisation de l'UTC, je viens de choisir un point sur la carte qui utilise l'UTC + 0 (aucun changement entre l'heure du BIOS et l'heure UTC). .

Essayez de changer d’emplacement pour Reykjavik (la capitale de l’Islande). Voila! Votre heure Ubuntu changera pour correspondre à votre heure BIOS.

13
OpensourceFool