Ir al contenido principal

WD My Cloud OS5: ejecutar scripts automáticamente al iniciar con Boot Scripts

En los capítulos anteriores analizamos la arquitectura del WD My Cloud Gen 2 y explicamos cómo recuperar el botón Shutdown que Western Digital mantiene oculto en la interfaz administrativa de My Cloud OS5.

Aunque conseguimos recuperar el botón mediante una modificación de JavaScript y un montaje mount --bind, encontramos un problema importante: la modificación desaparecía después de reiniciar el dispositivo.

En este capítulo veremos cómo resolvimos ese problema mediante Boot Scripts 1.0.0, una aplicación comunitaria que permite ejecutar scripts personalizados automáticamente después del arranque.

El procedimiento fue probado en un WD My Cloud Gen 2 con firmware OS5 5.33.102.

1. El problema de las modificaciones temporales

Como explicamos en el primer capítulo, My Cloud OS5 utiliza un sistema raíz cargado en memoria RAM y una imagen SquashFS de solo lectura.

Esto significa que numerosas modificaciones realizadas sobre directorios del sistema no sobreviven a un reinicio.

En nuestro caso, recuperamos el botón Shutdown mediante:

mount --bind \
/usr/local/config/web-overrides/diagnostics.html \
/usr/local/modules/web/pages/setting/diagnostics.html

Este comando presenta nuestro archivo HTML personalizado en la ubicación original del firmware.

El procedimiento funciona correctamente, pero el montaje no se conserva después de reiniciar.

Por tanto, necesitábamos ejecutar automáticamente el comando durante cada arranque.

2. Intentos iniciales utilizando cron

Nuestra primera solución consistió en programar una tarea de cron que comprobara periódicamente si el montaje existía.

La instrucción utilizada fue:

0 * * * * grep -q " /usr/local/modules/web/pages/setting/diagnostics.html " /proc/mounts || mount --bind /usr/local/config/web-overrides/diagnostics.html /usr/local/modules/web/pages/setting/diagnostics.html

La tarea comprobaba el montaje cada hora y lo restauraba si había desaparecido.

Sin embargo, después de reiniciar encontramos que:

  • El archivo HTML personalizado seguía existiendo.
  • El montaje ya no estaba activo.
  • La tarea agregada al crontab había desaparecido.
  • El servicio crond seguía funcionando.

Esto demostró que el problema no estaba en el script, sino en la persistencia del mecanismo de ejecución.

También observamos que el firmware puede reconstruir o modificar su configuración de tareas programadas.

3. Investigación del sistema de arranque

Durante nuestras pruebas examinamos los principales scripts de inicialización de OS5.

El proceso comienza en:

/etc/rc.sh

Posteriormente ejecuta:

/usr/local/modules/script/system_init

También encontramos un script denominado:

/usr/local/sbin/custom_booting_init.sh

Sin embargo, descubrimos que este archivo es un enlace simbólico hacia:

/usr/local/modules/localsbin/custom_booting_init.sh

El destino pertenece a la imagen SquashFS del firmware.

Por tanto, modificarlo directamente no representaba una alternativa adecuada para conservar personalizaciones.

Decidimos utilizar un mecanismo independiente que no requiriera modificar los archivos originales de Western Digital.

4. ¿Qué es Boot Scripts?

Boot Scripts es una aplicación comunitaria para dispositivos WD My Cloud OS5 que permite ejecutar scripts personalizados durante el arranque.

Forma parte del proyecto WD NAS App Builder.

La documentación del proyecto se encuentra en:

Boot Scripts — Documentación en GitHub

Entre sus características se encuentran:

  • Ejecución de scripts durante el arranque.
  • Administración de scripts desde una interfaz web.
  • Almacenamiento persistente de configuraciones.
  • Ejecución manual para realizar pruebas.
  • Registro del resultado de las ejecuciones.

Los scripts personalizados pueden ejecutarse con privilegios de root.

Por tanto, es importante revisar su contenido antes de instalarlos o ejecutarlos.

5. Compatibilidad con WD My Cloud Gen 2

Para nuestro dispositivo utilizamos:

bootscripts_1.0.0_WDMyCloud.bin

