Supported File Systems for VeraCrypt Volumes: A Complete Cross-Platform Guide

VeraCrypt supports twelve filesystem types including FAT, exFAT, NTFS, ReFS, Ext2/3/4, Btrfs, HFS+, APFS, UFS, and raw volumes without filesystems, with availability varying by operating system.

VeraCrypt can create encrypted containers formatted with a variety of filesystems depending on your platform. The supported file systems for VeraCrypt volumes are defined in the source code repository veracrypt/VeraCrypt and exposed through both the graphical interface and command-line tools.

Supported Filesystems by Platform

VeraCrypt organizes filesystem support by operating system, with several universal options available across all platforms.

Universal Filesystems

These filesystems work on every supported operating system:

  • None – Creates a raw encrypted volume without any filesystem formatting. Useful when you plan to format the volume manually later or use it for custom purposes.
  • FAT – The most compatible option with the smallest minimum volume size of approximately 292 KiB.
  • exFAT – Modern universal filesystem with a minimum volume size of approximately 424 KiB, ideal for flash drives.

Windows-Specific Filesystems

On Windows, VeraCrypt supports NTFS and ReFS, though both require additional privileges or specific versions:

  • NTFS – Requires Administrator rights to format and has a minimum volume size of approximately 3 MiB.
  • ReFS – Supported only on Windows 10 and later versions. The MapFilesystem function in src/FormatDLL/VeraCryptFormatSDK.cpp handles the mapping of ReFS to internal constants.

Linux Filesystems

Linux users can choose from several native filesystems, though Btrfs has specific size requirements:

  • Ext2, Ext3, Ext4 – Standard Linux extended filesystems.
  • Btrfs – Advanced filesystem requiring a minimum volume size of approximately 1 GiB.

macOS Filesystems

Apple users can select between legacy and modern Apple filesystems:

  • Mac OS Extended (HFS+) – Legacy Apple filesystem.
  • APFS – Apple File System, the modern default for macOS.

BSD Filesystems

For BSD variants including FreeBSD, OpenBSD, and NetBSD:

  • UFS – Unix File System native to BSD operating systems.

Technical Implementation

The filesystem selection logic resides in several key source files within the veracrypt/VeraCrypt repository.

In src/Main/TextUserInterface.cpp, the application builds the list of supported filesystems by populating a filesystems vector that is displayed to users in the text-based wizard. The FilesystemType enum and formatting helper functions are defined in src/Core/VolumeCreator.h, which provides the core logic for applying filesystems to encrypted containers.

For Windows-specific formatting operations, src/Format/Tcformat.c implements the actual filesystem creation logic, while src/FormatDLL/VeraCryptFormatSDK.cpp contains the MapFilesystem function that converts filesystem names like "ReFS" into internal constants used by the formatting engine.

Command-line users specify filesystems via the --filesystem (or -f) option, parsed in src/Main/CommandLineInterface.h.

Creating Volumes with Specific Filesystems

You can specify any supported filesystem when creating volumes via the command line.

Creating an NTFS Volume on Windows

veracrypt --create secret_container.hc \
          --size 500M \
          --encryption AES \
          --hash SHA-512 \
          --filesystem NTFS \
          --volume-type normal

Creating an Ext4 Volume on Linux

veracrypt --create linux_container.hc \
          --size 2G \
          --encryption Serpent \
          --hash Whirlpool \
          --filesystem Ext4 \
          --volume-type normal

Creating a Raw Volume Without Filesystem

veracrypt --create raw_container.hc \
          --size 1G \
          --encryption Twofish \
          --hash SHA-256 \
          --filesystem none \
          --volume-type normal

Mounting and Accessing

After creation, mount the volume to automatically access its filesystem:

veracrypt secret_container.hc

The filesystem mounts automatically at the default mount point (e.g., /media/veracrypt1 on Linux), allowing direct file access.

Volume Size Requirements

Each filesystem imposes specific minimum volume sizes:

  • FAT: ~292 KiB (smallest option)
  • exFAT: ~424 KiB
  • NTFS: ~3 MiB
  • Btrfs: ~1 GiB (largest minimum requirement)

Choosing a filesystem incompatible with your specified volume size results in an error during the format phase.

Summary

  • VeraCrypt supports twelve filesystem types across Windows, Linux, macOS, and BSD platforms.
  • FAT and exFAT provide universal compatibility with the smallest footprint (~292 KiB and ~424 KiB respectively).
  • NTFS requires Administrator privileges on Windows and needs ~3 MiB minimum.
  • ReFS is limited to Windows 10+ and mapped via MapFilesystem in src/FormatDLL/VeraCryptFormatSDK.cpp.
  • Btrfs requires at least 1 GiB volume size.
  • The filesystems vector in src/Main/TextUserInterface.cpp controls which options appear in the UI wizard.

Frequently Asked Questions

What is the minimum volume size for VeraCrypt filesystems?

FAT requires approximately 292 KiB, making it the smallest option. exFAT needs roughly 424 KiB, while NTFS requires about 3 MiB. Btrfs demands the most space at approximately 1 GiB minimum.

Can I use NTFS volumes on Linux or macOS?

Yes, you can mount NTFS-formatted VeraCrypt volumes on Linux and macOS using appropriate NTFS drivers (such as NTFS-3G), though you can only create NTFS volumes natively on Windows due to formatting tool availability.

What happens if I select "none" for the filesystem?

VeraCrypt creates a raw encrypted container without any filesystem structure. This is useful for advanced users who want to apply custom formatting later or use the volume for non-filesystem purposes like additional encryption layers.

Is ReFS supported on all Windows versions?

No, ReFS support is limited to Windows 10 and later versions. According to the source code in src/FormatDLL/VeraCryptFormatSDK.cpp, ReFS was added specifically for modern Windows platforms and requires appropriate Windows SDK support to format correctly.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →