[ONION] Cómo extender el almacenamiento en el Omega 2+

NOTA: Este post está basado en mi experiencia y la documentación oficial ubicada en esta url

Una de las cosas que más importan, hoy en día, es el almacenamiento, debido al gran número de datos que generamos… Nuestro Omega 2+ tiene almacenamiento interno, en concreto, monta una ROM en la que se almacena el firmware y el sistema operativo.

La imagen anterior es una captura de mi Omega 2+ recién reseteado de fábrica (suelo hacerlo mucho para hacer mis pruebas de rendimiento, configuraciones, etc). Así, es como esta la imagen que tendríais si accedéis a la consola nada más desempaquetar vuestro dispositivo.

  • Device info: indica las capacidades actuales de nuestro dispositivo
    • Procesador: 580 MHz Ralink MT-7688 MIPS
    • Memoria128MB 580MHz DDR2
    • Almacenamiento32 MB Flash Memory

Como podemos ver, las capacidades son. aunque generosas para su precio y tamaño, escasas para llevar a cabo proyectos importantes. Tan sólo 32MB de memoria flash dedicada al almacenamiento, de las cuáles, 8,5MB ya están dedicadas al sistema operativo… Llevar a cabo instalaciones de ciertos paquetes nos será bastante tedioso si no lo remediamos…

Tenemos dos opciones, ampliar solo almacenamiento (mediante USB o microsd) o bien ampliar almacenamiento y mover todo el sistema operativo y arranque al mismo. Yo seguiré la segunda opción, y es la que describiré en este post. Creo que es la mas completa y nos soluciona la vida de mejor manera…

Básicamente lo que haremos es “mover” desde la memoria flash del Omega 2+ todo el contenido del sistema operativo al nuevo soporte de almacenamiento.

La estructura básica del Omega 2+ se basa en dos carpetas:

  • /rom
    • contiene toda la información “solo lectura” del dispositivo
  • /overlay
    • contiene todos los cambios que realizamos sobre nuestro Omega 2+, como archivos, programas instalados, etc…

En el arranque, se combinan ambas carpetas y conseguimos la estructura lógica / desde dónde podemos acceder a todo el contenido (como en cualquier sistema Linux). Lo que haremos es mover todo el contenido del /overlay sobre nuestro nuevo soporte de almacenamiento, con lo que conseguiremos que toda nuestra información, al final, resida sobre dicho soporte, y podamos así extenderlo.

Material necesario

  • Omega 2+ con firmware >= 0.1.9 b149
  • Dock USB para Omega 2+
  • Cable USB
  • Micro sd del tamaño que creáis oportuno para vuestras necesidades (yo no pasaría de 16Gb, podéis ver su guía de memorias en esta url)

Arrancando el sistema desde micro sd

Para poder ampliar el almacenamiento y poder arrancar desde la sd, debemos seguir estos pasos:

  1. Actualizar el repositorio de paquetes (podéis ver un ejemplo en mi anterior entrada)
  2. Actualizar a la última versión nuestro firmware (ídem que el punto anterior)
  3. Formatear la sd desde el Omega 2+
  4. Preparar la sd para montar el sistema de ficheros con permiso de lectura
  5. Traspasar todo el sistema operativo y configuración de arranque a la sd

Tened en cuenta que:

  • Una vez iniciado el proceso, eliminaremos todo el contenido actual del Omega 2+
  • Perderemos toda la configuración y software que hayáis instalado en el Omega 2+
  • Si en algún momento sacáis la sd del slot y encendéis el sistema, provocaréis un reset del mismo, y lo tendréis todo desconfigurado, volviendo al punto de partida (muy probablemente no dispongáis ni de la consola! pero puedes ver este otro post dónde te explico cómo hacerlo)

Vamos a ello…

Comprobar el estado de nuestro filesystem

Para ello podemos ejecutar el siguiente comando df:

En mi caso, /rom está al 100% de uso (normal, no se puede escribir), y mi /overlay está al 11%. Esto significa que nos quedan libres unos 25MB de espacio… Recordemos que parto de un sistema “limpio”.

Tras nuestro nuevo procedimiento, la capacidad se verá aumentada considerablemente. No olvidéis estos datos…

Instalación de paquetes

Es probable que debido a un cambio de kernel, obtengáis un error al realizar la instalació. En tal caso, dirigiros al final de este post para seguir las instrucciones necesarias, y posteriormente podréis continuar con el apartado siguiente a la instalación

Empecemos, actualizamos el sistema e instalamos las herramientas necesarias:

  • kmod-usb-storage-extras
  • e2fsprogs
  • kmod-fs-ext4