El nombre del paquete identifica:

Elemento Valor
Aplicación Boot Scripts
Versión 1.0.0
Modelo WDMyCloud
Firmware utilizado OS5 5.33.102

Es importante descargar el paquete correspondiente exactamente al modelo del dispositivo.

No deben confundirse los identificadores WDMyCloud y WDCloud, ya que corresponden a familias diferentes.

Aunque la instalación y el funcionamiento quedaron comprobados en nuestro dispositivo, la compatibilidad debe verificarse nuevamente si se utiliza otro modelo o versión del firmware.

6. Instalar Boot Scripts

La instalación se realiza desde la interfaz administrativa de My Cloud OS5.

  1. Descargar el paquete compatible desde el repositorio del proyecto.
  2. Acceder al dashboard administrativo del WD My Cloud.
  3. Entrar en la sección Apps.
  4. Seleccionar Install an app manually.
  5. Elegir el archivo .bin descargado.
  6. Confirmar la instalación.
  7. Esperar a que la aplicación aparezca en la lista.

En nuestro caso, la instalación se completó correctamente y apareció la aplicación Boot Scripts 1.0.0.

Posteriormente comprobamos que la opción Run App estuviera habilitada.

7. Abrir la configuración de Boot Scripts

Una vez instalada la aplicación:

  1. Seleccionar Boot Scripts en la lista de aplicaciones.
  2. Comprobar que Run App esté activado.
  3. Seleccionar Configure.

La interfaz permite administrar archivos de scripts y realizar ejecuciones manuales.

En nuestra instalación, los scripts se almacenan en:

/mnt/HD/HD_a2/Nas_Prog/bootscripts_conf/scripts.d

Esta ubicación pertenece al volumen persistente del NAS.

La aplicación procesa los scripts identificados con extensión .sh en orden alfabético.

Por esta razón, resulta conveniente utilizar un prefijo numérico en sus nombres.

8. Crear el script de restauración del botón Shutdown

Nuestro objetivo era recuperar automáticamente el montaje que muestra el botón Shutdown.

Creamos un archivo denominado:

30-restore-shutdown-button.sh

El nombre comienza con 30 para identificar su posición dentro de la secuencia de ejecución.

El contenido utilizado fue:

#!/bin/sh

# Restaurar el botón Shutdown del WD My Cloud OS5.
# Esperar a que la interfaz web esté disponible.

SRC="/usr/local/config/web-overrides/diagnostics.html"
DST="/usr/local/modules/web/pages/setting/diagnostics.html"

i=0

while [ "$i" -lt 30 ]; do
    if [ -f "$SRC" ] && [ -f "$DST" ]; then
        if ! grep -q " $DST " /proc/mounts; then
            mount --bind "$SRC" "$DST"
        fi
        exit $?
    fi

    sleep 2
    i=$((i + 1))
done

exit 1

Este script implementa varias comprobaciones para evitar errores durante el arranque.

8.1. Verificación de archivos

Comprueba que existan:

  • El HTML personalizado en la partición persistente.
  • La ubicación original del archivo del firmware.

Si alguno todavía no está disponible, el script espera dos segundos y vuelve a comprobarlo.

Realiza hasta 30 comprobaciones, equivalentes a un máximo aproximado de 60 segundos de espera.

8.2. Evitar montajes duplicados

Antes de ejecutar mount --bind, el script consulta:

/proc/mounts

Si el archivo ya está montado, no realiza nuevamente la operación.

Esto permite ejecutar el script manualmente sin crear montajes adicionales.

8.3. Ejecución única

El script termina después de verificar o restaurar el montaje.

No permanece ejecutándose en segundo plano ni necesita comprobar periódicamente el estado del archivo.

Esto resulta conveniente en un NAS donde buscamos minimizar los procesos innecesarios.

9. Guardar el script desde la interfaz web

Dentro de la interfaz de Boot Scripts:

  1. Abrir la sección Editor.
  2. Escribir el nombre 30-restore-shutdown-button.sh.
  3. Pegar el contenido del script.
  4. Seleccionar Save.
  5. Confirmar que aparezca en la lista de scripts.

Después comprobamos su existencia desde SSH:

