Saturday, August 10, 2019

How to change Linux swap partition to different disk...

The scenario:
I have two hard disks on my laptop,
- 256 GB SSD (nvmeOn1)
- 1 TB HDD (sda)

Installed Ubuntu, below is how my partition table looks like:
nvmeOn1
        EFI                                  100 MB
        Microsoft reserved partition          16 MB
        Basic data partition              217.35 GB
        /                                     20 GB
        Recovery                               1 GB
        Unallocated                        14.34 MB

    sda
        Basic data partition              465.76 GB
        /opt                                9.54 GB
        /usr                               37.96 GB
        linux-swap                             6 GB
        /home                             412.26 GB

I want to change swap partition from HDD to SSD. Here's the steps:
1. Boot the machine with Ubuntu Live USB
2. Delete existing linux-swap partition on HDD (Resize any existing partition to make use this new unallocated partition)
3. Resize / partition on SSD to make space for new swap partition
4. Create new swap partition
5. Shutdown, remove Ubuntu Live USB and restart the machine
6. Now in Ubuntu, open terminal and run the command below
$ sudo blkid

    # output would be something like this
    /dev/nvme0n1p6: UUID="581446b5-7fab-46b0-ba3a-569c0fc42be3" TYPE="swap" PARTUUID="646e1aba-ebff-40e7-86c2-155211f485d5"

7. Look for "swap" and copy UUID from the newly created swap partition
8. Edit /etc/fstab file by running command below (don't forget to backup first)
$ sudo nano /etc/fstab

9. Replace the old UUID for swap with the new one.
10. Save the file and reboot the machine.

To verify, we can use free command
$ free

    # output
                  total        used        free      shared  buff/cache   available
    Mem:       32774452     1315660    30136320       34844     1322472    31009776
    Swap:       6292476           0     6292476

Or swapon -s command
$ swapon 0s

    # output
    Filename    Type  Size Used Priority
    /dev/nvme0n1p6                          partition 6292476 0 -2

This is how my new partition table looks like:
nvmeOn1
        EFI                                  100 MB
        Microsoft reserved partition          16 MB
        Basic data partition              217.35 GB
        /                                     14 GB
        linux-swap                             6 GB
        Recovery                               1 GB
        Unallocated                        14.34 MB

    sda
        Basic data partition              465.76 GB
        /opt                                9.54 GB
        /usr                               43.96 GB
        /home                             412.26 GB

1 comment:

  1. Thanks for the command, Is it possible to do this via GUI?

    ReplyDelete