sábado, 8 de septiembre de 2012

OpenWrt, receta para filesystems llenos

Al instalar OpenWrt en un router, en uno cualquiera de la interminable lista de modelos y fabricantes soportados, uno se encuentra con un sistema Linux bastante completo. Esto incluye el acceso a programas externos no incorporados directamente en la distribución (accesibles con el comando opkg).
Es inevitable "entusiasmarse" y empezar a bajar cosas hasta que uno se pega con la realidad de quedarse sin espacio; el router tiene muy poco espacio de almacenamiento en su filesystem, apenas 4 MBytes (implementado en memoria Flash) de los cuales un poco menos del 15% ya está ocupado luego de completar la configuración básica.
Al empezar a experimentar con paquetes rápidamente el tamaño escala a 60-70% o incluso mas del 90% de ocupación (lo que puede verse con el comando df y mirando el espacio libre en el mount point root o / ).
Entonces se hace lo lógico, se empiezan a remover paquetes instalados en la esperanza de recuperar algo del espacio, no es poca la sorpresa cuando el espacio ocupado no solo no disminuye con cada paquete removido sino que aumenta.
Ocurre por la logica particular con que está implementado el file system en memoria flash que un número de paquetes "basicos" ya están incluidos en memoria ROM (tambien implementado en Flash) y cuando son borrados no se recupera el espacio. La unica solución es hacer un "re-flash" o dicho en criollo volver a la configuración original. Eso es un dolor de cabeza.
Afortunadamente el alma de la configuración está en un solo directorio, el /etc/config y por lo tanto se puede solucionar en parte haciendo el backup del mismo

cd /etc
tar -cvzf /tmp/config.tar.gz config/

El archivo resultante config.tar.gz se puede bajar a la PC donde se lo respalde mediante el comando pscp ejecutado desde la PC (normalmente disponible en Linux o en Windows como parte del paquete Putty).

pscp -scp root@openwrt:/tmp/config.tar.gz config.tar.gz

Luego se re-inicializa la configuración del sistema y se hace el restore de la configuración; en mi caso eso es el 90% de la configuración (debo usualmente agregar un banner, cambiar el nombre de host y alguna pavada mas).
Y luego hay que pensar con cuidado que es lo que realmente se va a necesitar en el router, porque cuando se instalan algunos paquetes no siempre se puede volver atras. Quizás es un buen argumento para que el proximo router tenga la posibilidad de tener puertos USB donde se le pueda montar un filesystem persistente que no tenga este problema.

2 comentarios:

  1. Si lo montas en un CT5361, por ejemplo, puedes instalar dos usb los cuales puedes conectar a un hub autoalimentado y montar una unidad usb sobre el linux, donde podrás montar más programas. http://forum.meteoclimatic.net/index.php?topic=8388.0 y http://www.joshelu.es/2009/02/23/modificando-router-comtrend-ct-536/

    ResponderEliminar
  2. Este es el más económico creo: http://www.aliexpress.com/item/TP-link-Mini-External-802-11N-150Mbps-WiFi-3G-Mobile-Broadband-Wireless-Router-WR703N-TL-WR703N/600848806.html. Gracias por tu excelente post

    ResponderEliminar

Buscar este blog

Páginas vistas en total