Four-step Process to Add Swap File

    1. Creating a file the size you want.

    2. Formatting that file to create a swapping device.

    3. Adding the swap to the running system.

    4. Making the change permanent.

'INFO: This will not work on btrfs-filesystems at the moment. See man swapon.'

For Adding a 512 MiB swap

    1. Creating a file for 512 MiB size you want:

We will create a /mnt/512MiB.swap swap file and set the permissions so that users cannot read it directly.

sudo fallocate -l 512m /mnt/512MiB.swap sudo chmod 600 /mnt/512MiB.swap

fallocate length suffixes are: k, m, g, t, p, e (See man fallocate).

By default your swap file may be created world readable. We set the 600 mode permissions in order to prevent users from being able to read potentially sensitive information from the swap file.

If fallocate fails with "fallocate failed: Operation not supported" as it currently does on my Maverick machine, you can do this the old way, again 512 mebibytes:

sudo dd if=/dev/zero of=/mnt/512MiB.swap bs=1024 count=524288 sudo chmod 600 /mnt/512MiB.swap

    1. Formatting that file to create a swapping device:

sudo mkswap /mnt/512MiB.swap

    1. Adding the swap to the running system:

sudo swapon /mnt/512MiB.swap

The additional swap is now available and can be seen by "cat /proc/meminfo"

    1. Making the change permanent:

Edit the /etc/fstab:

gksudo gedit /etc/fstab

Add this line at the end of the file:

/mnt/512MiB.swap none swap sw 0 0

Save. After the next reboot the swap will be used automatically.

Example of making a swap file

This is an example of making and using a swap file on a computer with no swap partition.

user@computer:~$ sudo fallocate -l 512m /mnt/512MiB.swap Password: user@computer:~$ sudo mkswap /mnt/512MiB.swap Setting up swapspace version 1, size = 536866 kB no label, UUID=dd6a01c8-93f0-41e0-9b7a-306956d8821b user@computer:~$ sudo swapon /mnt/512MiB.swap user@computer:~$ cat /proc/meminfo MemTotal: 499496 kB MemFree: 9156 kB Buffers: 4748 kB Cached: 233140 kB SwapCached: 724 kB Active: 254432 kB Inactive: 157920 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 499496 kB LowFree: 9156 kB SwapTotal: 524280 kB SwapFree: 523556 kB Dirty: 128 kB Writeback: 0 kB Mapped: 243420 kB Slab: 20672 kB CommitLimit: 774028 kB Committed_AS: 648680 kB PageTables: 2224 kB VmallocTotal: 524280 kB VmallocUsed: 5708 kB VmallocChunk: 518176 kB user@computer:~$ gksudo gedit /etc/fstab user@computer:~$ free total used free shared buffers cached Mem: 499496 479488 20008 0 8256 215892 -/+ buffers/cache: 255340 244156 Swap: 524280 3856 520424 #####Then, after running a few more programs... user@computer:~$ free total used free shared buffers cached Mem: 499496 492768 6728 0 1240 142336 -/+ buffers/cache: 349192 150304 Swap: 524280 53384 470896 #####Next, reboot to make sure it will work consistently. user@computer:~$ free total used free shared buffers cached Mem: 499496 493136 6360 0 7528 174700 -/+ buffers/cache: 310908 188588 Swap: 524280 17148 507132

Undoing your changes :

Undoing basically follows the same process in reverse.

gksudo gedit /etc/fstab

Remove the line

/mnt/512MiB.swap none swap sw 0 0

Remove the swap from the running system and remove the swap file.

sudo swapoff /mnt/512MiB.swap && sudo rm /mnt/512MiB.swap

No need to reboot.