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
crondseguí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.
- Descargar el paquete compatible desde el repositorio del proyecto.
- Acceder al dashboard administrativo del WD My Cloud.
- Entrar en la sección Apps.
- Seleccionar Install an app manually.
- Elegir el archivo
.bindescargado. - Confirmar la instalación.
- 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:
- Seleccionar Boot Scripts en la lista de aplicaciones.
- Comprobar que Run App esté activado.
- 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:
- Abrir la sección Editor.
- Escribir el nombre
30-restore-shutdown-button.sh. - Pegar el contenido del script.
- Seleccionar Save.
- 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:
- Instalar únicamente paquetes provenientes de fuentes confiables.
- Seleccionar el paquete correspondiente al modelo exacto.
- Revisar el contenido de los scripts antes de ejecutarlos.
- Evitar comandos que modifiquen indiscriminadamente archivos del sistema.
- Probar los scripts manualmente antes de reiniciar.
- Mantener procedimientos para revertir las modificaciones.
- 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
Publicar un comentario