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

> Discover supported VeraCrypt file systems: FAT, NTFS, Ext4, APFS, and more. This cross-platform guide details compatibility for all operating systems.

- Repository: [VeraCrypt/VeraCrypt](https://github.com/veracrypt/VeraCrypt)
- Tags: getting-started
- Published: 2026-07-01

---

**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`](https://github.com/veracrypt/VeraCrypt/blob/main/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`](https://github.com/veracrypt/VeraCrypt/blob/main/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`](https://github.com/veracrypt/VeraCrypt/blob/main/src/Core/VolumeCreator.h), which provides the core logic for applying filesystems to encrypted containers.

For Windows-specific formatting operations, [`src/Format/Tcformat.c`](https://github.com/veracrypt/VeraCrypt/blob/main/src/Format/Tcformat.c) implements the actual filesystem creation logic, while [`src/FormatDLL/VeraCryptFormatSDK.cpp`](https://github.com/veracrypt/VeraCrypt/blob/main/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`](https://github.com/veracrypt/VeraCrypt/blob/main/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

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

```

### Creating an Ext4 Volume on Linux

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

```

### Creating a Raw Volume Without Filesystem

```bash
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:

```bash
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`](https://github.com/veracrypt/VeraCrypt/blob/main/src/FormatDLL/VeraCryptFormatSDK.cpp).
- **Btrfs** requires at least 1 GiB volume size.
- The `filesystems` vector in [`src/Main/TextUserInterface.cpp`](https://github.com/veracrypt/VeraCrypt/blob/main/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`](https://github.com/veracrypt/VeraCrypt/blob/main/src/FormatDLL/VeraCryptFormatSDK.cpp), ReFS was added specifically for modern Windows platforms and requires appropriate Windows SDK support to format correctly.