ls -l /mnt/HD/HD_a2/Nas_Prog/bootscripts_conf/scripts.d/30-restore-shutdown-button.sh

El archivo apareció con permisos de ejecución:

-rwxr-xr-x 1 root root 469 Oct 15 17:03 30-restore-shutdown-button.sh

Con ello confirmamos que el script había quedado almacenado en la ubicación persistente de la aplicación.

10. Probar el script sin reiniciar

Antes de realizar un reinicio completo utilizamos la función Run now de Boot Scripts.

La aplicación ejecutó los scripts disponibles y mostró el siguiente resultado:

2026-10-15 17:04:44 === run started (web)

2026-10-15 17:04:45 --- 30-restore-shutdown-button.sh

2026-10-15 17:04:46 --- 30-restore-shutdown-button.sh: ok (1s)

2026-10-15 17:04:46 === run finished: 2 script(s), 0 failed

La ejecución terminó sin errores.

Debemos considerar que, durante esta prueba, el montaje ya estaba activo.

Por tanto, esta primera verificación confirmó que el script podía ejecutarse correctamente y detectar una configuración existente.

La prueba definitiva consistió en reiniciar el NAS y comprobar si el montaje reaparecía automáticamente.

11. Verificar el montaje desde SSH

Para comprobar el estado del montaje utilizamos:

grep diagnostics.html /proc/mounts

Obtuvimos:

/dev/sda7 /usr/local/modules/web/pages/setting/diagnostics.html ext4 rw,relatime,stripe=128,data=ordered 0 0

Esto confirma que el archivo personalizado estaba montado sobre la ubicación original de diagnostics.html.

12. Prueba definitiva: reiniciar el WD My Cloud

Después de comprobar la instalación, realizamos un reinicio completo desde la interfaz administrativa.

Una vez disponible nuevamente el acceso SSH, consultamos:

uptime

El dispositivo respondió:

17:11:06 up 1 min

Esto confirmó que el equipo acababa de completar su arranque.

Inmediatamente comprobamos el montaje:

grep diagnostics.html /proc/mounts

El resultado confirmó nuevamente:

/dev/sda7 /usr/local/modules/web/pages/setting/diagnostics.html ext4 rw,relatime,stripe=128,data=ordered 0 0

El montaje había sido restaurado automáticamente después del reinicio.

Finalmente abrimos la página Device Maintenance y comprobamos que los botones Shutdown y Reboot estuvieran visibles.

Con esta prueba confirmamos que la solución funcionaba correctamente después de reiniciar el dispositivo.

13. Cómo verificar el funcionamiento posteriormente

Para realizar una comprobación rápida podemos ejecutar:

echo "=== BOOT SCRIPTS ==="

ls -l /mnt/HD/HD_a2/Nas_Prog/bootscripts_conf/scripts.d/

echo "=== MONTAJE SHUTDOWN ==="

grep diagnostics.html /proc/mounts

echo "=== TIEMPO DE FUNCIONAMIENTO ==="

uptime

Si el montaje aparece en /proc/mounts, la personalización está activa.

También podemos abrir la interfaz web para confirmar visualmente la presencia del botón Shutdown.

14. Cómo revertir la automatización

Si deseamos desactivar la restauración automática, podemos retirar o deshabilitar el script desde la interfaz de Boot Scripts.

El archivo correspondiente es:

30-restore-shutdown-button.sh

Después podemos retirar el montaje activo mediante:

umount /usr/local/modules/web/pages/setting/diagnostics.html

Con ello recuperamos la página original del firmware.

Antes de hacerlo debemos comprobar que ninguna otra tarea esté configurada para restaurar automáticamente el mismo montaje.

15. Consideraciones de seguridad

Boot Scripts ejecuta comandos con privilegios administrativos.

Esto permite realizar tareas avanzadas, pero también implica riesgos.

Por ello es recomendable:

  1. Instalar únicamente paquetes provenientes de fuentes confiables.
  2. Seleccionar el paquete correspondiente al modelo exacto.
  3. Revisar el contenido de los scripts antes de ejecutarlos.
  4. Evitar comandos que modifiquen indiscriminadamente archivos del sistema.
  5. Probar los scripts manualmente antes de reiniciar.
  6. Mantener procedimientos para revertir las modificaciones.
  7. Evitar scripts que realicen operaciones de disco innecesarias.

