Exroot en openwrt

por | 1 mayo, 2020

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

Deja una respuesta

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