Cómo añadir un disco duro a Linux, cómo particionarlo con GParted y cómo crear una partición de intercambio ó swap. Mostramos también qué pasos seguir para que el sistema operativo GNU Linux Debian ó Linux Ubuntu (válido también para otras distribuciones) use esta partición como swap. Explicamos cómo consultar y obtener la cantidad de swap y RAM actuales.

Definición de memoria de intercambio o swap

El espacio de intercambio es una zona del disco (un fichero o partición) que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física (RAM). A este espacio se le suele llamar swap, del inglés «intercambiar».

La mayoría de los sistemas operativos modernos poseen un mecanismo llamado memoria virtual, que permite hacer creer a los programas que tienen más memoria que la disponible realmente.

En este caso es cuando es útil el espacio de intercambio: el sistema operativo puede buscar un proceso poco activo, y moverlo al área de intercambio (el disco duro) y de esa forma liberar la memoria principal para cargar otros procesos. Mientras no haga falta, el proceso extraído de memoria puede quedarse en el disco, ya que ahí no consume memoria física. Cuando sea necesario, el sistema vuelve a hacer un intercambio, pasándolo del disco a memoria RAM. Es un proceso lento (comparado con usar sólo la memoria RAM), pero permite dar la impresión de que hay más memoria disponible.

