Linux Partition Management
Making Linux partitions is one of the toughest tasks for new Linux users. In this article, I will cover various topics on Linux partitioning. I’ll use different Linux partition managers to list, create, resize, extend and delete Linux partitions.
Linux partition managers
In this article, we will perform CRUD(Create or Clone, Read, Delete, Update) actions on system storage drive using various Linux partition managers. If you are a new Linux user, you might want to try an easy to use GUI based tool. If you like tinkering through Command line then we’ll also cover 4 cli-based partition managers.I hope you find this article helpful. If at any point, you find something confusing, let me know in the comment section below this article. I will reply ASAP.
- GUI based tools
- CLI based tools
List drives & partitions in Linux
1. Gparted list partitions
Gparted is the most popular and powerful partition manager for Linux. You can easily perform CRUD on your storage drives.
Listing partitions in Gparted is nothing more than opening the app itself. It takes a few seconds to load all the system drives and partitions.
Listing partitions in Gparted is nothing more than opening the app itself. It takes a few seconds to load all the system drives and partitions.
2. cfdisk list partitions
cfdisk and an extremely easy to use tool for managing partitions. It is cli based but provides easy to use options to perform actions on your system drives.
sudo cfdisk
Just open the app and it’ll list out all the partitions of the current storage drive.
Disk: /dev/sda
Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors
Label: dos, identifier: 0xa51a596a
Device Boot Start End Sectors Size Id Type
>> /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux
/dev/sda2 19533822 50782207 31248386 14.9G 5 Extended
├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris
└─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux
/dev/sda3 50782208 63211519 12429312 5.9G 83 Linux
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Partition type: Linux (83) │
│ Attributes: 80 │
│Filesystem UUID: 77518fa2-4624-430d-8965-abf7b328165d │
│ Filesystem: ext4 │
│ Mountpoint: / (mounted) │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
[Bootable] [ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ] [ Dump ]
Quit program without writing changes
3. fdisk list partitions
To list partitions in fdisk, use the ‘l’ argument with fdisk.
sudo fdisk -l
sandy@LinuxAndPeppermint ~ $
sudo fdisk -l
Disk /dev/sda: 30.1 GiB, 32365232128 bytes, 63213344 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa51a596a Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux /dev/sda2 19533822 50782207 31248386 14.9G 5 Extended /dev/sda3 50782208 63213343 12431136 5.9G 83 Linux /dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris /dev/sda6 27346944 50782207 23435264 11.2G 83 Linux Partition table entries are not in disk order.
Create Linux partition
1. Gparted create a new partition
Creating a partition using Gparted is extremely easy and quick in Linux. Simply select the drive you want to create partition from, right click and click ‘New’. Make sure to unmount the drive otherwise ‘New’ option will be greyed out.
Enter the new partition size and hit ‘Add’ button.
Enter the new partition size and hit ‘Add’ button.
Click apply to start creating the partition.
2. cfdisk Create Partition
To create a new partition using cfdisk, run cfdisk with sudo permission.
sudo cfdisk
Disk: /dev/sda Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors Label: dos, identifier: 0xa51a596a Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux /dev/sda2 19533822 50782207 31248386 14.9G 5 Extended ├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris └─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux >> Free space 50782208 63213343 12431136 5.9G [ New ] [ Quit ] [ Help ] [ Write ] [ Dump ] Create new partition from free space
Select Free space you want to create a partition of. Select ‘New’ and hit enter.
Disk: /dev/sda
Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors
Label: dos, identifier: 0xa51a596a
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux
/dev/sda2 19533822 50782207 31248386 14.9G 5 Extended
├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris
└─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux
>> Free space 50782208 63213343 12431136 5.9G
Partition size: 5.9G
May be followed by M for MiB, G for GiB, T for TiB, or S for sectors.
Enter the partition size and hit enter. By default, it creates the partition of all free space. So just pause before you hit enter and see if you really want to create partition out of all free space.
Disk: /dev/sda Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors Label: dos, identifier: 0xa51a596a Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux /dev/sda2 19533822 50782207 31248386 14.9G 5 Extended ├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris └─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux >> /dev/sda3 50782208 63213343 12431136 5.9G 83 Linux ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │Partition type: Linux (83) │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ [Bootable] [ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ] [ Dump ]
Everything is setup. Now select ‘Write’ and hit enter. It will ask you to type ‘yes’ and hit enter. This is the last confirmation, after this prompt, cfdisk will create the partition.
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │Partition type: Linux (83) │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ Are you sure you want to write the partition table to disk? yes_ Type "yes" or "no", or press ESC to leave this dialog.
That’s it. Partition created!
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│Partition type: Linux (83) │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
[Bootable] [ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ] [ Dump ]
The partition table has been altered.
3. fdisk Create Partition
To create Linux partition using fdisk, first list partitions and note down the device path you want to create the partition from.
sudo fdisk -l
sandy@LinuxAndPeppermint ~ $ sudo fdisk -l
Disk /dev/sda: 30.1 GiB, 32365232128 bytes, 63213344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa51a596a
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux
/dev/sda2 19533822 50782207 31248386 14.9G 5 Extended
/dev/sda3 50782208 63213343 12431136 5.9G 83 Linux
/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris
/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux
Partition table entries are not in disk order.
For this tutorial, I want to create a new partition from /dev/sda3. Then select the partition using fdisk command –
sandy@LinuxAndPeppermint ~ $
sudo fdisk /dev/sda3
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x64d7e7ab.
Command (m for help):
To create a new partition use ‘n’ command.
Command (m for help):
n
Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p):
Select partition type. To create a primary partition, use ‘p’ command and ‘e’ for extended type.
Select (default p):
p
Partition number (1-4, default 1):
Next, it will ask for partition number. Leave it default which is 1. Hit enter.
First sector (2048-12431135, default 2048): 2048 Last sector, +sectors or +size{K,M,G,T,P} (2048-12431135, default 12431135): +2000M Created a new partition 1 of type 'Linux' and of size 2 GiB. Command (m for help):
Then select the size of your new partition. The first sector, select default value, and Last sector enter the value in M. For example, to create a 2GB partition, type +2000M.At last, it’ll read the message as follows – ‘Created a new partition 1 of type ‘Linux’ and of size 2 GiB. ‘
But the partition is still not created. To write changes to disk, use ‘w’ command. It’ll show the following message – “The kernel still uses the old partitions. The new table will be used at the next reboot. Syncing disks.”
For the new partition to appear, you’ll need to reboot your system.
Resize Linux partition
1. Gparted resize partition
Resizing partition in Gparted is very simple. Open the app, select the partition you want to resize, right-click and select ‘Resize/Move’.
Enter the new partition size and hit ‘Resize/Move’ button. Lastly, click the apply button to apply the changes you have just made.
2. cfdisk Resize Partition
Start cfdisk with sudo permission.
sudo cfdisk
Select the partition you want to resize. Select ‘Resize’ option and hit enter.
Disk: /dev/sda Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors Label: dos, identifier: 0xa51a596a Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux /dev/sda2 19533822 50782207 31248386 14.9G 5 Extended ├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris └─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux >> /dev/sda3 50782208 63211519 12429312 5.9G 83 Linux ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Partition type: Linux (83) │ │Filesystem UUID: 266f1f9d-5e6e-4d80-a973-4c991cf28763 │ │ Filesystem: ext4 │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ [Bootable] [ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ] [ Dump ] Reduce or enlarge the current partition
Enter the new partition size.
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Partition type: Linux (83) │ │Filesystem UUID: 266f1f9d-5e6e-4d80-a973-4c991cf28763 │ │ Filesystem: ext4 │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ New size: 5.9G_ May be followed by M for MiB, G for GiB, T for TiB, or S for sectors.
And finally, write changes to disk by selecting write option.
Disk: /dev/sda Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors Label: dos, identifier: 0xa51a596a Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux /dev/sda2 19533822 50782207 31248386 14.9G 5 Extended ├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris └─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux >> /dev/sda3 50782208 57073663 6291456 3G 83 Linux Free space 57073664 63213343 6139680 2.9G ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Partition type: Linux (83) │ │Filesystem UUID: 266f1f9d-5e6e-4d80-a973-4c991cf28763 │ │ Filesystem: ext4 │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ [Bootable] [ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ] [ Dump ] Write partition table to disk (this might destroy data)
Delete Linux partition
1. Gparted Delete Partition
To delete a partition in Linux using GParted, simply select the partition, right-click and select delete option to delete the partition.
Do not forget to apply changes after deleting the partition.
2. cfdisk Delete Partition
To delete the partition using cfdisk, start cfdisk with sudo.
sudo cfdisk
Highlight the partition you want to delete and select ‘Delete’ option.
Disk: /dev/sda Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors Label: dos, identifier: 0xa51a596a Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux /dev/sda2 19533822 50782207 31248386 14.9G 5 Extended ├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris └─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux >> /dev/sda3 50782208 63211519 12429312 5.9G 83 Linux ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Partition type: Linux (83) │ │Filesystem UUID: 266f1f9d-5e6e-4d80-a973-4c991cf28763 │ │ Filesystem: ext4 │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ [Bootable] [ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ] [ Dump ] Delete the current partition
And finally, write changes to disk by selecting ‘Write’ option.
Disk: /dev/sda Size: 30.1 GiB, 32365232128 bytes, 63213344 sectors Label: dos, identifier: 0xa51a596a Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 19531775 19529728 9.3G 83 Linux /dev/sda2 19533822 50782207 31248386 14.9G 5 Extended ├─/dev/sda5 19533824 27344895 7811072 3.7G 82 Linux swap / Solaris └─/dev/sda6 27346944 50782207 23435264 11.2G 83 Linux >> Free space 50782208 63213343 12431136 5.9G ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐ │Filesystem UUID: 266f1f9d-5e6e-4d80-a973-4c991cf28763 │ │ Filesystem: ext4 │ └──────────────────────────────────────────────────────────────────────────────────────────────────────┘ [ New ] [ Quit ] [ Help ] [ Write ] [ Dump ] Write partition table to disk (this might destroy data)
3. fdisk Delete Partition
To delete a partition using fdisk, first, run fdisk and select the partition to be deleted.
sandy@LinuxAndPeppermint ~ $
sudo fdisk /dev/sda3
Welcome to fdisk (util-linux 2.31.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help):
Then use ‘d’ command to delete the selected partition.
Command (m for help):
d
And after it’s deleted you can create a new partition by using ‘n’ command and finally write all the changes to the disk by passing ‘w’ command.
Conclusion
So that was all for now on how to manage Linux partitions. In this article, we taught you listing Linux partitions, creating Linux partitions, resizing partitions and deleting partitions using three main partition management tools in Linux.
I will keep updating articles with more commands and options. As I said above, if you have any question, drop it in the comment section below this article. I will try my best to cover that as well in this article.
I will keep updating articles with more commands and options. As I said above, if you have any question, drop it in the comment section below this article. I will try my best to cover that as well in this article.