How to Use Mkfs Command on Linux

How to Use mkfs Command on Linux

Are you wondering how to use the mkfs command on Linux for easy and simple file formatting? We’ve got you covered with this guide.

In the operating system, you often want to format or make a file system. In this process, the operating system allocates a specific portion in your second storage where it keeps the record of all the files and directories available in the system, their properties (file creation date, modified date, size of the file, attributes), specific location in the disk where they are stored. For creating a filesystem, the mkfs command can be used. It stands for the make file system. Here, we discuss the mkfs command and its various options.

How to Use mkfs Command on Linux


The usage of mkfs is very simple and straightforward. The user specifies the specific partition where the file system is to be created, along with the file system’s name. Depending on the operating system, mkfs or another command, mke2fs performs the job behind the scene. The specific syntax for mkfs is as follows:

$ mkfs [-V][-t fstype][fs-options]filesys[blocks]

Knowing the list of operating system

The mkfs command works by specifying the command mkfs and the specific file system to use. To know the list of available file systems, you must type the command and press the Tab key. You will see the list of the file system. Following are the list of the operating system: Ext2, Ext3, Ext4, BFS, FAT, NTFS, MINIX, VFAT, CRAMFS, and MSDOS.

Creating an image file for experimenting with the mkfs command

One can directly work with mkfs on the actual disk. However, this may lead to destructive effects as you may accidentally overwrite your important data. Another approach is to try the filesystem options on a spare hardware. For instance, the following command creates a filesystem on a floppy disk:

$mkfs -t ext2/dev/fd0

However, not many people has an extra partition or spare hardware. The better way is to create an image file. You may be able to work the same way as you are working on a disk or a partition once it is mounted.

For creating an image, we will use the dd command. You should provide the source data to the dd command. It will take the source data and put it in the image file. The following command creates an image file:

$dd if=/dev/zero of=~/data.img bs=1M count=250

The above command uses the if to tell the dd to read the input stream as a stream of zeros. Using of option, we specify the name of the image file. Using the bs option, we request for a block of size 1MB, and the count specifies the number of such blocks. 

Checking if the image file is created

Once the above command is executed, an image file will be created. Using the following command, we can check if the image file is created:

$ls -hl

Creating a file system on the image file

Once the image file is created, we can create a file system on the image. The following command shows how we can create a file system:

$mkfs.ext2 ~/data.img

Here, we have used the variant of mkfs to create an ext2 file system over the image file data.img

Mounting the file system to a specific directory

Now, a file system has been created and acts virtually as a physical hard drive. You can mount the file system using the following set of commands. First, create a directory:

$sudo mkdir /mnt/data

And then mount the filesystem to the directory as follows:

$sudo mount ~/data.img/mnt/data

Before using the filesystem, appropriate permissions are to be granted for the mount point. The following command assigns the read and writes permissions:

$sudo chown rahul:users /mnt/data/

Using the new file system

Now, the file system is ready for use. You can change the directory to a new file system and performs various file system operations. Let’s change the current directory as follows:

$cd /mnt/data

Now, copy some files into it as follows:

$cp ~/home/Rahul/*.txt.

You can perform all sorts of file operations, such as copy, rename, remove, etc., on the file system.

Unmount the filesystem

Once you have completed all the tasks, you can unmount the file system as follows:

$sudo unmount/mnt/data

After unmounting, if you try to look at the files in /mnt/data, you will not find it. Because, all the files are stored inside the image file. 

Working with other filesystems

You can create other filesystems with the same procedure. The following command creates a file system:

$mkfs.minix ~/data.image

Let’s mount the filesystem:

$sudo mount ~/data.img/mnt/data

Now, you can change the permission and copy, paste, rename, and remove the files.

Removing the mount point

Once you have completed your tasks, you can remove the mount point with the following command:

$cd /mnt
$sudo rmdir data

Options of mkfs

There are several other options of mkfs, such as explicitly specifying a file system using -t option. If no option is specified, the default ext2 filesystem is used. The -V option can be used to verbose the output.  The -v option can be used for version information. Finally, -h can be used for displaying the help of the command.

To check for bad blocks on the file system, the following command can be used:

$sudo mkfs -c /mnt/data

To check for the file system, the following command can be used:

$sudo file -sL/device

Tip: The mkfs command returns an exit status of 0 on success and 1 on failure

We have discussed an overview of the mkfs command. We have seen how we can create an image file, the filesystem, mount a filesystem, and create, copy, and update files. Using the image file, we can experiment with the command without touching any partition of your system.

If this guide helped you, please share it.

Leave a Reply
Related Posts