fdisk partitions

Linux Basics: Disk Management and Partitioning using fdisk mkfs zfs df

In this article, we’ll delve into how to manage disk space, create and manage disk partitions, format partitions, and work with advanced filesystems like ZFS in Linux. Understanding and mastering these tasks are crucial when managing a Linux server, as it’s vital to monitor your available disk space, modify your disk layout as required, and utilize the capabilities of modern filesystems.


Disk management and partitioning in Linux involve commands like df, fdisk, and mkfs, along with tools for managing advanced filesystems such as ZFS. This article explores these commands, their utilization for acquiring disk usage information, creation, and formatting of disk partitions, as well as basics of ZFS storage pool and filesystem creation, and resizing.

Checking Disk Space

Subheading: Using the df Command

The df command displays the amount of disk space used and available on Linux filesystems. Running df -h prints this information in a human-readable format (i.e., in KB, MB, GB):

df -h

Creating and Managing Disk Partitions

Subheading: Using the fdisk Command

The fdisk command is used for creating and managing disk partitions on a Linux system. It’s a powerful tool, and using it requires root permission.

To list all partitions:

sudo fdisk -l

To create a new partition, you need to interact with the fdisk utility. In the following example, /dev/sda is the disk on which the partition is being created:

sudo fdisk /dev/sda

You’ll be taken into an interactive session where you can create a new partition.

Note: Be very careful when creating and modifying partitions, as it’s easy to lose data if you make a mistake.

Formatting Partitions

Subheading: Using the mkfs Command

After creating a partition, the next step is to format it. The mkfs command is used for this purpose. For instance, to format a partition with the ext4 filesystem, use the following command, replacing /dev/sda1 with the partition you want to format:

sudo mkfs.ext4 /dev/sda1

This is a basic introduction to disk management and partitioning in Linux. For more advanced disk operations, you might need to use other tools or options. Always remember to be careful when performing these operations, as improper handling can lead to data loss.

Working with ZFS Filesystem

Introduction to ZFS

ZFS (Zettabyte File System) is an advanced filesystem designed by Sun Microsystems. It is known for its scalability, data integrity, and ease of administration. ZFS integrates the traditional filesystem and volume manager, enabling you to manage physical storage and filesystems in one place.

Creating a ZFS Pool

To use ZFS, you first need to create a ZFS storage pool. This is a collection of devices that provide physical storage capacity to the ZFS filesystems. Use the zpool command to create a ZFS pool:

sudo zpool create mypool /dev/sda1 /dev/sdb1

In the above command, mypool is the name of the ZFS pool, and /dev/sda1 and /dev/sdb1 are the physical devices added to the pool.

Creating a ZFS Filesystem

Once the pool is created, you can create a ZFS filesystem using the zfs create command:

sudo zfs create mypool/myfs

Here, myfs is the filesystem created inside mypool.

Subheading: Resizing ZFS Pools and Filesystems

One of the great features of ZFS is its ease of scalability. You can easily add more devices to a ZFS pool to increase its size:

sudo zpool add mypool /dev/sdc1

In the above command, /dev/sdc1 is the new device being added to mypool.

Resizing ZFS filesystems is also straightforward. By default, a ZFS filesystem can grow to use all space in the pool. However, you can also set a quota on a filesystem to limit its size:

sudo zfs set quota=50G mypool/myfs

The above command sets a quota of 50GB on the myfs filesystem.

These are some of the basic ZFS operations you can perform on Linux. ZFS is a powerful and flexible filesystem, but it also has its complexities. Make sure to read the man pages and other resources to fully understand its capabilities and how to use it effectively.

Once again, for more topics like these, keep following our Linux Basics series on PureVoltage’s blog.