Unrar Large File Extraction on Limited Filesystems

This article explains how the unrar utility behaves when attempting to extract files that exceed the maximum file size limit supported by the target filesystem, such as legacy FAT32 or FAT16 partitions. It covers the exact failure mechanisms triggered during extraction, the state of the resulting files, error reporting, and the methods available to overcome these filesystem limitations.

The Filesystem Constraint

Certain filesystems enforce hard limits on single-file sizes. The most common example is FAT32, which caps individual files at 4 GiB minus 1 byte (4,294,967,295 bytes). When a RAR archive contains an uncompressed or compressed file larger than this limit, the underlying operating system cannot allocate space or write data past that threshold.

How unrar Reacts During Extraction

The unrar tool does not always check the underlying filesystem type or its maximum file size limit prior to starting the decompression process. Instead, it relies on standard operating system I/O system calls (such as write() on Unix-like systems or WriteFile() on Windows).

When unrar begins extracting:

  1. Extraction Starts Normally: The process initiates successfully, creating the target filename and streaming decompressed data to the storage medium.
  2. System Write Failure: Once the written data reaches the filesystem's boundary (e.g., exactly 4 GiB on FAT32), the operating system halts further writing and returns an error code—typically EFBIG (File too large) or a general disk write error.
  3. Error Reporting: Upon receiving the write failure from the OS, unrar aborts the operation for that file. Depending on the version and platform, it outputs an explicit error message:
    • On modern builds: Write error: only NTFS file system supports files larger than 4 GB (or a generic Write error in the file <filename>).
    • On Linux/Unix: Write error to disk followed by Cannot create <filename>.
  4. Process Termination: The utility terminates with a non-zero exit code (typically code 1 for a fatal error or code 6 for an open/write error), signaling failure to automated scripts or terminal sessions.

State of the Resulting File

When extraction fails due to filesystem boundaries:

  • Truncated Files: The target file usually remains on the disk in a truncated, incomplete state, measuring exactly the maximum size allowed by the filesystem (e.g., 4,194,303 KB).
  • Data Corruption: Because decompression was halted mid-stream, the truncated file lacks its ending data, making it corrupted and unusable for media players, installers, or disk image mounters.
  • Batch Halting: If the archive contains multiple files, unrar by default stops processing subsequent files unless explicitly instructed to continue past errors.

Workarounds and Solutions

To extract archives containing files that exceed your storage medium's file size capacity, apply one of the following methods:

  • Use Modern Filesystems: Reformat the destination drive or extract to a drive formatted with filesystems that support large files, such as exFAT, NTFS, ext4, Btrfs, or APFS. exFAT is the standard choice for removable media requiring cross-platform compatibility without the 4 GiB barrier.
  • Stream to Standard Output: If using command-line unrar on Linux or macOS, pipe the output directly to another program or over a network mount that supports large files using the -p switch:
    unrar p -inul archive.rar largefile.iso | ssh user@remote "cat > /mnt/ext4/largefile.iso"
  • Split into Multi-Volume Parts: If the file must be stored on a filesystem with strict limits, re-compress or split the file into multi-volume RAR parts (e.g., 2000 MB chunks) using the -v parameter on a supported filesystem before transferring it to the limited storage.