• Raspberry Pi
  • embebidos

Cómo montar una partición de Raspberry Pi en Linux

Muchas veces creamos copias de seguridad de nuestras imágenes de Raspberry Pi o de otras placas similares. Estos dispositivos embebidos suelen tener una memoria principal dividida en varias particiones, por lo general tendrán una partición de boot para alojar el kernel y posiblemente también parte del bootloader y por otra parte tendrán el rootfs, es decir el sistema de archivos raíz. El problema es que cuando creamos la copia de seguridad lo hacemos de la imagen en la tarjeta SD completa, con un comando parecido al siguiente:

sudo dd if=/dev/sdb of=rpi-armhf.img

Pero de esta forma no podemos coger esa imagen y montar directamente las dos particiones. Tendríamos que montar cada partición utilizando la sección de la imagen correcta en dos directorios distintos, esto se puede hacer manualmente, pero por suerte es posible utilizar una herramienta que lo haga todo por nosotros, kpartx.

El tutorial

Vamos a instalar kpartx y a utilizarlo para mapear cada partición a un archivo. Yo utilizo Debian pero puedes buscar kpartx entre los paquetes de tu distribución y el resto del procedimiento es el mismo.

sudo apt install kpartx
sudo kpartx -v -a rpi-armhf.img

Esto nos devuelve algo como lo siguiente, debemos quedarnos con esos loop* que son los archivos donde se han mapeado las particiones.

add map loop0p1 (254:0): 0 524289 linear 7:0 8192
add map loop0p2 (254:1): 0 124194816 linear 7:0 540672

Creamos dos directorios, uno para cada partición:

mkdir boot
mkdir rootfs

Montamos ambas particiones utilizando los dos archivos de la salida anterior:

sudo mount /dev/mapper/loop0p1 boot
sudo mount /dev/mapper/loop0p2 rootfs

Una vez hecho esto ya podemos leer o modificar cualquier archivo en nuestra imagen en los directorios boot y rootfs.

Una vez terminemos de trabajar deberemos desmontar las particiones y los archivos de mapeo.

sudo umount boot rootfs
sudo kpartx -d -v rpi-armhf.img

Y con esto nos queda nuestra imagen modificada que podemos grabar en cualquier tarjeta SD para disponer de un nuevo sistema.


Profile picture

Carlos Sanmartín Bustos

Desarrollador de software embebido comprometido con el software libre. Progresista y antiautoritario.