NTFSFALLOCATE(8)

๐Ÿ’– NTFSFALLOCATE ๐Ÿ’–

okay bestie, so this is ntfsfallocate from the System Manager's Manual โ€” section 8, the big-girl system administration section. she's here to preallocate space to a file on an NTFS volume, and she's honestly kinda iconic for it. ๐ŸŽ€


โœจ NAME โœจ

ntfsfallocate โ€” preallocate space to a file on an NTFS volume

yeah that's her whole thing. reserving the room before the party even starts.


๐ŸŒธ SYNOPSIS ๐ŸŒธ

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

look at her. device, file, and optionally the attr-type and attr-name if you're feeling โœจ advanced โœจ.


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

so the vibe here is: ntfsfallocate preallocates space for any attribute of a file or directory, which literally means it reserves the space before the actual contents get written in there. no scrambling later, no "omg where did the disk space go" moments. it's giving... fallocate(1) energy, fr fr. ๐Ÿ’…


๐Ÿ’œ OPTIONS ๐Ÿ’œ

okay so here's the full rundown of everything ntfsfallocate will accept. nearly all the options have two equivalent names โ€” the short one gets a - in front, and the long one gets --. and listen: any single-letter option that doesn't take an argument? they can be combined into one single command, so -fv hits exactly the same as -f -v. iconic. ๐Ÿซถ

also, long-named options can be abbreviated to any unique prefix of their name, so you can be lazy (affectionate) about it.

  • -f, --force โ€” overrides some sensible defaults, like the whole "not using a mounted volume" thing. bestie, use this one with caution, I'm so serious. ๐Ÿ˜ญ
  • -h, --help โ€” shows you the list of options plus a lil brief description of each one. your girl is helpful like that. ๐ŸŽ€
  • -l, --length LENGTH โ€” mandatory, no skipping!! this is how many bytes you wanna preallocate. it gets rounded up to a multiple of the cluster size. you can slap a suffix on it: K, M, G, T, P or E means a multiplicative factor of a power of 1000. and a suffix of Ki, Mi, Gi, Ti, Pi or Ei means a multiplicative factor of a power of 1024. pick your flavor. โœจ
  • -n, --no-size-change โ€” don't change the apparent size of the file. but heads up: the space allocated beyond the apparent size is not zeroed, and subsequent writing beyond the apparent end of file will force zeroing the inner allocated space since it can't be considered a hole anymore. and that? that can take significant time. ๐Ÿ’€
  • -N, --no-action โ€” simulates the allocation without actually writing to the device. a dress rehearsal, no commitment. ๐Ÿ™ˆ
  • -o, --offset OFFSET โ€” tells it where in the file the preallocation starts. by default it counts from the beginning of the file. and space that's already allocated in the area defined by offset and length? preserved. we respect her. ๐Ÿ‘‘
  • -q, --quiet โ€” suppresses some debug/warning/error messages. shhh era. ๐Ÿคซ
  • -v, --verbose โ€” displays more debug/warning/error messages. yapper era. ๐Ÿ—ฃ๏ธ
  • -V, --version โ€” shows the version number, copyright and license of ntfsfallocate. receipts! ๐Ÿ’…

๐Ÿงš attr-type ๐Ÿงš

this defines a particular attribute type to be preallocated. advanced use only, bestie โ€” don't get cute. by default, the unnamed $DATA attribute (aka the contents of a plain file) is the one that gets preallocated.

you specify the attribute by a number in decimal or hexadecimal:

  • 0x10 / 16 โ€” "$STANDARD_INFORMATION"
  • 0x20 / 32 โ€” "$ATTRIBUTE_LIST"
  • 0x30 / 48 โ€” "$FILE_NAME"
  • 0x40 / 64 โ€” "$OBJECT_ID"
  • 0x50 / 80 โ€” "$SECURITY_DESCRIPTOR"
  • 0x60 / 96 โ€” "$VOLUME_NAME"
  • 0x70 / 112 โ€” "$VOLUME_INFORMATION"
  • 0x80 / 128 โ€” "$DATA"
  • 0x90 / 144 โ€” "$INDEX_ROOT"
  • 0xA0 / 160 โ€” "$INDEX_ALLOCATION"
  • 0xB0 / 176 โ€” "$BITMAP"
  • 0xC0 / 192 โ€” "$REPARSE_POINT"
  • 0xD0 / 208 โ€” "$EA_INFORMATION"
  • 0xE0 / 224 โ€” "$EA"
  • 0xF0 / 240 โ€” "$PROPERTY_SET"
  • 0x100 / 256 โ€” "$LOGGED_UTILITY_STREAM"

the whole menu. bon appรฉtit. ๐Ÿ“


๐ŸŽ€ attr-name ๐ŸŽ€

defines the name of the particular attribute type to be preallocated. again: advanced use only. you've been warned, queen. ๐Ÿ’œ


๐ŸŒˆ EXAMPLES ๐ŸŒˆ

preallocate 100MB to the file database.db located in the Data directory, which sits at the root of an NTFS file system. watch this:

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

slay. done. no cap. โœจ


๐Ÿ‘‘ BUGS ๐Ÿ‘‘

okay so the good news: there are no known problems with ntfsfallocate.

the not-so-good news: it can lead to configurations not supported by Windows, and Windows may crash (BSOD) when writing to preallocated clusters that weren't written to earlier. ๐Ÿ˜ญ files with preallocated space should be fully written to before Windows ever updates them. please, for the love of everything, do that. ๐Ÿ™

if you find a bug in ntfsfallocate proper, email a description of the problem to the dev team at: ntfs-3g-devel@lists.sf.net โ€” they genuinely wanna hear it. ๐Ÿซถ

๐Ÿ’– AUTHORS ๐Ÿ’–

ntfsfallocate was written by Jean-Pierre Andre. king behavior honestly. ๐Ÿ‘‘


โญ AVAILABILITY โญ

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

https://github.com/tuxera/ntfs-3g/wiki/


๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

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

go read those next bestie, the lore runs deep. ๐Ÿ“š


and that's the whole page!! from the ntfs-3g 2026.7.7 release, dated all the way back to June 2014 โ€” a true classic that still eats. mwah, love u, bye!! ๐Ÿ’…๐Ÿ’–โœจ๐ŸŽ€

๐Ÿ“ฆ where this page comes from