Es el momento de insertar la sd en la ranura (si no lo hablareis hecho antes) y verificar que realmente podemos acceder a ella.

Formateo en ext4

Necesitamos explorar los volúmenes disponibles en nuestro sistema.

Ejecutamos el comando mount:

Podemos ver la última entrada como /dev/mmcblk0p1, que es la que hace referencia a la tarjeta sd. Si en vez de sd usamos un stic USB, el dispositivo sería /dev/sda1. Si dispusiéramos de múltiples dispositivos, el identificador del final (1) indicaría el órden del dispositivo: sda1, sda2, sda3… mmcblk0p1, mmcblk0p2, mmcblk0p3…

Nosotros usaremos /dev/mmcblk0p1 que es nuestra tarjeta sd. En nuestro caso se trata de una micro sd de 4Gb.

A continuación, iniciamos el formateo de la tarjeta:

En mi ejemplo, yo ya disponía de un sistema ext4 en la sd. Decid a todo que sí, y finalizad el formato.

Ya tenemos nuestra sd formateada en ext4.

Montar el volúmen

Ahora que ya tenemos la sd formateada, es el momento de montar el nuevo volumen.

Para ello, lo que haremos será crear un nuevo directorio como punto de anclaje para el nuevo volumen, y montaremos el dispositivo lógico sobre el mismo:

Tras lo cuál, ya tenemos disponible nuestra nueva unidad de almacenamiento. Podemos acceder a ella mediante /mnt/mmcblk0p1:

Si accedemos al mismo vemos que, efectivamente, es accesible y está vacío.

Duplicar la capa /overlay sobre el nuevo volumen

Ahora que ya tenemos el volumen montado y es accesible, es el momento de volcar todo nuestro /overlay sobre él, para que podamos posteriormente hacer uso del mismo de manera transparente:

tras ejecutar este comando veremos cómo se procesa todo el directorio /overlay y lo asocia al nuevo volumen.

Ahora ya tenemos vinculado /overlay con /mnt/mmcblk0p1

Hacer persistente el vínculo y automontarlo en cada arranque

Ahora es el momento de hacer que el volumen sea montado en cada arranque.

Instalamos block-mount:

Persistimos los cambios en el fstab:

Ahora ya lo tenemos en el fstab, y podremos arrancarlo automáticamente.

Debemos modificar algunos parámetros. Para ello editamos fstab:

Y lo modificamos según este contenido:

Hemos cambiado:

  • línea 10: cambiamos el punto de montaje del volumen, ahora apunta a /overlay
  • línea 12: hacemos que los cambios estén activos

Ya solo nos queda realizar un reboot al sistema:

y cuando arranque el sistema, lo hará efectivamente desde la tarjeta de memoria…

Verificar el nuevo filesystem

Una ves reiniciado el Omega 2+, podemos volver a recuperar los datos del filesystem y comprobar que realmente estamos haciendo uso de nuestra nueva tarjeta sd como almacenamiento principal del sistema_

Efectivamente, podemos comprobar que ahora nuestra /overlay está al 1%, del mismo modo que nuestra tarjeta sd montada en /dev/mmcblk0p1, que apunta a /overlay.

Y si, vemos esos casi 4Gb de espacio disponible!

 

Y hasta aquí este tutorial.

Si tenéis cualquier problema o duda, podéis dejarme un comentario e intentaré ayudaros.

 

Jordi

 


Apéndice: errores de instalación por versión del kernel

En el momento de escribir este artículo, mi Omega 2+ tenía el kernel 4.4.46.

Sin embargo, existen paquetes que ya están preparados para el 4.4.76 y por lo tanto, al intentar instalarlos mediante opkg nos devuelve un error.

A continuación os indico cómo proceder en ambos casos, porque no lo dice en su documentación actual…

Primero comprobamos nuestro kernel

Vemos que tenemos el 4.4.46, sin embargo parece ser que han empezado a lanzar paquetes que requieren el 4.4.76

Disponemos del repositorio de software en esta url, desde dónde podremos descargar las versiones de nuestro kernel: http://repo.onion.io/omega2/packages/core

El error que nos da el sistema “normal” de instalación es este:

En caso de obtenerlo por pantalla, deberéis instalar los paquetes de manera manual…

Instalar manualmente kmod-fs-ext4:

Instalar manualmente kmod-usb-storage:

See this for more info: http://community.onion.io/topic/2472/can-not-instal-ext4-want-to-use-usb-as-root/8

Share

Related Images:

Deja un comentario

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