You need to use the dd command to create swap file. The mkswap command is used to set up a Linux swap area on a device or in a file.
Step 1 – Login as the Root User
Open a terminal window (select Applications > Accessories > Terminal) or login to remote server using the ssh client. Switch to the root user by typing su - (or sudo -s) and entering the root password, when prompted:
$ su -
$ sudo -s
Step 2 – Create Storage File
Type the following command to create 512MB swap file (1024 * 512MB = 524288 block size):
# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
524288+0 records in 524288+0 records out 536870912 bytes (537 MB) copied, 3.23347 s, 166 MB/s
- if=/dev/zero : Read from /dev/zero file. /dev/zero is a special file in that provides as many null characters to build storage file called /swapfile1.
- of=/swapfile1 : Read from /dev/zero write storage file to /swapfile1.
- bs=1024 : Read and write 1024 BYTES bytes at a time.
- count=524288 : Copy only 523288 BLOCKS input blocks.
Step 3 – Secure swap file
Setup correct file permission for security reasons, enter:
# chown root:root /swapfile1
# chmod 0600 /swapfile1
A world-readable swap file is a huge local vulnerability. The above commands make sure only root user can read and write to the file.
Step 4 – Set up a Linux swap area
Type the following command to set up a Linux swap area in a file:
# mkswap /swapfile1
Setting up swapspace version 1, size = 524284 KiB no label, UUID=0e5e7c60-bbba-4089-a76c-2bb29c0f0839
Step 5 – Enabling the swap file
Finally, activate /swapfile1 swap space immediately, enter:
# swapon /swapfile1
Step 6 – Update /etc/fstab file
To activate /swapfile1 after Linux system reboot, add entry to /etc/fstab file. Open this file using a text editor such as vi:
# vi /etc/fstab
Append the following line:
/swapfile1 none swap sw 0 0
Save and close the file. Next time Linux comes up after reboot, it enables the new swap file for you automatically.