USB como almacenamiento en OpenWRT

por | 22 julio, 2015

Como es razonable, cuanto más paquetes instalamos en OpenWRT, más espacio se necesita para almacenarlos. Usualmente las funciones básicas vienen ya instaladas en cualquier compilación del mismo, pero al instalar nuevos paquetes con nuevas funciones es común que el espacio se agote rápidamente, y para estos casos, si nuestro dispositivo dispone de un puerto USB (como el MR3220v2) podemos utilizar un pendrive, disco duro externo o memoria para ampliar esta capacidad.

Voy a explicar cómo se puede utilizar una memoria USB como almacenamiento predeterminado para OpenWRT (partición raíz, /) y poder almacenar en ella todos los archivos de sistema e instalar los paquetes de software. La guía está pensada para OpenWRT 14.07 Barrier Breaker con la interfaz web LuCI, pero puede funcionar para otras versiones si las opciones se encuentran disponibles.

En mi caso he utilizado un pendrive de 8GB de almacenamiento que me regalaron en la 3era Conferencia Internacional de Software Libre y Código Abierto y lo tenía en desuso por ahí. Desde la PC y utilizando GParted lo repartí en dos particiones: una de 1GB para el sistema y una de ~7GB para archivos, pensando en montar próximamente un servidor FTP con OpenWRT. El formato que utilicé para las particiones es ext4, pero por defecto los formatos ext2, ext3, ext4 y fat32 están soportados.

Luego de haber preparado el pendrive reestablecí el router a los valores predeterminados (esto porque quería reconfigurarlo, no es necesario) y me dispuse a seguir uno de las muchas guías que encontré en internet para realizar este procedimiento en OpenWRT Barrier Breaker (14.07). Resulta que luego de 20 minutos de probar distintos métodos y muchos comandos sin conseguir ningún resultado funcional (reinicié varias veces y nunca logré iniciar “/” desde el pendrive) recordé que desde la configuración web (LuCI) tiene la opción de configurar Mount Points (System -> Mount Points). Y desde allí podía visualizar las dos particiones del pendrive, /dev/sda1 y /dev/sda2.

Puntos de montaje OpenWRT

 

Y con un clic en Edit nos muestra la configuración para montar /dev/sda1, en mi caso el sistema de archivos fue reconocido sin problemas y con marcar la opción “Use as root filesystem”, guardar los cambios y reiniciar el router fue suficiente para que montara “/” en la partición del USB.

OpenWRT Mount sda1

Y aquí vemos el antes (izquierda) y el después (derecha) en el espacio libre para instalar software, el espacio libre ha aumentado a 974.57MB (95%).

Espacio disponible: Antes (izquierda) y después (derecha).

Espacio disponible: Antes (izquierda) y después (derecha).

Desde aquí es posible gestionar otros puntos de montaje y realizar de forma gráfica tareas que llevarían varios comandos, por ej. utilizar una partición de la memoria USB para área de intercambio (swap) y con ello mejorar el rendimiento del sistema. O en mi caso, he montado la partición /dev/sda2 en /mnt/ftp para posteriormente utilizarla en el servidor FTP con OpenWRT.

Como enseñanza he aprendido que puede resultar muy útil mirar las opciones de configuración que ofrecen las interfaces gráficas, pues si bien la linea de comandos sigue siendo mi favorita en este caso LuCI me ha ahorrado un pequeño dolor de cabeza.
De todos modos, para aquellos que quieran saberlo, la configuración de los puntos de montaje está en el fichero /etc/config/fstab y se puede administrar desde UCI perfectamente. El fstab de mi router ha quedado así:

root@OpenWrt:~# cat /etc/config/fstab 

config global 'automount'
    option from_fstab '1'
    option anon_mount '1'

config global 'autoswap'
    option from_fstab '1'
    option anon_swap '0'

config mount
    option target '/'
    option device '/dev/sda1'
    option fstype 'ext4'
    option options 'rw,sync'
    option enabled '0'
    option enabled_fsck '0'

config swap
    option device '/dev/sda2'
    option enabled '0'

config mount
    option enabled '1'
    option device '/dev/sda2'
    option target '/mnt/ftp'
    option fstype 'ext4'

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *