Linux NTFS - MKNTFS (8)


mkntfs - create an NTFS 1.2 (Windows NT/2000/XP) file system


mkntfs [ options ] device [ number-of-sectors ]

mkntfs [ -C ] [ -c cluster-size ] [ -F ] [ -f ] [ -H heads ] [ -h ] [ -I ] [ -L volume-label ] [ -l ] [ -n ] [ -p part-start-sect ] [ -Q ] [ -q ] [ -S sectors-per-track ] [ -s sector-size ] [ -T ] [ -V ] [ -v ] [ -w ntfs-version ] [ -z mft-zone-multiplier ] [ --debug ] device [ number-of-sectors ]


mkntfs is used to create an NTFS 1.2 (Windows NT 4.0) file system on a device (usually a disk partition). device is the special file corresponding to the device (e.g /dev/hdXX). number-of-sectors is the number of blocks on the device. If omitted, mkntfs automagically figures the file system size.


Below is a summary of all the options that mkntfs accepts. Nearly all options have two equivalent names. The short name is preceded 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.

    Basic options

--quick Perform quick (fast) format. This will skip both zeroing of the volume and bad sector checking.

--label STRING
  Set the volume label for the filesystem.

  Enable compression on the volume.

--cluster-size BYTES
  Specify the size of clusters in bytes. Valid cluster size values are powers of two, with at least 256, and at most 65536 bytes per cluster. If omitted, mkntfs determines the cluster-size from the volume size. The value is determined as follows:

VolumesizeDefault cluster size
0- 512MB512 bytes
512MB- 1GB1024 bytes
1GB- 2GB2048 bytes
2GB+4096 bytes
Note that the default cluster size is set to be at least equal to the sector size as a cluster cannot be smaller than a sector. Also, note that values greater than 4096 have the side effect that compression is disabled on the volume (due to limitations in the NTFS compression algorithm currently in use by Windows).

  Disable content indexing on the volume. (This is only meaningful on Windows 2000 and later. Windows NT 4.0 and earlier ignore this as they do not implement content indexing at all.)

  Causes mkntfs to not actually create a filesystem, but display what it would do if it were to create a filesystem. All steps of the format are carried out except the actual writing to the device.

    Advanced options

--sector-size BYTES
  Specify the size of sectors in bytes. Valid sector size values are 256, 512, 1024, 2048 and 4096 bytes per sector. If omitted, mkntfs attempts to determine the sector-size automatically and if that fails a default of 512 bytes per sector is used.

  Specify the partition start sector. The maximum is 4294967295 (2^32-1). If omitted, mkntfs attempts to determine part-start-sect automatically and if that fails a default of 0 is used. Note that part-start-sect is required for Windows to be able to boot from the created volume.

--heads NUM
  Specify the number of heads. The maximum is 65535 (0xffff). If omitted, mkntfs attempts to determine the number of heads automatically and if that fails a default of 0 is used. Note that heads is required for Windows to be able to boot from the created volume.

--sectors-per-track NUM
  Specify the number of sectors per track. The maximum is 65535 (0xffff). If omitted, mkntfs attempts to determine the number of sectors-per-track automatically and if that fails a default of 0 is used. Note that sectors-per-track is required for Windows to be able to boot from the created volume.

-z NUM
--mft-zone-multiplier NUM
  Set the MFT zone multiplier, which determines the size of the MFT zone to use on the volume. The MFT zone is the area at the beginning of the volume reserved for the master file table (MFT), which stores the on disk inodes (MFT records). It is noteworthy that small files are stored entirely within the inode; thus, if you expect to use the volume for storing large numbers of very small files, it is useful to set the zone multiplier to a higher value. Note, that the MFT zone is resized on the fly as required during operation of the NTFS driver but choosing a good value will reduce fragmentation. Valid values are 1, 2, 3 and 4. The values have the following meaning:

MFT zoneMFT zone size
multiplier(% of volume size)
112.5% (default)

  Fake the time to be 00:00:00 UTC, Jan 1, 1970 instead of the current system time. This is only really useful for debugging purposes.

--ntfs-version STRING
  Select the version of NTFS you wish to use. This can be one of "1.2", "3.0", or "3.1".

--force Force mkntfs to run, even if the specified device is not a block special device, or appears to be mounted.

    Output options

--quiet Quiet execution; only errors are written to stderr, no output to stdout occurs at all. Useful if mkntfs is run in a script.

  Verbose execution.

--debug Really verbose execution; includes the verbose output from the -v option as well as additional output useful for debugging mkntfs.

    Help options

  Print the version number of mkntfs and exit.

  Print the licensing information of mkntfs and exit.

--help Print the usage information of mkntfs and exit.


mkntfs writes the backup boot sector to the last sector of the block device being formatted. However, current versions of the Linux kernel (all versions up to and including todays 2.4.18) either only report an even number of sectors when the sector size is below 1024 bytes, which is the case for most hard drives today (512 bytes sector size) or they return the correct number but accessing the last sector fails. Either way, this means that when a partition has an odd number of 512-byte sectors, the last sector is either not reported to us at all or it is not writable by us and hence the created NTFS volume will either have the backup boot sector placed one sector ahead of where it should be or it cannot be written at all. For this reason, mkntfs marks the NTFS volume dirty, so that when you reboot into Windows, check disk runs automatically and creates a copy of the backup boot sector in the correct location. This also has the benefit of catching any bugs in mkntfs as check disk would find any corrupt structures and repair them, as well as report them. - If you do see any problems reported, please report the messages to the author.
There may be other bugs. Please, report them to the author.


This version of mkntfs has been written by Anton Altaparmakov.


mkntfs is part of the ntfsprogs package and is available for download from in source (tar ball and rpm) and pre-compiled binary (i386 rpm and deb) form.


badblocks(8), ntfsprogs(8)