Ubuntu – How to increase swapfile in Ubuntu 18.04?

hibernateswap

I have laptop with 8 GB RAM and 1TB HDD. I have swapfile which is 2 GB (Ubuntu 18.04 uses a swapfile instead of a separate swap partition by default) and I want to increase it to use hibernation.

I want to increase it from 2 GB to 16 GB. Here is a screenshot of GParted:

GParted screenshot

I tried to increase it with fallocate -l 16G but it did not work.

Also there is the image from free -m:

<code>free</code> output

Best Answer

From Ubuntu 18.04 onwards, a swapfile rather than a dedicated swap partition is used (except when LVM is used). The swap file is named "swapfile". To change the size of this swap file:

  1. Disable the swap file and delete it (not really needed as you will overwrite it)

    sudo swapoff /swapfile
    sudo rm  /swapfile
    
  2. Create a new swap file of the desired size. With thanks to user Hackinet, you can create a 4 GB swap file with the command

    sudo fallocate -l 4G /swapfile
    

In this command, adjust 4G to the size you want.

Alternatively, you can use dd but feeding the correct parameters requires some calculations. If you want to make a 4 GB swap file, you will need to write 4 * 1024 blocks of 10242 bytes (= 1 MiB). That will make your count equal to 4 * 1024 = 4096. Create the file of this size with the command

    sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
  1. Assign it read/write permissions for root only (not strictly needed, but it tightens security)

    sudo chmod 600 /swapfile
    
  2. Format the file as swap:

    sudo mkswap /swapfile
    
  3. The file will be activated on the next reboot. If you want to activate it for the current session:

    sudo swapon /swapfile
    

You can check the swap that is available with the command swapon -s (no root permissions needed).

Related Question