File-System Formats Comparison

Ezra Ubuntu Linux

<table class="tableblock frame-all grid-all stretch"> <colgroup> <col style="width: 16.6666%;"> <col style="width: 16.6666%;"> <col style="width: 16.6666%;"> <col style="width: 16.6666%;"> <col style="width: 16.6666%;"> <col style="width: 16.667%;"> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Feature</th> <th class="tableblock halign-left valign-top">ext4</th> <th class="tableblock halign-left valign-top">Btrfs</th> <th class="tableblock halign-left valign-top">NTFS</th> <th class="tableblock halign-left valign-top">exFAT</th> <th class="tableblock halign-left valign-top">FAT32</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Max File Size</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">16 TiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">16 EiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">256 TiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">16 EiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">4 GiB</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">FAT32’s 4GB limit is a major drawback</p></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Max Volume Size</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">1 EiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">16 EiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">256 TiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">128 PiB</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">2 TiB</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Typically formatted as ≤32GB</p></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Journaling</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">No journal, data corruption risk</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">No journal, data corruption risk</p></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Transparent Compression</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Supports zstd, lzo, zlib</p></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Copy-on-Write/Snapshots</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Btrfs exclusive feature</p></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Windows Native</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">3rd-party driver needed</p></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Default system format</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Built-in (Win 7+)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Built-in</p></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">macOS Native</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">~</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">3rd-party driver needed</p></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Read-only by default</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Built-in (10.6.5+)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Built-in</p></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Linux Native</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Default format</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">In-kernel driver</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">ntfs3 or NTFS-3G</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Built-in (Kernel 5.4+)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Built-in</p></td> </tr> <tr> <td class="tableblock halign-left valign-top" rowspan="2"><p class="tableblock">Generic Device Support</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✗</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">~</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">✓</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Common on newer models</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Near-universal support</p></td> </tr> </tbody> </table>