Disk partitioning is the process of dividing a storage device into separate, logical sections (partitions) so they can be formatted and used efficiently. Linux provides several tools for this, with fdisk, parted, and partprobe being among the most commonly used.
What is Disk Partitioning?
Disk partitioning is essential when:
- Installing a new OS
- Preparing a new hard drive
- Creating dedicated mount points (e.g., /home, /var, /data)
- Managing space efficiently and securely
A typical hard disk can have:
- MBR (Master Boot Record): Supports up to 4 primary partitions or 3 primary + 1 extended
- GPT (GUID Partition Table): Supports up to 128 partitions and is required for disks >2TB
fdisk – Command-Line Partitioning Tool for MBR Disks
fdisk is a powerful and interactive tool to create and manage partitions on MBR-based storage devices.
Syntax:
sudo fdisk /dev/sdX
Where /dev/sdX is the disk (e.g., /dev/sda, /dev/sdb)
Example Walkthrough:
- Open fdisk:
sudo fdisk /dev/sdb
- Common Commands Inside
fdisk:
| Command | Description |
|———|——————————-|
|m| Help |
|n| Create a new partition |
|d| Delete a partition |
|p| Print current partition table |
|t| Change partition type |
|w| Write changes to disk |
|q| Quit without saving | - Create a Partition:
Command (m for help): n
Select type: primary (p) or extended (e)
Choose partition number
Set starting and ending sectors or size
- Write the Partition Table:
Command (m for help): w
parted – Advanced Partitioning for MBR and GPT
parted supports both MBR and GPT partition tables and is scriptable, making it ideal for large disks and automation.
Syntax:
sudo parted /dev/sdX
Example: Creating a GPT Partition
sudo parted /dev/sdb
Inside parted:
(parted) mklabel gpt
(parted) mkpart primary ext4 0% 10GB
(parted) print
(parted) quit
You can also do this in one line:
sudo parted -s /dev/sdb mklabel gpt mkpart primary ext4 0% 10GB
Checking Partition Table:
sudo parted /dev/sdb print
partprobe – Inform Kernel of Partition Table Changes
After using fdisk or parted, you may notice that Linux doesn’t immediately recognize the new partitions. partprobe tells the kernel to re-read the partition table without requiring a reboot.
Syntax:
sudo partprobe /dev/sdX
Example:
sudo partprobe /dev/sdb
Alternatively, use:
sudo kpartx -a /dev/sdb
Formatting the New Partition
Once created, partitions must be formatted before use.
Format with ext4:
sudo mkfs.ext4 /dev/sdb1
Format with xfs:
sudo mkfs.xfs /dev/sdb1
Mounting a Partition
sudo mkdir /mnt/data
sudo mount /dev/sdb1 /mnt/data
To make it permanent, add to /etc/fstab:
/dev/sdb1 /mnt/data ext4 defaults 0 2
Summary Table
| Tool | Supported Table | Use Case | Interactive | Scripting |
|---|---|---|---|---|
| fdisk | MBR | Legacy BIOS-based partitioning | Yes | No |
| parted | MBR & GPT | Modern large-disk setup | Yes | Yes |
| partprobe | N/A | Refresh kernel’s view of disks | No | Yes |
✅ Conclusion
Partitioning is a foundational skill for Linux system admins. Whether you’re setting up a new server, deploying a new drive, or organizing data, mastering tools like fdisk, parted, and partprobe ensures you’re managing disks safely and efficiently.