También debemos recordar que las actualizaciones del firmware pueden modificar archivos y comportamientos internos del NAS.

Por tanto, una configuración que funciona con OS5 5.33.102 debe verificarse nuevamente después de actualizar.

16. Ventajas de la solución

Característica Resultado
Modificación del firmware No necesaria
Persistencia del script Confirmada
Restauración tras reiniciar Verificada
Intervención manual No necesaria después del arranque
Ejecución periódica No requerida
Reversibilidad Sí

17. Conclusiones

La instalación de Boot Scripts 1.0.0 resolvió el problema de persistencia que encontramos al recuperar el botón Shutdown del WD My Cloud Gen 2.

Nuestra solución inicial mediante cron no había sobrevivido al reinicio.

En cambio, Boot Scripts permitió almacenar un script en una partición persistente y ejecutarlo automáticamente durante el arranque.

El resultado fue comprobado mediante:

  • La instalación correcta de la aplicación.
  • La ejecución manual del script sin errores.
  • La presencia del montaje después de reiniciar.
  • La aparición del botón Shutdown en la interfaz web.

La principal ventaja es que conseguimos automatizar una personalización del sistema sin modificar directamente la imagen SquashFS del firmware.

Esta misma técnica puede utilizarse como base para otras automatizaciones, siempre que sean compatibles con el funcionamiento de OS5.


Próximo capítulo

Capítulo 5. Cómo monitorear la suspensión del disco duro del WD My Cloud y reducir los despertares innecesarios.

Explicaremos cómo desarrollamos un monitor basado en hdparm, cómo registramos los estados ACTIVE, IDLE y STANDBY, y cómo calculamos el tiempo acumulado de suspensión y el número de despertares.

También analizaremos las modificaciones realizadas en las tareas programadas para evitar que determinados procesos despierten innecesariamente el disco.

Documentación técnica basada en pruebas realizadas sobre WD My Cloud Gen 2 con My Cloud OS5 5.33.102, octubre de 2026.

Comentarios

Entradas más populares de este blog

Código agrupador de cuentas del SAT, en excel 2026

 Si eres un contador como yo, y has querido incorporar el archivo PDF a tu excel, para usar alguna función de buscarv para encontrar las cuentas, te habrás podido encontrar que la versión descargable desde el SAT no permite incorporar directamente a excel y hay que hacer el proceso de conversión y revisión de errores.  Aquí tienes el mismo archivo, en versión Excel, que puedes convertir a CSV o a cualquier otro formato desde excel.  codigo_agrupador_sat.xlsx Actualizado con el archivo encontrado en la liga: https://www.gob.mx/cms/uploads/attachment/file/151586/codigo_agrupador.pdf Marzo 2026.

Herramientas Mac

Herramientas para Mac que no puedes no tener. Les voy a compartir algunas herramientas que uso en mi equipo. Esta lista se irá actualizando. Escribe en los comentarios si tienes alguna que sea indispensable en tu trabajo diario. Disk Inventory X Esta herramienta te permite ver en tu disco duro que archivos son los más grandes, así como los directorios con más información y te muestra gráficamente, identificando con colores los distintos tipos de archivos en tu espacio de almacenamiento masivo. Whatcable https://www.whatcable.uk/ Esta herramienta te ayuda a conocer las capacidades de tus cables USB-C. Si por alguna razón un cable funciona más rápido que otro, aquí encontrarás la respuesta. Itsycal https://www.mowglii.com/itsycal/ Esta app coloca un pequeño calendario en tu menú.  Yo configuré la mia así: Con esta configuración para ver el número de semana: Googly Eyes https://sindresorhus.com/googly-eyes Coloca un par de ojos en el menú de tu mac que siempre est...

Reloj ⌚ analógico y digital en código

Varios ejemplos de relojes en página web HTML completa. https://maryx.github.io/flutter_clock/analog_clock/index.html#/ https://maryx.github.io/flutter_clock/digital_clock/index.html#/ https://jankolancer.github.io/gradi_clock/#/ https://barbar-clock.web.app/#/