martes, 14 de abril de 2015

Problema con la hora en arranque dual


Cuando se tiene un arranque dual (Debian GNU/Linux - Microsoft Windows 7 o posterior), la hora se desconfigura  tanto en Windows como en Debian GNU/Linux.

Es decir:

- Si ponemos la hora bien en Windows se desconfigurara en Debian GNU/Linux. 
- Si ponemos la hora bien en Debian GNU/Linux se desconfigura en Windows.

El problema es que yo seleccionaba (correctamente) la zona horaria de Madrid, pero el reloj de Debian GNU/Linux nunca marcaba la hora correcta si antes había usado Windows, con lo cual la hora se me adelantaba entre 1 y 2 horas (dependiendo de si era el horario de invierno +1 h. ó de verano +2 h. debido al cambio horario que se hace en España)
 

¿Porque pasa esto?

- El problema es que Windows utiliza por defecto el método localtime, es decir, establece la hora que aparece en la BIOS.

- Mientras que Debian GNU/Linux, utiliza por defecto UTC y estableciendo la situación geográfica (Zona horaria), tendríamos la hora correcta.

Esto implica que en el caso de Debian GNU/Linux, la hora de la BIOS debe tener la hora UTC.


Ejemplo real: 

Estamos en España en horario de verano (+2 h.), se debe poner 2 horas menos en la BIOS de la hora real. ya que estamos usando la Zona horaria de Madrid.
Es decir imaginemos que son las 14:00 h en España, en la BIOS debemos de poner las 12:00 h.

¿Qué ocurre? que al entrar en Windows, te muestra la hora real de la BIOS (en este caso 2 horas menos) y, al poner bien la hora en Windows, lo que hacemos es desconfigurar la hora en Debian GNU/Linux mostrándonos 2 horas mas.


¿Que es UTC?

El UTC o Tiempo Universal Coordinado es el estándar por el cual el mundo regula los relojes y el tiempo.

UTC es el sistema de tiempo utilizado por muchos estándares de Internet y la World Wide Web (WWW). En particular, se ha diseñado NTP (Network Time Protocol) como una forma de distribuir el tiempo UTC en Internet.

Las zonas horarias de todo el mundo se expresan como desviaciones positivas o negativas de UTC, tomando como referencia el meridiano cero o meridiano de Greenwich.

Puesto que la Tierra gira de Oeste a Este, al pasar de un huso horario a otro en dirección Este, hay que sumar una hora. Por el contrario, al pasar de Este a Oeste hay que restar una hora. El meridiano de 180°, conocido como línea internacional de cambio de fecha, marca el cambio de día.




Solución

La solución mas fácil bajo mi punto de vista es usar
UTC en GNU/Linux  y no tocar Windows, con los cual seguira usando Localtime por defecto.


Poner la hora en UTC

La solución es muy sencilla tenemos que establecer la hora en UTC.

1-  Ponemos el puntero del ratón sobre el reloj de la barra de herramientas y pulsamos el botón derecho del ratón, pulsamos en Preferencias de Reloj digital




2- En la ventana que nos aparece pulsamos en: Zonas horarias



3- En Zonas horarias Seleccionamos sólo la opción UTC.
     También en Configuración predeterminada del reloj seleccionamos: UTC .
      Presionamos en Aceptar.



4- Nuevamente ponemos el puntero del ratón sobre el reloj y con el botón derecho elegimos la opción Ajustar fecha y hora...



5- En la ventana que nos sale seleccionamos la pestaña Zona horaria



y seleccionamos UTC.
Pulsamos en la pestaña Fecha y hora


Aquí ponemos la fecha y la hora correcta.
Pulsamos en Aplicar  y Aceptar los cambio.





NOTA IMPORTANTE: Para no tener problemas cuando usemos Windows y después volvamos a Debian GNU/Linux lo que tenemos que hacer es abrir una consola de comandos y como usuario administrador, teclear el comando: hwclock -w  



Lo que hemos realizado con este comando es sincronizar la hora de Debian con la BIOS, sin tener que entrar en dicha BIOS para poner la hora y la fecha correcta, de este modo Windows se sincroniza automáticamente

========================================================================

NOTA INFORMATIVA: Hasta Microsoft Windows XP no había problema. a partir de Windows Vista es cuando surge el problema







.