sábado, 27 de agosto de 2022

Hora en Windows y linux

 

En lo personal he tratado de migrar al 100% hacia Linux sin embargo por varias razones no lo hecho aún, lo que me ha llevado a usar ambos sistemas operativos al mismo tiempo, aunque hay varias maneras de hacer esto la que me acomoda a mi es el "Dual Boot" que tiene sus pros y contras, pero a muchos de nosotros nos gusta.

Si bien de momento no entrare en detalle acerca de la instalación de Linux y Windows (ya que existen un sin fin de tutoriales en internet) al menos de momento si he de decir que una vez ya instalado el sistema de forma "Dual Boot" (lo cual consiste en hacer una partición para cada sistema operativo (o sea, dividir el disco duro en varias partes)) al iniciar en alguno de los dos sistemas operativos la "hora del sistema" se vera afectada en el otro y como principiante muchas veces no sabes por que.

Pues bien la explicación es sencilla en términos de que tanto Windows como Linux guardan la hora en formato distinto y basta con meterle mano a la configuración de alguno de los dos para solucionar la discrepancia.

Cambiar el formato de la hora es en realidad muy sencillo y para los mas ansiosos presento la solución en Linux la cual es muy rápida.

Después de comprobar que la hora es correcta en Windows reiniciamos el ordenador en Linux y simplemente en la consola con  credenciales de administrador dar el siguiente comando:

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

y listo, con eso habrá quedado resuelto el tema de la discrepancia entre la hora de Windows y la de Linux a lo más habrá que reiniciar una vez por sistema operativo y listo.

Sin embargo ¿es lo correcto?

No se la respuesta, pero si que hay indicios que nos pueden ayudar a encontrar una respuesta a esta pregunta.

Y es que si después de hacer esta modificación en Linux en la consola ingresamos timedatectl nos mostrará lo siguiente:


La consola nos muestra que efectivamente la configuración ha cambiado y que el sistema esta configurado para leer la hora de forma local, pero también advierte que esto puede causar varios problemas, por lo que podemos buscar otra alternativa en la cual no nos muestre una advertencia como esta.

Para revertir la configuración ejecutamos la misma orden pero con el cambio en el "1" ya que esta vez usaremos "0".

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

y una vez hecho esto ejecutamos timedatectl de nuevo y vemos el resultado.


Ahora podemos observar que ya no muestra la advertencia por lo que ahora ya se encuentra bien la configuración sin embargo la hora se encuentra desfasada con respecto de la configuración anterior.

Antes de pasar a Windows y resolverlo desde ahí veremos de donde sale el comando antes utilizado.

Invocaremos al manual de timedatectl escribiendo la orden:

man timedatectl

Lo que nos mostrara el manual de ese programa.




Primero en la sinopsis podemos observar lo siguiente:

Aquí se nos dice que la estructura de la orden es:

timedatectl [opciones...] {comando}

por lo que bajaremos en el manual y buscaremos lo necesario y lo usaremos.

 

Lo primero que encontramos es el comando.

En este comando vemos que nos menciona que al usar [bool] (el valor booleano sea "0" o "1" con lo cual se expresa "true" o "false" (verdadero o falso)), "0" se mantiene el sistema en hora universal y si se usa el numero "1" se mantiene en formato local, sin embargo, podemos notar que aparece aquí mismo la advertencia que se mostró anteriormente.

Ahora llevamos timedatectl set-local-rtc 0 podemos seguir bajando y buscar el resto de la orden.


Un poco más abajo encontramos el tramo restante:

Aquí podemos leer lo que hace, nos damos cuenta que simplemente ajusta la hora.

y ahora sí, la orden nos queda de la siguiente manera:

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

Después de leer el manual nos damos cuenta que es muy fácil interpretar tanto la información que nos da el manual como el resultado de las ordenes que estamos dando a la configuración de Linux, si fuera el caso y se necesita podremos usar otras opciones o comandos que se ajusten a nuestras necesidades.

Para poder ajustar el desfase de la hora, arrancaremos en Windows y haremos lo siguiente:  

En Windows podemos presionar las teclas win+r y aparecerá un cuadro de dialogo llamado ejecutar y escribiremos regedit y pulsamos enter o aceptamos.


y cuando aparezca la ventana del editor de registro buscaremos la siguiente ubicación:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation



y en una zona en blanco en la parte derecha de la ventana daremos click del botón secundario del mouse y elegiremos "nuevo, valor de DWORD (de 32 bits)"



Una vez hecho esto, nombraremos ese valor con el nombre: RealTimeIsUniversal así como esta escrito (respetando mayúsculas y minúsculas).



Después de eso abriremos la clave que acabamos de crear y asignaremos el valor 1 y lo dejamos en Hexadecimal.



Ahora lo que haremos es dar click en el menú inicio (logo de Windows) y escribir cmd (así sin esperar a ninguna ventana o posicionarnos en alguna ventana) con lo que aparecerá la búsqueda de Windows y nos ofrecerá el cmd (consola de windows), usaremos la opción "ejecutar como administrador".




y el la pantalla de la consola escribimos lo siguiente: sc config w32time start=disabled





y después de pulsar enter nos debería aparecer la leyenda "changeServiceConfig Correcto" o algún mensaje haciéndonos saber que se completo correctamente.




y listo, después de reiniciar Windows notaremos que la hora ha cambiado y esta mal.




por lo que toca actualizar la hora, para esto nos dirigimos a menú inicio (logo de Windows), después al engrane de configuración.




ya en la ventana de configuración nos dirigimos a "Hora e idioma"


y una vez dentro de esta opción elegiremos "Sincronizar ahora" y listo, la hora del sistema volverá a ser la correcta y de aquí en adelante podremos cambiar de Windows a Linux y la hora (en teoría) no volverá a cambiar y se mantendrá correcta.

Toda esta configuración se llevo a cabo en Windows 10 (aunque en teoría debe funcionar de forma similar desde Windows 7 hasta Windows 11) y el Linux que se uso es Debian 11 Bullseye pero personalmente he comprobado que no importa la versión ya que en este caso lo que realmente hacemos es cambiar la configuración de Windows.

Si es mejor hacer la configuración desde Windows o desde Linux es cuestión de lo que tu decidas pero hacerlo desde Windows evita que se cumpla la advertencia en la configuración de timedatectl pero bien podrías ignorar la advertencia y seguir con tu vida, eso si, hay que hacer cambios solo en uno de los dos sistemas operativos de lo contrario tendríamos el mismo problema que antes con la hora pero con las configuraciones contrarias.

Referencias

pc, T. (1 de Julio de 2021). youtube.com. Recuperado el 27 de Agosto de 2022, de Tutos PC: https://www.youtube.com/watch?v=lA3kNvI6WGU

Pérez, K. (12 de Septiembre de 2020). youtube.com. Recuperado el 2022 de Agosto de 27, de Karla's Project: https://www.youtube.com/watch?v=T7CSyK_hUUY

 

No hay comentarios:

Publicar un comentario

HDD para respaldo

Hace poco compramos en casa algunos SSD (Solid State Drive o discos de estado sólido) y reemplazamos los viejos HDD (Hard Disk Drive o disco...