Fdisk: Managing Linux Partitions - A Comprehensive Guide

Understanding and Utilizing the fdisk Command in Linux
fdisk is a command-line utility employed in Linux systems for the purpose of viewing and manipulating hard disk partitions. While exceptionally potent for partition management, its interface can present a steep learning curve for those unfamiliar with its operation.
This guide will cover the fundamental aspects of utilizing fdisk to administer a partition table. It’s important to remember that following partition modifications with fdisk, a file system format using a command like mkfs is necessary for newly created partitions.
Core Functionality of fdisk
The primary role of fdisk is to interact directly with the partition table of a storage device. This allows for operations such as creating, deleting, and modifying partitions.
Understanding partition types and their implications is crucial before making any changes. Incorrect modifications can lead to data loss, so caution is advised.
Preparing to Use fdisk
Before launching fdisk, it’s essential to identify the correct disk you intend to modify. Using commands like lsblk or fdisk -l will display a list of available disks and their current partition layouts.
Always run fdisk with root privileges, typically using sudo, to ensure you have the necessary permissions to make changes to the disk.
Basic fdisk Commands
- m: Displays the help menu, listing available commands.
- p: Prints the current partition table.
- n: Creates a new partition.
- d: Deletes an existing partition.
- w: Writes the changes to the disk and exits.
- q: Quits without saving changes.
These commands form the basis of most fdisk operations. Carefully review the options presented after initiating a command, such as specifying partition type and size.
Formatting Partitions After Modification
Once you've successfully modified the partition table with fdisk, the new partitions must be formatted with a file system. This is typically achieved using the mkfs command, followed by the desired file system type (e.g., mkfs.ext4 for the ext4 file system).
Formatting prepares the partition for storing data and ensures it's recognized by the operating system. Without formatting, the partition will be unusable.
Sudo vs. Su
When working with Ubuntu, Linux Mint, or other distributions based on Ubuntu, commands like fdisk and mkfs require the use of sudo as a prefix.
However, on systems that do not utilize sudo, obtaining root access necessitates the execution of su - initially.
Following the acquisition of a root shell through su -, subsequent commands can be entered directly, without the need for the sudo prefix.
Understanding the Difference
Sudo allows permitted users to execute commands as the superuser, while su switches the current user to the superuser (root).
The choice between these commands depends on the specific distribution and its configuration regarding privilege escalation.
Essentially, sudo grants temporary elevated privileges, whereas su provides a persistent root shell.
Practical Implications
- On sudo-enabled systems, using sudo before a command prompts for the user's password.
- On systems relying on su, the root password is required when executing su -.
- Always exercise caution when operating with root privileges, as incorrect commands can have system-wide consequences.
Therefore, understanding whether your system employs sudo or su is crucial for effective system administration.
Properly utilizing these commands ensures that administrative tasks are performed securely and efficiently.
Partition Listings with fdisk
The command sudo fdisk -l is utilized to display a comprehensive list of partitions present on your system.
This command provides detailed information about each partition, including its size, type, and location on the storage device.
Specifying a Disk Device
It is possible to refine the output by specifying a particular disk device. This allows you to view only the partitions associated with that specific drive.
For instance, to view the partitions located on the initial disk device, the following command can be executed:
sudo fdisk -l /dev/sda
This command will focus solely on displaying the partition information for the /dev/sda device, streamlining the output and enhancing clarity.
Utilizing Command Mode for Partition Management
Managing disk partitions necessitates entering command mode. The device name of the target disk, obtainable through the fdisk -l command, is a prerequisite for this process.
The subsequent command initiates command mode for the primary disk device:
sudo fdisk /dev/sda
It is crucial to avoid modifying partitions that are currently mounted or in use. Should alterations to system partitions be required, booting from a live CD environment is strongly recommended beforehand.
Important Considerations
Performing partition edits on active partitions can lead to data corruption or system instability. Therefore, a live environment provides a safe and isolated space for these operations.
The fdisk utility is a powerful tool, and caution should be exercised when making changes to disk partitions. Always double-check commands before execution.
Command Mode Operation
Command mode allows users to execute actions through the utilization of single-character commands. Initiating this mode is achieved by typing m and subsequently pressing the Enter key, which then displays a comprehensive list of available commands.
Accessing Command Options
A directory of possible actions can be readily accessed within command mode. This is done by simply entering 'm' and confirming with the Enter key.
The system then presents a menu detailing the various commands at your disposal.
This approach streamlines partition management, offering a concise and efficient method for interacting with fdisk.
Examining the Partition Table
Within command mode, the p command is utilized to display the existing partition table directly in the terminal.
This allows for a quick review of the current disk partitioning scheme.
Understanding the Output
- The output details partition numbers, start and end sectors, and partition types.
- Each row represents a single partition on the disk.
- p provides a fundamental overview of the disk's layout.
Analyzing this information is crucial before making any modifications to the partition structure.
It ensures you understand the current configuration and can avoid potential data loss.
Partition Deletion Process
The d command is utilized for the removal of a partition. You will be prompted to enter the partition number designated for deletion. This number can be identified by first using the p command to display the current partition table.
As an illustration, to remove the partition located at /dev/sda5, the number 5 would be entered.
Verifying Partition Removal
Following the deletion process, re-executing the p command allows you to review the updated partition table. The targeted partition will be shown as removed.
However, it’s important to note that these alterations are not yet permanent. The changes remain in fdisk’s memory until the w command is used to write them to the disk.
Creating a Partition
The n command is utilized to establish a new partition on your system. You have the option of defining either a logical or a primary partition, indicated by l or p respectively.
It's important to remember that a disk is limited to a maximum of four primary partitions.
Partition Specification
Following the partition type selection, you will be prompted to define the starting sector for the partition. Accepting the default value by pressing Enter will initiate the partition at the disk's first available sector.
Subsequently, you must designate the final sector of the partition. Pressing Enter without input will allocate all remaining space following the initial sector to the new partition.
Alternatively, a specific size can be assigned using notations like +5G to create a five gigabyte partition, or +512M for a 512 megabyte partition.
If no unit is specified after the plus sign (+), fdisk defaults to using sectors as the measurement unit. For instance, +10000 will position the partition's end 10000 sectors beyond its starting point.
Partition Identification and Type Adjustment
Executing the n command previously resulted in the recreation of the swap partition that was removed. However, verification is necessary to confirm its correct configuration.
Running the p command again reveals that the newly created /dev/sda5 partition is identified as a "Linux" partition, rather than the intended "Linux swap" partition.
Modifying the Partition Type
To rectify this, the t command can be employed, specifying the partition number for modification.
The system will then prompt for the hexadecimal code corresponding to the desired partition type.
If the code is unknown, typing L will display a comprehensive list of available hexadecimal codes.

According to the displayed list, 82 represents the hexadecimal code for Linux swap partitions.

It’s important to note that this command only changes the partition type; it does not format the partition with a file system.
Subsequent formatting must be performed using the appropriate mkfs command to complete the process.
Saving Modifications
The w command is utilized to record alterations made to the storage device.
Should you desire to exit the editor without preserving your work, employ the q command.
Understanding the Commands
These commands provide a straightforward method for managing your edits.
w ensures that no progress is lost, while q allows for discarding unwanted changes.
Practical Application
When you've completed your revisions, always use w to save them.
If you've made mistakes or wish to revert to the previous version, q offers a clean exit.
Important Considerations
- Always double-check your work before using q.
- Frequent use of w is recommended to prevent data loss.
These simple commands are essential for efficient text editing.
Mastering w and q will streamline your workflow and protect your valuable data.
Partition Formatting Procedures
Before a newly created partition can be utilized, it requires formatting with a suitable file system. This process is accomplished using the corresponding mkfs command. As an illustration, the following command will format the fifth partition located on the first storage device, employing the ext4 file system.
sudo mkfs.ext4 /dev/sda5
This command initializes the partition, preparing it for data storage.
Formatting a Swap Partition
Should the intention be to designate a partition for swap space, the mkswap command is employed. This command specifically prepares the partition for use as virtual memory.
sudo mkswap /dev/sda5
The command configures the partition to function as swap space, enhancing system performance.
Advanced Fdisk Commands
The fdisk utility incorporates a range of commands beyond the basic operations. Access to these advanced functionalities is gained by first executing the x command within the fdisk environment.
For a comprehensive understanding of all available options and their usage, consult the fdisk manual page using the command man fdisk.
Useful Linux Commands
A variety of commands are available for managing files, processes, and networking within a Linux environment. These tools provide essential functionalities for system administration and development.
- Files: tar, pv, cat, tac, chmod, grep, diff, sed, ar, man, pushd, popd, fsck, testdisk, seq, fd, pandoc, cd, $PATH, awk, join, jq, fold, uniq, journalctl, tail, stat, ls, fstab, echo, less, chgrp, chown, rev, look, strings, type, rename, zip, unzip, mount, umount, install, fdisk, mkfs, rm, rmdir, rsync, df, gpg, vi, nano, mkdir, du, ln, patch, convert, rclone, shred, srm, scp, gzip, chattr, cut, find, umask, wc, tr
- Processes: alias, screen, top, nice, renice, progress, strace, systemd, tmux, chsh, history, at, batch, free, which, dmesg, chfn, usermod, ps, chroot, xargs, tty, pinky, lsof, vmstat, timeout, wall, yes, kill, sleep, sudo, su, time, groupadd, usermod, groups, lshw, shutdown, reboot, halt, poweroff, passwd, lscpu, crontab, date, bg, fg, pidof, nohup, pmap
- Networking: netstat, ping, traceroute, ip, ss, whois, fail2ban, bmon, dig, finger, nmap, ftp, curl, wget, who, whoami, w, iptables, ssh-keygen, ufw, arping, firewalld
These commands represent a powerful toolkit for Linux users.
RELATED: Best Linux Laptops for Developers and Enthusiasts