En los sistemas operativos se puede usar como área de intercambio un fichero o una partición (los dos son en realidad parte de un disco duro o almacenamiento secundario):

  • Fichero de intercambio: un fichero en blanco puede prepararse para ser usado como área de intercambio. El usar un fichero para swap o memoria de intercambio tiene algunas ventajas: es fácil de crear, borrar, ampliar o reducir, según se crea necesario (a diferencia de una partición). Pero también tiene algunas desventajas: le afecta la fragmentación, ya que se encuentra dentro de un sistema de ficheros y si están en la misma partición que los datos suele ser algo más lento que usar una partición en exclusiva para ello.
  • Partición de intercambio: también se puede dedicar una partición entera del disco duro (o el disco completo) como área de intercambio. Ventajas: se puede conseguir mejor rendimiento si se coloca la partición en la zona más rápida del disco, que es al principio (los cilindros exteriores del disco, por donde pasan más datos a cada vuelta,
    no hay problemas de fragmentación, no hay que usar ningún sistema de ficheros en concreto. Tiene pocas desventajas: crear una partición es un proceso algo difícil; de todas formas, si se elige bien el tamaño de la partición, no hará falta ningún cambio en el futuro, la partición siempre ocupará el mismo espacio, aunque no se esté usando al 100%. En este artículo explicamos este método para usar swap.

Consideraciones iniciales antes de ampliar la swap en Linux

Copia de seguridad de los datos antes de iniciar el proceso

Por supuesto, otro detalle muy importante es que debemos hacer copia de seguridad de los datos antes de realizar este procedimiento. Siempre que tengamos que particionar y trabajar con discos es muy recomendable hacer copia de seguridad de los datos del equipo para evitar situaciones comprometedoras.

Ampliar memoria swap con fichero, añadir unidad de disco física y virtual

En otros artículos explicamos cómo ampliar la memoria de intercambio swap en Linux Ubuntu usando un archivo temporal, sin necesidad de usar una partición. Esto es útil en determinados casos en los que no se puede disponer de una partición para tal efecto. Aunque lo recomendable es usar una partición de tipo swap para la memoria virtual de Linux, suele ser más eficiente que usar un fichero en la misma partición donde están ubicados los datos.

Por otro lado, también explicamos cómo añadir un nuevo disco duro a un equipo con el sistema operativo Linux, tanto un disco duro virtual para un sistema operativo Linux virtualizado como un disco duro físico:

En este artículo supondremos que ya se ha añadido este disco duro, bien físico o bien virtual (en ambos casos el procedimiento posterior de particionado es el mismo).

Tamaño adecuado para la memoria swap de intercambio en Linux

Por último, en cuanto al tamaño óptimo de la memoria swap de intercambio de Linux, hay muchas discusiones sobre ello. Existe una regla «no escrita» que dice que lo más recomendable suele ser disponer de, al menos, el doble de tamaño de memoria swap que de RAM. Es decir, si tenemos un equipo Linux con 2GB de memoria RAM, es recomendable disponer de 4GB de memoria de intercambio, virtual o swap. Aunque hoy en día ya no es tan aplicable, al disponer de memoria RAM suficiente (pues no es cara) no suele ser necesario disponer de el doble de swap que de RAM. Si se trata de usuarios expertos puede que la cantidad de swap varíe en función del uso que se le quiera dar al equipo, aunque lo habitual es el doble que la RAM.

Consultar y mostrar la cantidad de memoria RAM y swap en GNU Linux

Para consultar la memoria Swap actual en GNU Linux podemos ejecutar el comando Linux (desde una ventana de terminal):

sudo grep SwapTotal /proc/meminfo

Para consultar la memoria RAM del equipo Linux podremos ejecutar el comando Linux:

sudo grep MemTotal /proc/meminfo

Este otro comando Linux también muestra información sobre la memoria RAM y Swap del equipo:

free

También es posible consultar la cantidad o tamaño de la memoria RAM y swap o intercambio desde el modo gráfico, para ello accederemos al menú «Aplicaciones» – «Herramientas del sistema» – «Monitor del sistema»:

Consultar y mostrar la cantidad de memoria RAM y swap en GNU Linux

En la pestaña «Recursos», podremos ver la memoria RAM total y la memoria de intercambio, virtual o swap total. También mostrá la usada actualmente y la libre. En nuestro caso disponemos de 2GB de memoria RAM y 690MB de memoria swap:

Consultar y mostrar la cantidad de memoria RAM y swap en GNU Linux

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

En las distribuciones actuales de GNU Linux Debian ó GNU Linux Ubuntu suele venir instalada la aplicación GParted, que es muy útil para realizar operaciones en unidades de disco y particiones, en «sustitución» del comando «fdisk» que, a veces, puede ser complicado de manejar. GParted es una aplicación gráfica muy sencilla de manejar y muy intuitiva, que permite eliminar, crear y modificar particiones de disco en sistemas operativos GNU Linux.

Si está instalada podremos abrirla desde el menú «Sistema» – «Administración» – «GParted»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Si no está instalado podremos instalarlo con el comando Linux (desde una ventana de terminal):

sudo apt-get install gparted

(o bien desde el modo gráfico usando el Gestor de Paquetes Synaptic)

Al abrir GParted (/usr/sbin/gparted), nos pedirá la contraseña del usuario, la introduciremos y pulsaremos «Aceptar»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Nos mostrará las particiones actuales de la primera unidad de disco, si hemos añadido una segunda unidad de disco, como es nuestro caso, la seleccionaremos en la parte derecha, en nuestro caso «/dev/sdb (20GB)»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Una vez seleccionada la unidad de disco con la que queremos trabajar y particionar, pulsaremos en el menú «Dispositivo» – «Crear tabla de particiones…»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Seleccionaremos el tipo de tabla de partición (por defecto «msdos») y pulsaremos «Aplicar»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Con el texto: «Advertencia: esto eliminará todos los datos en el disco entero /dev/sdb. Lo predeterminado es crear una tabla de partición MS-DOS».

Tras crar la tabla de particiones para el nuevo disco duro, seleccionaremos el espacio «sin asignar» y pulsaremos con el botón derecho del ratón sobre él, en el menú emergente seleccionaremos «Nuevo»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

En primer lugar crearemos la partición swap de intercambio, para ello introduciremos los siguientes datos:

  • Espacio libre precedente (MiB): lo dejaremos como lo calcule el sistema por defecto, puesto es que la primera partición del disco, este campo tendrá el valor «1».
  • Tamaño nuevo (MiB): indicaremos el tamaño para la nueva partición de swap, en nuestro caso, puesto que tenemos 2GB de RAM y puesto que vamos a usar este equipo como servidor de base de datos Oracle Database, introduciremos «4000».
  • Espacio libre a continuación (MiB): lo calculará el asistente para crear una nueva partición de forma automática.
  • Crear como: seleccionaremos «partición primaria».
  • Sistema de archivos: seleccionaremos «linux-swap».
  • Etiqueta: introduciremos una palabra que identifique esta partición, por ejemplo «swap2».

Tras introducir los datos pulsaremos en «Añadir»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

GParted nos mostrará cómo quedará la nueva partición, todavía no se aplicarán los cambios. Si queremos crear una nueva partición en el espacio libre, en este caso una partición normal ext3 para guardar datos, pulsaremos con el botón derecho del ratón sobre el espacio «sin asignar» y pulsaremos «Nueva» en el menú emergente:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Introduciremos los datos, en este caso, utilizaremos todo el espacio disponible y en «Sistema de archivos» seleccionaremos «ext3», en «Etiqueta» introduciremos, por ejemplo, «Datos». Pulsaremos «Añadir» para crear esta nueva partición:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Para aplicar los cambios indicados definitivamente en la nueva unidad de disco pulsaremos en el menú «Editar» – «Aplicar todas las operaciones»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Nos mostrará un mensaje de aviso indicando que se perderán todos los datos de la unidad seleccionada, pulsaremos «Aplicar»:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Con el texto: «¿Está seguro de querer ejecutar todas las operaciones pendientes? la edición de particiones puede causar PÉRDIDA DE DATOS. Se recomienda hacer una copia de seguridad de sus datos antes de continuar.»

Se iniciará la creación de las particiones swap y ext3 indicadas, el asistente de creación de particiones de GParted nos mostrará el progreso del proceso:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Tras la finalización del proceso, podremos ver todas las operaciones que se han realizado:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Pulse aquí para ver el resultado del asistente de GParted.

Y en GParted nos mostrará de forma gráfica cómo han quedado las particiones creadas:

Crear partición de swap o intercambio con GParted en GNU Linux Debian y Ubuntu

Con el siguiente comando podremos ver el estado actual de las particiones del equipo GNU Linux:

sudo fdisk -l

Devolverá algo así:

ajpdsoft@pcdebian:~$ sudo fdisk -l
Disco /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00096575
Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *           1         699     5614686   83  Linux
/dev/sda2             700        2610    15350107+   5  Extendida
/dev/sda5             700         787      706828+  82  Linux swap / Solaris
/dev/sda6             788        2610    14643216   83  Linux
Disco /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00046fd5
Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sdb1               1         511     4096000   82  Linux swap / Solaris
La partición 1 no termina en un límite de cilindro.
/dev/sdb2             511        2611    16874496   83  Linux

Activar partición swap de intercambio para que el sistema operativo Linux la use

Tras crear la partición swap de intercambio, como hemos indicado en el paso anterior, tendremos que activarla para que el sistema operativo la use como tal. Si no se realiza este proceso la partición swap creada anteriormente no será usada por el sistema operativo, no la reconocerá como una partición swap.

En primer lugar abriremos una ventana de terminal, estableceremos la partición indicada como de intercambio (swap), para ello ejecutaremos el comando Linux:

sudo mkswap -c /dev/sdb1

Donde «/dev/sdb1» será el identificativo de la unidad swap creada en el paso anterior.

El comando anterior devolverá algo así:

ajpdsoft@pcdebian:~$ sudo mkswap -c /dev/sdb1
[sudo] password for ajpdsoft:
Setting up swapspace version 1, size = 4095996 KiB no label, UUID=8073b9ab-ebff-433e-a0f4-674936e0ffed

A continuación vaciaremos los búferes del disco, forzaremos el guardado de los bloques cambiados al disco, para ello ejecutaremos el comando:

sudo sync

Ahora activaremos la partición swap creada y establecida para ser usada por el sistema operativo con el comando Linux:

sudo swapon /dev/sdb1

Donde «/dev/sdb1» será el identificativo de la unidad swap creada en el paso anterior.

Ahora podremos volver a consultar la cantidad de memoria swap de la que disponemos, ya debe aparecer la nueva asignada, para ello ejecutaremos el comando:

free

o el comando:

sudo grep SwapTotal /proc/meminfo

En nuestro caso devolverá: SwapTotal: 4802812 KB.

Para que el cambio quede aplicado tras reiniciar el equipo, deberemos editar el fichero /etc/fstab, ejecutaremos el comando Linux:

sudo nano /etc/fstab

Y añadiremos la siguiente línea al final:

/dev/sdb1 swap swap defaults 0 0

Activar partición swap de intercambio para que el sistema operativo Linux la use

Guardaremos los cambios pulsando «Control + O» y cerraremos nano con «Control + X».

Si queremos verificar que todo funciona correctamente reiniciaremos el equipo con el comando:

sudo shutdown -r now

(o desde el modo gráfico)

Y al arrancar volveremos a comprobar que la cantidad de memoria swap es la correcta como indicamos aquí.

Anexo

  • Resultado de la creación de las particiones swap y ext3 con GParted:

GParted 0.7.0
Libparted 2.3
Crear Partición primaria #1 (linux-swap, 3.91 GiB) en /dev/sdb
00:00:01 ( ÉXITO )
crear una partición vacía 00:00:01 ( ÉXITO )
ruta: /dev/sdb1
inicio: 2048
fin: 8194047
tamaño: 8192000 (3.91 GiB)
establecer el tipo de partición en /dev/sdb1 00:00:00 ( ÉXITO)
tipo de partición nuevo: linux-swap(v1)
crear un sistema de archivos linux-swap nuevo 00:00:00 ( ÉXITO)
mkswap -L «swap2» /dev/sdb1
Setting up swapspace version 1, size = 4095996 KiB LABEL=swap2, UUID=755605d6-5a5c-4ff0-9bdc-f1bd078b8194
Crear Partición primaria #2 (ext3, 16.09 GiB) en /dev/sdb 00:00:17 ( ÉXITO )
crear una partición vacía 00:00:00 ( ÉXITO )
ruta: /dev/sdb2
inicio: 8194048
fin: 41943039
tamaño: 33748992 (16.09 GiB)
establecer el tipo de partición en /dev/sdb2 00:00:00 ( ÉXITO )
tipo de partición nuevo: ext3
crear un sistema de archivos ext3 nuevo 00:00:17 ( ÉXITO )
mkfs.ext3 -L «Datos» /dev/sdb2
Etiqueta del sistema de ficheros=Datos
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
Stride=0 blocks, Stripe width=0 blocks
1054704 nodos-i, 4218624 bloques
210931 bloques (5.00%) reservados para el superusuario Primer bloque de datos=0 Número máximo de bloques del sistema de ficheros=0
129 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
8176 nodos-i por grupo
Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000

Escribiendo las tablas de nodos-i: hecho Creating journal (32768 blocks): hecho Escribiendo superbloques y la información contable del sistema de
ficheros: hecho

Este sistema de ficheros se revisará automáticamente cada 37 montajes o 180 días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.
mke2fs 1.41.12 (17-May-2010)