How to Use mkfs in Linux

Learn to create filesystems with mkfs in Linux, a vital command for storage management.

mkfs is a commonly used Linux command for creating a filesystem on a device or partition. The term mkfs is short for “make filesystem”. A filesystem is a way of organizing and storing files and directories on a storage device like a hard drive, SSD, USB stick, or other media. The type of filesystem you create affects how data is stored and retrieved, impacting performance and compatibility.

The mkfs command is a wrapper that will decide the appropriate filesystem creation utility based on the supplied filesystem type.

Be very careful when using the mkfs command because it formats the specified partition. Any data that existed on the partition will be lost. Always double-check that you are working with the correct device or partition, and ensure you have a backup of any important data before usingmkfs.

Here are some ways to use the mkfs command:

1. Create a Filesystem

The basic syntax for creating a filesystem is mkfs -t type device.


To create an ext4 filesystem on the /dev/sda1 partition, you would use:

mkfs -t ext4 /dev/sda1
2. Specify the Block Size

You can specify the block size when creating a filesystem with the -b option.


To create an ext4 filesystem with a block size of 1024 bytes, you would use:

mkfs -t ext4 -b 1024 /dev/sda1
3. Add a Label

You can add a label to the filesystem with the -L option.


To add the label “mydisk” to the filesystem, you would use:

mkfs -t ext4 -L mydisk /dev/sda1
4. Create a FAT32 Filesystem

To create a FAT32 filesystem, you would use the mkfs.vfat command.


mkfs.vfat /dev/sda1
5. Create a NTFS Filesystem

To create a NTFS filesystem, you would use the mkfs.ntfs command.


mkfs.ntfs /dev/sda1
6. Create a XFS Filesystem

To create a XFS filesystem, you would use the mkfs.xfs command.


mkfs.xfs /dev/sda1

Differences Between FAT32, NTFS, and XFS

FAT32, NTFS, and XFS are all types of filesystems, which are methods of organizing and storing data on a storage device, like a hard drive or USB stick. However, they differ in their design and features, which can affect performance, compatibility, and what they’re best used for.

FAT32 (File Allocation Table 32)

FAT32 is an older type of filesystem that’s widely compatible with many types of devices and operating systems, including Windows, Mac, Linux, game consoles, and more. However, it has several limitations.

For example, it can’t handle files larger than 4GB or partitions larger than 8TB. It also lacks some features that newer filesystems have, like data protection and recovery features.

NTFS (New Technology File System)

NTFS is a newer filesystem used primarily by Windows. It supports much larger files and partitions than FAT32, and includes features like file permissions (which help with security), shadow copies (for backup), and encryption.

However, while NTFS is readable on Mac and Linux systems, writing to NTFS drives can be tricky without additional software.

XFS (Extended File System)

XFS is a high-performance filesystem used primarily in the Linux environment. It’s particularly good at handling large files and large storage volumes, making it ideal for servers and high-performance systems.

XFS also includes features like journalling, which helps with data recovery in the event of a power failure or system crash. However, it’s not natively supported by Windows or Mac, which can make it less ideal for removable drives that need to be used across different systems.

More Linux commands:
Directory Operations rmdir · cd · pwd · exa · ls
File Operations cat · cp · dd · less · touch · ln · rename · more · head
File System Operations chown · mkfs · locate
Networking ping · curl · wget · iptables · mtr
Search and Text Processing find · grep · sed · whatis · ripgrep · fd · tldr
System Information and Management env · history · top · who · htop · glances · lsof
User and Session Management screen · su · sudo · open