How-To Geek
How to Use Fdisk to Manage Partitions on Linux

The fdisk command is a text-based utility for viewing and managing hard disk partitions on Linux. It’s one of the most powerful tools you can use to manage partitions, but it’s confusing to new users.
This tutorial will go through the basics of using fdisk to manage a partition table. After using fdisk, you’ll have to use a mkfs command to format new partitions with a file system.
Sudo vs. Su
On Ubuntu, Linux Mint or other Ubuntu-derived distributions, the fdisk and mkfs commands must be prefixed with sudo. On distributions that don’t use sudo, use the su - command first to get a root shell, then type every command without sudo.
List Partitions
The sudo fdisk -l commands lists the partitions on your system.


You can add a disk’s device name to list only partitions on it. For example, use the following command to only list partitions on the first disk device:
sudo fdisk -l /dev/sda
Entering Command Mode
To work on a disk’s partitions, you have to enter command mode. You’ll need the device name of a disk from the fdisk -l command. The following command enters command mode for the first disk device:
sudo fdisk /dev/sda


Don’t edit partitions while they’re in use. If you want to edit system partitions, boot from a live CD first.
Using Command Mode
In command mode, you use single-letter commands to specify actions you want to take. Type m and press Enter to see a list of the commands you can use.


Viewing the Partition Table
Use p to print the current partition table to the terminal from within command mode.


Deleting a Partition
Use the d command to delete a partition. You’ll be asked for the number of the partition you want to delete, which you can get from the p command. For example, if I wanted to delete the partition at /dev/sda5, I’d type 5.


After deleting the partition, you can type p again to view the current partition table. The partition appears deleted, but fdisk doesn’t write these changes to disk until you use the w command.
Creating a Partition
Use the n command to create a new partition. You can create a logical or primary partition (l for logical or p for primary). A disk can only have four primary partitions.


Next, specify the sector of the disk you want the partition to start at. Press Enter to accept the default sector, which is the first free sector on the disk.
Last, specify the last sector of the partition on the disk. If you want to use up all available space after the initial sector, just press Enter. You can also specify a specific size, such as +5G for a five gigabyte partition or +512M for a 512 megabyte partition. If you don’t specify a unit after the + sign, fdisk uses sectors as the unit. For example, +10000 results in the end of the partition being 10000 sectors after its beginning.
System ID
The n command I just ran recreated the swap partition I deleted earlier — or did it? If I run the p command again, I’ll see that the new /dev/sda5 partition is a “Linux” partition instead of a “Linux swap” partition.
If I want to change its type, I can use the t command and specify the partition’s number.
I’ll be asked for the hex code of the type. I don’t know it, so I can type L to view a list of hex codes.


It says 82 is the code for Linux swap partitions, so I can type that.


This doesn’t format the partition with the file system you select. You’ll have to do that later with the appropriate mkfs command.
Writing Changes
Use w to write the changes you’ve made to disk.
Use q if you want to quit without saving changes.
Formatting a Partition
You must format new partitions with a file system before you can use them. You can do this with the appropriate mkfs command. For example, this command formats the fifth partition on the first disk with the ext4 file system.
sudo mkfs.ext4 /dev/sda5


Use the mkswap command if you want to format a partition as a swap partition:
sudo mkswap /dev/sda5
Fdisk contains a variety of other commands, including expert commands you can access by running the x command first. Check out fdisk’s man page with the man fdisk command for more detailed information.
Got Feedback? Join the discussion at discuss.howtogeek.com
Comments (6)
Chris Hoffman is a technology writer and all-around computer geek. He's as at home using the Linux terminal as he is digging into the Windows registry. Connect with him on Google+.
- Published 02/28/12




Good tutorial. Didn’t know fdisk could do all of this… thnx! ;-)
If it wasn’t for How to geek? I would have dumped my Ubuntu long ago. God Bless Ya all for all the help.
Bob
I am a Linux newbie and finding sources of information for entry level people like me is hard. This is a good article in my opinion.
You forgot to say after you use the (w) write command you need to either reboot or if you are using an OS that support it run the partprobe command. This will update the partition table information and then you can use the (mkfs) make file system command.
@iman
Thanks for the tip. You may indeed have to reboot — fdisk should warn you if you do. I’ve done this in the past without having to always reboot every time or manually run the partprobe command, though. Hmm.
I must say that this is a perfect start point for me being a newbie. I have wanted to use all of the “pro” tools during my learning curve in Linux, and this is the way to do it. I am pumped to find that someone would actually take the time out of their day to write such a detailed article just to help others. This is a main reason why I came to Linux in the first place. I have learned more in the first six months of Linux, than what I did in the last 12 years with * ms/lost/gui/no_info/pay/pay_again/ONEMORETIMEPAY.CON
disclaimer–
*This is only my opinion said in jest, and I do not wish for persons to think there is anything illegal or deceitful about any OS or Corporations, persons dead or alive, nor any entity, organisation, or similar associates in and of the BIG SOFT, and their dealings with the BIG SOFT.-Hairman