How to Create a New Ext4 File System in Linux?

The hard disk in a computer is formatted with specific file system so that the operating system can read and write into it. For UNIX based systems we have various type of file systems. In this article we will see how to format a new partition in hard disk with ext4 file system.
First we see what are the different file systems available for the current operating system. The below command lists all those file systems.
$ ls -1 /sbin/mkfs*
Running the above code gives us the following result −
/sbin/mkfs
/sbin/mkfs.bfs
/sbin/mkfs.cramfs
/sbin/mkfs.ext2
/sbin/mkfs.ext3
/sbin/mkfs.ext4
/sbin/mkfs.ext4dev
/sbin/mkfs.fat
/sbin/mkfs.minix
/sbin/mkfs.msdos
/sbin/mkfs.ntfs
/sbin/mkfs.vfat
Next let's look at the the current hard disk and their partitions available to the operating system. Based on this output we can decide to add a new hard disk or create a new partition in the existing desk and format it as ext4.
$ sudo fdisk -l
[sudo] password for ubuntu:
Running the above code gives us the following result −
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x06807e05

Device    Boot   Start      End       Sectors    Size    Id   Type
/dev/sda1  *      2048    33554431    33552384   16G    83   Linux
/dev/sda2       33556478  41940991    8384514     4G     5   Extended
/dev/sda5       33556480  41940991    8384512     4G     82  Linux swap / Solaris
Using the same command but choosing a different argument as shown below. We see all the available formats that the OS can support and available for formatting.
$ sudo fdisk /dev/sda
Command (m for help): l
Running the above code gives us the following result −
0    Empty               24       NEC DOS            81    Minix / old Lin    bf   Solaris
1    FAT12               27       Hidden NTFS Win    82    Linux swap / So    c1   DRDOS/sec (FAT-
2    XENIX root          39       Plan 9             83    Linux              c4   DRDOS/sec (FAT-
3    XENIX usr           3c       PartitionMagic     84    OS/2 hidden or     c6   DRDOS/sec (FAT-
4    FAT16 <32M          40       Venix 80286        85    Linux extended     c7   Syrinx
5    Extended            41       PPC PReP Boot      86    NTFS volume set    da   Non-FS data
6    FAT16               42       SFS                87    NTFS volume set    db   CP/M / CTOS / .
7    HPFS/NTFS/exFAT     4d       QNX4.x             88    Linux plaintext    de   Dell Utility
8    AIX                 4e       QNX4.x 2nd part    8e    Linux LVM          df   BootIt
9    AIX bootable        4f       QNX4.x 3rd part    93    Amoeba             e1   DOS access
a    OS/2 Boot Manag     50       OnTrack DM         94    Amoeba BBT         e3   DOS R/O
b    W95 FAT32           51       OnTrack DM6 Aux    9f    BSD/OS             e4   SpeedStor
c    W95 FAT32 (LBA)     52       CP/M               a0    IBM Thinkpad hi    ea   Rufus alignment
e    W95 FAT16 (LBA)     53       OnTrack DM6 Aux    a5    FreeBSD            eb   BeOS fs
f    W95 Ext'd (LBA)     54       OnTrackDM6         a6    OpenBSD            ee   GPT
10   OPUS                55       EZ-Drive           a7    NeXTSTEP           ef   EFI (FAT-12/16/
11   Hidden FAT12        56       Golden Bow         a8    Darwin UFS         f0   Linux/PA-RISC b
12   Compaq diagnost     5c       Priam Edisk       a9    NetBSD             f1   SpeedStor
14 Hidden FAT16 <3       61       SpeedStor        ab    Darwin boot        f4   SpeedStor
16 Hidden FAT16          63       GNU HURD or Sys   af    HFS / HFS+         f2   DOS secondary
17 Hidden HPFS/NTF       64       Novell Netware   b7    BSDI fs            fb   VMware VMFS
18 AST SmartSleep        65       Novell Netware   b8    BSDI swap          fc   VMware VMKCORE
1b Hidden W95 FAT3       70       DiskSecure Mult  bb    Boot Wizard hid    fd   Linux raid auto
1c Hidden W95 FAT3       75       PC/IX            bc    Acronis FAT32 L    fe   LANstep
1e Hidden W95 FAT1       80       Old Minix        be    Solaris boot       ff   BBT
Next we choose the n option to create a new partition.
Command (m for help): n
Command action
   l logical (5 or over)
   p primary partition (1-4)
First sector (39849982-41940991, default 39849982):
Using default value 39849982
Last sector, +sectors or +stze(K,M,G} (39849982-41940991, default 4
1940991):
Using default value 41940991
Now we issue the below command to make the sda5 partiton as a ext4 partition.
sudo mkfs.ext4 /dev/sda5