sábado, 30 de octubre de 2021

Swap - Area de intercambio

Cuando instalamos Debian GNU/Linux, el proceso de instalación nos pide que le asignemos un espacio para el sistema y otro para el swap o también llamada Área de intercambio.


La partición swap es un espacio de intercambio que utiliza el disco duro (HDD o SSD), en lugar de la memoria RAM para almacenar los datos temporalmente.

Los usuarios avanzados saben que cantidad de espacio tienen que asignar a la partición swap, pero los nuevos usuarios que van a instalar Debian GNU/Linux por primera vez, no saben que cantidad de espacio tiene que asignar a la partición swap. 

Cuando encendemos el ordenador, la memoria RAM está casi vacía, pues sólo va ocupando espacio con procesos que permiten arrancar el sistema, pero todavía no hay ningún programa abierto. 
A medida que usamos el ordenador y abrimos aplicaciones, como por ejemplo el navegador, el gestor de archivos, editor de documentos, etc... la memoria se va llenando poco a poco, hasta que llegamos al tope de la memoria y no queda más espacio, entonces el sistema operativo Debian GNU/Linux empieza a usar la memoria swap, para poder seguir trabajando.

Obviamente, la memoria RAM es mucho más rápida que la partición swap, si no usáramos la partición swap, el sistema lo mas normal es que se bloquee, y perdamos, todo o parte del trabajo que estemos realizando.

Que tengamos asignado un espacio para la memoria swap no quiere decir que tenga que utilizarse. (ya que no todos lo usuarios llenaran la memoria ram del sistema)


La primera duda de un nuevo usuario de Debian GNU/Linux:

¿Necesito una partición swap para instalar Linux?

Rotundamente no. No es necesario si tu pc tiene 16 GB o mas de memoria ram, (con las grandes cantidades de memoria que usan hoy en día los PC no es necesario). Ahora bien, si vas hibernar el sistema operativo SI es obligatorio tener una partición swap.

Aunque yo SIEMPRE aconsejo usar memoria swap, tanto si hibernas como si no hibernas.

La siguiente duda es:

¿Cuánto espacio en GB tiene que tener la particion swap?

La memoria ram, es limitada. Entonces yo aconsejo asignar a la partición swap, la misma cantidad de espacio de swap que tenemos de memoria ram.

Por ejemplo: si tenemos 8 GB de ram, le asignamos a la partición swap 8 GB.

El conjunto formado por la memoria RAM y la swap permite simular una RAM de mayor tamaño que la que hay instalada en un equipo. Esto tiene como ventaja que proporciona una memoria adicional que es a veces necesaria para continuar ejecutando procesos. 

 Partición swap 

La partición Swap se formatea en cada nueva instalación del sistema, generando aleatoriamente una nueva UUID para identificar la partición swap. 

OBSERVACIÓN: Aunque durante el proceso de instalación se le puede  indicar: NO formatear partición swap.


 Qué es UUID 

UUID son las siglas en ingles de Universally Unique IDentifier, traducido al español, significa literalmente, IDentificador Unico Universal.

Como tal, el UUID es un código identificador estándar usado durante la instalación del sistema operativo.

Es utilizado para reconocer y distinguir una partición dentro del sistema.

El UUID tiene una longitud de 128 bit, es decir, 16 bytes. El número de posibles UUID es de 3x1038, por ello las probabilidades de coincidir dos códigos UUID son extremadamente bajas.

Como tal, un UUID está conformado por 32 dígitos divididos en cinco grupos, que obedecen a la siguiente estructura: 8-4-4-4-12.
Es decir, 36 caracteres y cuatro guiones que los separan.

Por ejemplo: 12345678-1234-1234-1234-123456789112

MUY IMPORTANTE: Cuando se tiene dos o mas sistemas operativos GNU/Linux instalados en el mismo disco duro (HDD ó SSD), por defecto, durante la instalación del sistema operativo, la partición swap se formatea y se genera un nuevo UUID aleatorio, creando un problema en el o en los sistemas operativos que ya estaban instalados en el disco duro (HDD ó SSD).

Dicho problema aparece de diferentes formas, pero el mas visual y el mas rápido en apreciarse, es durante el arranque del sistema, pues el sistema se demora en arrancar 1 minuto y 30 segundos. A causa del nuevo UUID generado, que no coincide con  el UUID que estaba usando el sistema, hasta ese momento. Y se demora, porque esta buscando la partición swap que tiene el UUID anterior a la instalación del nuevo sistema operativo, ya que dicha partición se usa para hibernar el sistema.


El kernel de linux, configura la partición swap en dos ficheros diferentes:

- /etc/fstab
- /etc/initramfs-tools/conf.d/resume

en ambos ficheros se configura para poder usa la swap.

La estructura de UUID es la siguiente xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx


/etc/fstab

En este archivo de configuración se encuentra todos los puntos de montaje, incluida la partición swap con respectiva UUID




/etc/initramfs-tools/conf.d/resume

En el archivo resume, se usa el parámetro del mismo nombre: resume, para localizar la partición swap.

El archivo de configuración llamado resume se encuentra en la siguiente ruta: /etc/initramfs-tools/conf.d/

y contiene la estructura que dijimos antes: RESUME=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx




Se puede deshabilitar cambiando el UUID por noresume, quedando asín: 

RESUME=none.

A partir de este momento no se podría hibernar el sistema operativo. Ya que no se esta usando partición swap.

Aunque lo correcto es actualizar el nuevo UUID de la partición swap, para que todo funcione correctamente.



 Soluciones al cambio del UUID 

 1- Añadir el parámetro noresume 

De forma eventual vamos a usar el parámetro noresume antes de cargar el sistema, directamente desde el grub de arranque. editamos la línea que carga el sistema y le agregamos al final el parámetro noresume al final de quiet splash


 2- Modificando la línea que carga el sistema operativo desde el grub 

Nos vamos a la ruta:

nano /etc/default/grub

y añadimos noresume al final de la linea que termina en quiet splash:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noresume"

Luego para que los cambios surtan efectos se tiene que actualizar el grub, usando el siguiente comando: update-grub

Nota muy importante: Este cambio se tiene que realizar en el grub que cargue todos los sistemas operativos instalados, no en el grub del sistema operativo que de error. Es decir en el grub por defecto que cargue todos y cada uno de los sistemas operativos instalados en el pc.


 3- Rectificando los archivos fstab y resume 

Cambiar el UUID erróneo en el nuevo UUID. Para ello, anotamos el código correcto para la partición swap, usando el siguiente comando:

lsblk -f

y copiamos y pegamos el UUID correcto de la partición swap, usando los siguientes comandos:

nano /etc/fstab


Cambiamos el UUID incorrecto por el nuevo UUID, y guardamos el cambio pulsando las teclas Control+o y salimos del archivo con Contral+x.

repetimos el proceso con el siguiente archivo:

nano /etc/initramfs-tools/conf.d/resume


Cambiamos el UUID incorrecto por el nuevo UUID, y guardamos el cambio pulsando las teclas Control+o y salimos del archivo con Contral+x.

Por ultimo actualizamos la nueva configuración, usando el siguiente comando:

update-initramfs -u

Reiniciamos el sistema y vemos como ya funciona correctamente



========================================================


OBSERVACION: Otras veces se demora al arrancar o al apagarse porque tenemos instalado el paquete el paquete unattended-upgrades. Entonces tenemos que desintalarlo

apt-get --purge remove unattended-upgrades

Despues actualizamos la nueva configuración, usando el siguiente comando:

update-initramfs -u

Reiniciamos el sistema y vemos como ya funciona correctamente.










No hay comentarios: