23 mar. 2013

Aumentar memoria Swap en Ubuntu 13.04

Autor: Maikel Llamaret Heredia Publicado en GUTL.

Este post viene del anterior: Como hibernar en Ubuntu 13.04 Gnome-shell. Para que, como a mí, en los casos de haber configurado la tabla de particiones con un mínimo de memoria virtual o de intercambio Swap, o que sea más complicado aumentarla con Gparted. Por ejemplo, yo realice una instalación de 0 utilizando todo el HD de mi portátil con las siguientes particiones: Primaria dev/sda1 como /raíz, dev/sda2 como /swap, una extendida dev/sda3 y dentro una lógica dev/sda5 como /home:


Si quería aumentar la /swap con Gparted debía mover la partición /raíz (o la extendida) para poder aumentar la propia /swap, (como se ve en el pantallazo) algo un tanto complejo por el peligro de corromper la propia partición raíz y que luego el sistema vaya mal o no quiera arrancar, entre las peores cosas que podrían suceder. Este método está más que testedo en cualquier distribución GNU/Linux y se trata de realizar lo siguiente: Utilizar un archivo como memoria de intercambio. Siempre desde una terminal, ya sabes Ctrl+Alt+t.

Considerando que el archivo de memoria de intercambio puede ser colocado en cualquier directorio del disco duro, se ejecuta el comando dd, especificando que se escribirán ceros (if=/dev/zero) para crear el archivo /swap (of=/swap), en bloques de 1024 bytes (bs=1024) hasta completar una cantidad en bytes determinada (count=[cantidad multiplicada por el valor de bs]). En el siguiente ejemplo se realiza lo anterior hasta completar 524288000 bytes (dividido por 1024 equivalen a 512 MB):
Para crear el archivo que utilizaremos como SWAP escribiremos lo siguiente (como root), para ser root en la terminal:
sudo su
Y creamos el archivo:
dd if=/dev/zero of=/swap bs=1024 count=512000
El paso anterior puede demorar unos segundos, paciencia. Luego, para dar formato de memoria de intercambio al archivo creado, ejecutaremos el comando mkswap, del siguiente modo (siempre como root):
mkswap /swap
Devolverá en la terminal una salida "como" la siguiente, que no igual, ya que dependerá del tamaño que le hayamos asignado y del UUID de la lista de discos y particiones disponibles en el fstab:
Setting up swapspace version 1, size = 511996 KiB no label, UUID=fed2aba5-77c6-4780-9a78-4ae5e19c506b
Para activar la partición, y que sea utilizada inmediatamente por el sistema operativo, se ejecuta el comando swapon. En nuestro caso activaremos como partición de memoria de intercambio al archivo /swap que creamos y dimos formato SWAP en los pasos anteriores:
swapon /swap
Para que este archivo se utilice como memoria de intercambio automáticamente en el siguiente arranque del sistema, editaremos /etc/fstab (utilizando nano, gedit o el editor de texto plano de preferencia), agregando la línea correspondiente del siguiente modo, donde en lugar de el dispositivo, se pone la ruta del archivo de memoria de intercambio creado.
Abrimos:
nano /etc/fstab
Y añadimos:
/swap swap swap defaults 0 0
Como he dejado yo en mi fstab al final:
Podemos reiniciar el sistema y probar que nuestra memoria de intercambio se ha incrementado con el uso del nuevo archivo SWAP. Sencillamente lo que hemos hecho es crear un archivo en la raíz del sistema, darle formato SWAP y decirle a nuestro GNU/Linux que lo utilice como memoria de intercambio, junto a la partición que ya teníamos destinada para este objetivo. Podemos ver este aumento, bien desde la propia terminal con el comando:
free
O desde Htop:
También podemos ver el archivo creado como SWAP en nuestro sistema de archivos, yo la he aumentado con 512MB:
Pues ya podemos hibernar con toda tranquilidad, si somos de los que utilizamos mucha memoria en nuestro sistema, deberemos de aumentar el tamaño del archivo con 1GB o 2GB.

Gracias a: elav DesdeLinux