VDR para el Siemens Gigaset M740/M750
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Proyecto movido a GitHub

Miér 7 Abr 2021 - 19:23 por bittor

Comentarios: 0

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Flujo RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 



Mejoras en la comprobación de discos

3 participantes

Ir abajo

Mejoras en la comprobación de discos Empty Mejoras en la comprobación de discos

Mensaje por devotee Miér 1 Abr 2009 - 19:27

Este tema viene por este mensaje que escribí.

Desde que arreglé el disco duro externo (un Seagate Freeagent) para que no diera problemas con el ahorro de energía, sólo me he encontrado un caso en el que la comprobación de discos salta cuando no debería: si se va la luz.

Nuestro Giga no tiene pila interna para conservar la hora, depende de que esté enchufado. Si se desenchufa, o si se va la luz, pierde la fecha y hora. Así que pasa lo siguiente (un ejemplo):

- Apagamos el Giga y nos vamos a dormir
- Durante la noche, se va la luz y el Giga pierde la fecha y hora (ahora, para él, son las 00:00 del 1/1/1970)
- Por la mañana, encendemos el Giga
- En los scripts de inicio, el fsck mira cuándo se comprobó el disco por última vez (ya que, si seguimos las recomendaciones del foro, al formatear el disco especificamos que se haga una comprobación cada 30 días) y (oh, ¡sorpresa!) hace -39 años (!!) que no se comprueba el disco
- El Giga comprueba el disco (en mi caso son unos 20 minutos sin poder hacer nada) y guarda en el disco que la última fecha en la que se comprobó el disco fue el 1/1/1970
- Al arrancar, el Giga recupera la hora correcta, ya sea por NTP o desde el canal que tengamos configurado
- Apagamos el Giga y lo volvemos a encender
- Al inicio, el fsck mira cuándo se comprobó el disco por última vez y (oh, sorpresa) hace 39 años (!!) que no se comprueba (recordad que en la última comprobación se guardó la fecha 1/1/1970 en el disco)
- El Giga comprueba el disco (otros 20 minutos sin poder hacer nada) y guarda en el disco la última fecha en la que se comprobó el disco (esta vez la buena)

Veo dos problemas con esto:
1. Se comprueba el disco dos veces (por el cambio de fecha) en un periodo de tiempo muy corto
2. Se pierde un montón de tiempo en las comprobaciones, si tenemos prisa por hacer algo (grabar un programa que empieza ya mismo) toca esperar

La solución más sencilla sería sincronizar la hora antes de que se ejecute /sbin/usbautomounter aunque no sé si en ese momento la red estará ya configurada (para sincronizar por NTP, lo que no funcionaría en la versión lite del firmware) o si ya se habrá sintonizado algún canal para poder coger la hora de ahí.

Otra opción es guardar la fecha al apagar el Giga, y recuperarla al arrancar si detectamos un "salto en el tiempo". No tendremos la fecha y hora exactas pero al menos sí tendremos una aproximación que evitará la comprobación del disco:

En rc.local (antes de que se ejecute /sbin/usbautomounter):
Código:
if [ "`date '+%Y'`" = "1970" ] ; then
# Si estamos en 1970, recuperamos la fecha aproximada desde /etc/time.backup
      /bin/date -r /etc/time.backup
fi

Y en rc.halt (antes de desmontar /etc):
Código:
if [ "`date '+%Y'`" != "1970" ] ; then
# Creamos el fichero /etc/time.backup con la fecha y hora actuales
touch /etc/time.backup
fi

Esto no afectaría a la comprobación de discos cuando hay un corte de luz mientras el Giga está funcionando, ya que al estar marcado el disco como "no desmontado correctamente", ese estado prevalece frente al de intervalo de comprobaciones que se haya configurado.

devotee

Cantidad de envíos : 45
Fecha de inscripción : 14/01/2009

Volver arriba Ir abajo

Mejoras en la comprobación de discos Empty Re: Mejoras en la comprobación de discos

Mensaje por Posix Miér 1 Abr 2009 - 19:43

Lo de no poder saltar atrás en el tiempo me parece bien. Pictool puede devolver si se ha producido un fallo de corriente (vdr lo tiene en cuenta). En ese caso puede ejecutarse un script guardado durante el apagado (en el rc.halt) que ajuste con la misma hora de cierre.

Si queréis puedo implementarlo en el arranque de ntpclient, aunque para la versión lite estaría mejor en el rc.halt (guardar) y yo diría que en rc (recuperar) antes de cargar ntpclient.
Posix
Posix
Desarrollador

Cantidad de envíos : 691
Fecha de inscripción : 05/11/2008
Edad : 57
Localización : Madrid

Volver arriba Ir abajo

Mejoras en la comprobación de discos Empty Re: Mejoras en la comprobación de discos

Mensaje por bittor Miér 1 Abr 2009 - 20:44

La idea está muy bien, pero no me gusta la idea de implementarla a través de los scripts del firmware porque aunque no lo parezca hacen un arranque y un apagado más lentos.
Ya sé que no es mucho y casi no se nota, pero si todas las cosas las hacemos igual en poco tiempo tenemos otro wavebug Sad.

Lo más óptimo de cara al rendimiento sería que el propio pic_tool si hay un fallo de corriente hiciera este proceso.
pic_tool se ejecuta al arrancar con los parámetros "time pictosys" para obtener la hora del PIC y establecerla en el sistema y al apagar con "time systopic" para pasar la hora del sistema al PIC, por lo que en systopic se podría actualizar la hora de algún archivo del sistema que no se use para nada, como por ejemplo /etc/fw-version, /etc/systemtype, ... y al arrancar pictosys comprobaría si hay un fallo de corriente o la fecha es 1970 para darle al sistema la hora del PIC o del archivo con la hora correcta.

De esta forma sería más rápido al ejecutarse desde un binario compilado y más limpio de cara a no enguarrar los scripts del firm.
bittor
bittor
Desarrollador

Cantidad de envíos : 3662
Fecha de inscripción : 25/06/2008
Localización : Zaragoza

https://github.com/bittor7x0/VDR-M7x0

Volver arriba Ir abajo

Mejoras en la comprobación de discos Empty Re: Mejoras en la comprobación de discos

Mensaje por Posix Jue 2 Abr 2009 - 9:52

Me parece muy buena idea.
Yo me quité de Lemmi por los cienes y cienes de scripts que manejaban scripts que llamaban a scripts que revisaban si ejecutar un script.

No se muy bien como cambiar la fecha de un fichero desde código pero no debe ser difícil.

Si no hay ningún voluntario me ocupo yo, aunque últimamente estoy demasiado liado.
Posix
Posix
Desarrollador

Cantidad de envíos : 691
Fecha de inscripción : 05/11/2008
Edad : 57
Localización : Madrid

Volver arriba Ir abajo

Mejoras en la comprobación de discos Empty Re: Mejoras en la comprobación de discos

Mensaje por bittor Jue 2 Abr 2009 - 10:37

Creo que en el VDR cambiaste la función que actualiza la hora del archivo .update para el tema de detectar los directorios de grabación en caliente sin necesidad de reiniciar el VDR, porque después de ese cambio así lo marca en el log.
En principio sería similar.
bittor
bittor
Desarrollador

Cantidad de envíos : 3662
Fecha de inscripción : 25/06/2008
Localización : Zaragoza

https://github.com/bittor7x0/VDR-M7x0

Volver arriba Ir abajo

Mejoras en la comprobación de discos Empty Re: Mejoras en la comprobación de discos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.