ntfsfallocate Man page



ntfsfallocate – preallocate space to a file on an NTFS volume


ntfsfallocate [options] -l length device file [attr-type [attr-name]]


ntfsfallocate preallocates space for any attribute of a file or direc‐
tory, thus reserving space before actual contents is written. This is
similar to fallocate.


Below is a summary of all the options that ntfsfallocate accepts.
Nearly all options have two equivalent names. The short name is pre‐
ceded by – and the long name is preceded by –. Any single letter
options, that don’t take an argument, can be combined into a single
command, e.g. -fv is equivalent to -f -v. Long named options can be
abbreviated to any unique prefix of their name.

-f, –force
This will override some sensible defaults, such as not using a
mounted volume. Use this option with caution.

-h, –help
Show a list of options with a brief description of each one.

-l, –length LENGTH
This is a mandatory option to specify the number of bytes to
preallocate. It will be rounded up to a multiple of the cluster
size. A suffix of K, M, G, T, P or E may be appended to mean a
multiplicative factor of a power of 1000. Similarly a suffix of
Ki, Mi, Gi, Ti, Pi or Ei may be appended to mean a multiplica‐
tive factor of a power of 1024.

-n, –no-size-change
Do not change the apparent size of the file. The space allocated
beyond the apparent size is not zeroed, but subsequent writing
beyond the apparent end of file will force zeroing the inner
allocated space as it cannot be considered as a hole any more,
and this may take significant time.

-N, –no-action
Simulate the allocation without actually write to device.

-o, –offset OFFSET
Specify the offset in the file where preallocation starts. By
default, the preallocation is counted from the beginning of the
file. Space already allocated in the area defined by offset and
length is preserved.

-q, –quiet
Suppress some debug/warning/error messages.

-v, –verbose
Display more debug/warning/error messages.

-V, –version
Show the version number, copyright and license of ntfsfallocate.

Define a particular attribute type to be preallocated (advanced
use only). By default, the unnamed $DATA attribute (the con‐
tents of a plain file) will be preallocated. The attribute has
to be specified by a number in decimal or hexadecimal :

│Hex Decimal Name │
│0x20 32 “$ATTRIBUTE_LIST” │
│0x30 48 “$FILE_NAME” │
│0x40 64 “$OBJECT_ID” │
│0x60 96 “$VOLUME_NAME” │
│0x80 128 “$DATA” │
│0x90 144 “$INDEX_ROOT” │
│0xB0 176 “$BITMAP” │
│0xC0 192 “$REPARSE_POINT” │
│0xD0 208 “$EA_INFORMATION” │
│0xE0 224 “$EA” │
│0xF0 240 “$PROPERTY_SET” │

Define the name of the particular attribute type to be preallo‐
cated (advanced use only).

Preallocate 100MB to the file database.db located in the Data directory
which is at the root of an NTFS file system.

ntfsfallocate -l 100M /dev/sda1 Data/database.db


There are no known problems with ntfsfallocate, however it can lead to
configurations not supported by Windows and Windows may crash (BSOD)
when writing to preallocated clusters which were not written to ear‐
lier. Files with preallocated space should be fully be written to
before they are updated by Windows.

If you find a bug in ntfsfallocate proper, please send an email
describing the problem to the development team:

ntfsfallocate was written by Jean-Pierre Andre.

ntfsfallocate is part of the ntfs-3g package and is available from:



ntfs-3g(8), ntfstruncate(8), ntfsprogs(8), fallocate

ntfs-3g 2015.3.14AR.1 June 2014 NTFSFALLOCATE(8)