hace un tiempo salio la nueva versión de openwrt 19.07 y actualicé el router que tenia la vieja versión 18.06 y aproveché de configurar (de nuevo) ExRoot para tener mas espacio de almacenamiento
Preparación USB
En mi caso voy a usar un usb de 4Gb (3.73G en realidad) con 3 particiones:
– DATA formato ntfs 3Gb
– ROOT formato ext4 500M
– SWAP 225M
Esta etapa la podemos realizar desde cualquier equipo. Toma relevancia que la primera partición sea en el formato que reconoce windows ya que si usamos el mismo formato en la partición 2 o 3 windows no podrá leerla
Paquetes necesarios
según la wiki estos son los paquetes que vamos a necesitar
- block-mount
- ntfs-3g
- kmod-fs-ext4
- kmod-usb-storage
- e2fsprogs
- kmod-usb-ohci
- kmod-usb-uhci
- fdisk
opkg update && opkg install block-mount kmod-fs-ext4 kmod-usb-storage e2fsprogs kmod-usb-ohci kmod-usb-uhci fdisk ntfs-3g
Vamos a editar fstab para montar la partición «real» en otro directorio
DEVICE="$(awk -e '/\s\/overlay\s/{print $1}' /etc/mtab)" uci -q delete fstab.rwm uci set fstab.rwm="mount" uci set fstab.rwm.device="${DEVICE}" uci set fstab.rwm.target="/rwm" uci commit fstab
con ese pequeño script montamos la partición original en el directorio /rwm asi podemos editar fstab cuando necesitemos deshabilitar Exroot (editando el archivo fstab que esta en /rwm/upper/etc/config/fstab)
Luego insertamos el usb en el router y vemos cuales son los UUID de las particiones que nos interesan (en mi caso, sera la 2° y 3° partición, también si lo deseamos podemos obtener esta misma información conectando el usb a otro equipo)
root@router:~# block info /dev/mtdblock2: UUID="4915de92-aa75c409-82d77ce5-c9f02f36" VERSION="4.0" MOUNT="/rom" TYPE="squashfs" /dev/mtdblock3: MOUNT="/overlay" TYPE="jffs2" /dev/sda1: UUID="861E6BCE1E6BB639" LABEL="DATA Router" TYPE="ntfs" /dev/sda2: UUID="4b4500b8-c9b4-447e-853d-0c35f833e285" LABEL="ROOT" VERSION="1.0" TYPE="ext4" /dev/sda3: VERSION="1" TYPE="swap"
vemos que reconoce las 3 particiones, DATA Router,ROOT y swap, en mi caso la partición que hará de raíz será sda2
DEVICE="/dev/sda2" eval $(block info "${DEVICE}" | grep -o -e "UUID=\S*") uci -q delete fstab.overlay uci set fstab.overlay="mount" uci set fstab.overlay.uuid="${UUID}" uci set fstab.overlay.target="/overlay" uci commit fstab
ya con eso podemos reiniciar el router y verificar que ha aumentado el espacio de /
EDIT 16-05-2020 un paso importante que olvidé mencionar se ejecuta justo antes de reiniciar el router y es el de escribir todo el sistema de archivos en la partición nueva, eso se realiza con el siguiente comando
mount $DEVICE /mnt cp -a -f /overlay/. /mnt umount /mnt