Is ext4 more expensive than ntfs?

I have just converted an NTFS partition to ext4, however the total space seems reduced from 421G to 415G. Where did the 6G go? And, the reserved space is grown to 199M in ext4, much larger compared to 78M in NTFS, why?

The partition is mainly used for movies/musics, so most files are very large (>10M each). I want to use ext4 file system, is there any suggestion?

mkfs.ntfs:
    /dev/sdb4             421G   78M  421G   1% /mnt/mmedia

mkfs.ext4:
    /dev/sdb4             415G  199M  393G   1% /mnt/mmedia
                       (415G - 199M == 393G ?)

It's also weird that the remaining size of ext4 is 393G, shouldn't it be 415G or 414G? What happened to the disappeared 22G? Compared to NTFS, ext4 consumed 6.6% of total space, that's really a big deal.

The question is:

  1. What is 6G mainly used for, for journal, for redundancy, or for indexing?
  2. Why the remaining space 393G not 415G? There is a 22G hole which is rather big.
  3. What parameters would you advice if this ext4 partition is used to store movie/music files? It's said ext4 performs better then ext3 for large partitions, is it true? I won't back to ext2 which isn't journal.

Solution 1:

What is 6G mainly used for, for journal, for redundancy, or for indexing?

(Not known yet.)

Why the remaining space 393G not 415G? There is a 22G hole which is rather big.

It's 5% reserved blocks for superuser, which is used to avoid fragmentation. You can adjust it to 1% by mkfs.ext4 -m 1.

What parameters would you advice if this ext4 partition is used to store movie/music files?

You can specify a usage option to mkfs.ext4, e.g., mkfs.ext4 -T large_file, this will let mkfs.ext4 to decide parameters for partitions containing large files.

Solution 2:

  1. The 6GB is inodes. ext4 defaults to 1/64 (1.56%) for inodes, each 256B; so can fill with 16KB files
  2. The df available space excludes space reserved for root, 5% by default, use tune2fs -m
  3. mkfs.ext4 -m 0 -N 4000000 /dev/whatever # reformats, 0 reserved, 4 million inodes uses 1GB
  4. ext4 fsck is much quicker than ext3; apart from that you won't notice any difference

Each file / dir needs 1 inode. You can't change the number of inodes after creating an ext filesystem. Even 1000000 inodes would be plenty for that partition, if you will use it only for movies and music.

The NTFS Master File Table (MFT) is slightly more flexible, so NTFS can cram in more data by default.

The only good reason to use NTFS on Linux is to share files with Windows. It will work okay for media, but lacks various UNIX features, so is not suitable for general purpose on Linux. Don't compile on it!