HowTo: Formatting Linux Filesystem

Posted on in Categories , , , , , , last updated December 6, 2014

How do I format Linux file system? Can you tell me command names to format and create a Linux file system?

Formatting Linux filesystem is an essential task for sysadmin and may required for many reasons such as installing a new disk on server. If you want to expand file system or you just add a new hard disk drive or create separate partitions for security and performance reasons. Whatever may be your reason(s) all file system creating involves creations of superblock, inode and other filesystem metadata structure. Fortunately, Linux comes with mkfs command to format filesystem. It is used to build a Linux file system on a device, usually a hard disk partition. General syntax of mkfs is as follows:
mkfs -t filetype /dev/DEVICE
OR
mkfs.ext3 /dev/DEVICE
OR
mkfs.ext4 /dev/DEVICE

Where,

  • -t filetype : File system type, it can be ext3, ext2, etc4, vfat etc
  • /dev/DEVICE : Your device name i.e. partition /dev/hda1 or /dev/sda1 etc.

An example

Suppose you would like to format /dev/hda5 with ext3 file system.

Warning: The first task is to allocate disk space for Linux. You will need to set up a partitioning scheme for your hard disk using a program called fdisk command.

Step #1 Create the new filesystem with following command (first login in as a root user)

# mkfs.ext3 /dev/sda5
Sample outputs:

mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
30120 inodes, 120456 blocks
6022 blocks (5.00%) reserved for the super user
First data block=1
15 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
     8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Step # 2: Create mount point directory for the file system

# mkdir /datadisk1

Step # 3: Mount the new file system

# mount /dev/sda5 /datadisk1

Step # 4: Finally make sure file system /dev/hda5 automatically mounted at /datadisk1 mount point after system reboots. You need to add partition to /etc/fstab file. Use text editor such as vi to add following entry

# vi /etc/fstab

Add/append following entry to file:
/dev/sda5 /datadisk1 ext3 defaults 0 2

Where,

  • /dev/sda5 : File system or parition name
  • /datadisk1 : Mount point
  • ext3 : File system type
  • defaults : Mount options (Read man page of mount command for all options)
  • 0 : Indicates whether you need to include or exclude this filesystem from dump command backup. Zero means this filesystem does not required dump.
  • 2 : It is used by the fsck program to determine the order in which filesystem checks are done at reboot time. The root (/) filesystem should be specified with a #1, and otherfilesystems should have a # 2 value.

Save file and exit to shell prompt. For more information see mkfs(8) page.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

12 comment

    1. this error occur while format ……………
      give perfect answer

      [email protected]:~# /dev/sdc1 /datadisk1 ext3 defaults 0 2
      bash: /dev/sdc1: Permission denied

  1. [email protected] [~]# mkfs.ext3 /dev/sdb1
    mke2fs 1.39 (29-May-2006)
    mkfs.ext3: No such device or address while trying to determine filesystem size

    Why?

  2. Please add info or link to article how to make partitions.

    In case if you try make file system on whole device:
    sudo mkfs.ext4 /dev/sdb
    You get “/dev/sdb is entire device, not just one partition!” message.

    In this case you need make at least one partition:
    sudo fdisk /dev/sdb

Leave a Comment