Miércoles 12/04/2017

Actualmente uso la Raspberry Pi con el sistema operativo instalado en un disco duro externo conectado a uno de los puertos USB. Para ello utilizo BerryBoot que facilita enormemente la tarea y además permite instalar varios sistemas operativos simultáneamente.

Todo funciona correctamente pero, hace unos días, me percaté de que bajo Raspbian no tenía memoria de intercambio. Al teclear, en una terminal:

free -h

Aparece la siguiente información:

sin swap

Como se ve, la memoria swap está a cero, cosa que no ocurre en una instalación limpia, hecha con una imagen de Raspbian o con NOOBS.

He buscado en la red una solución a esta anomalía y me ha sorprendido que hay poca documentación que se haga eco de este fallo, quizás porque su repercusión en el rendimiento no es algo decisivo y pasa desapercibido hasta que existe una carga grande de trabajo.

Raspbian no utiliza una partición "swap" para la memoria de intercambio. En su lugar usa un archivo localizado en var/swap que se configura en /etc/dphys-swapfile.

Después de "cacharrear" con estos archivos, siguiendo varios tutoriales encontrados en la red, no he conseguido activar la swap. Así que me decidí a crear una partición de 2 gigas en el disco duro y configurarla para su uso.

Estos son los pasos que he seguido:

Creamos una partición swap usando Gparted. Para ello procedemos a instalar Gparted con:

sudo apt-get install gparted

Un tamaño razonable son 2G. (2048 M). Yo la he añadido al final para que quede en BerryBoot como "sda3", según se puede ver en la imagen siguiente:

gparted

Necesitamos el UUID de la partición swap, para que se monte automáticamente cada vez que se inicie Raspbian. Así que buscamos el UUID con este comando:

sudo ls -l /dev/disk/by-uuid/

Tenemos que localizar el identificador de la particion "sda3", este identificador esta justo después de la fecha, que en mi caso es:

59b8e853-7d9c-46a2-8ab4-8655ef624e76

Hacemos una copia del archivo fstab:

sudo cp /etc/fstab{,.original}

Editamos el fichero fstab:

sudo leafpad /etc/fstab

Y añadimos la siguiente linea, con el UUID que corresponda:

UUID=59b8e853-7d9c-46a2-8ab4-8655ef624e76 none swap sw 0 0

Después de reiniciar el equipo, configuramos la swap de la nueva partición y la activamos:

sudo mkswap /dev/sda3 && sudo swapon /dev/sda3

Desactivamos dphys-swapfile:

sudo dphys-swapfile swapoff && sudo dphys-swapfile uninstall

Reiniciamos y comprobamos que la particion está operativa con:

free -h

Debe de aparecernos algo parecido a la siguiente imagen:

con swap

Como se puede observar, en la imagen, existen 2 gigas de swap de los cuales se están utilizando 69M. y quedan libres 1,9G.

Con todo lo expuesto tendremos la partición swap operativa en el disco duro y además conseguiremos alargar la vida de la tarjeta SD evitando su desgaste.

twittear o compartir en Facebook


§