Swap - How to create a swap file

Sep 5, 2015

The swap file is used to “expand” the memory RAM, so increases the capability to execute more software at the same time. In a GNU/Linux, it’s possible to create a dedicated swap partition or use a file.

Below I’ll show step by step how to create a Swap file in a Linux OS.

With this feature activated, will be possible to run many applications and keep the unactive process in “stand-by” in HD or SSD while you can play any heavy game or execute an HTTP or FTP service.

Simple script:

You can use the script below or check the following steps with the proper explanation:

# Make sure you're running as "root"
# run "sudo su" first

# Set the amount of swap memory you want
# (in Gigabytes)
export SWAP_SIZE_GB=2

# Create swap file and set permissions for root user only
dd if=/dev/zero of=/swap bs=${SWAP_SIZE_GB}M count=1024
chmod 600 /swap
mkswap -f /swap

# Add to fstab to always mount during booting
echo '/swap none swap sw 0 0' >> /etc/fstab

# Turn on all swap from fstab
# (you'll need to restart your PC if this don't work)
swapon -a

# Check if you swap turned on
free -mh

Step by step

Become super user:

# Ubuntu
sudo su

# Debian (without sudo)
su -

Create the swap file

Create an empty file from "zeros". The /dev/zero is a special Linux file with infinity size made entirely by zeros:

# Copy 1M*1024 (1GB) of zeros to /swap
dd if=/dev/zero of=/swap bs=1M count=1024

Set permissions to limit access to the swap file exclusively to root user:

chmod 600 /swap

Convert the empty file to a swap file:

mkswap -f /swap

Add swap configuration to “/etc/fstab”. Modify the file with something like this:

nano /etc/fstab

First, restart your machine, then run the following command:

# Check free memory
free -h

If you get a result like the one below, that means everything worked ok!


If you have any questions, just leave a comment below!

See ya! 😉

Luiz Felipe F M Costa

I am a quality engineer at Red Hat / Ansible. I love automation tools, games, and coffee. I am also an active contributor to open-source projects on GitHub.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.