MKFS.FAT(8)               (2021-01-31)                MKFS.FAT(8)

     NAME
          mkfs.fat - create an MS-DOS FAT filesystem

     SYNOPSIS
          mkfs.fat [OPTIONS] DEVICE [BLOCK-COUNT]

     DESCRIPTION
          mkfs.fat is used to create a FAT filesystem on a device or
          in an image file.  DEVICE is the special file corresponding
          to the device (e.g. /dev/sdXX) or the image file (which does
          not need to exist when the option -C is given).  BLOCK-COUNT
          is the number of blocks on the device and size of one block
          is always 1024 bytes, independently of the sector size or
          the cluster size.  Therefore BLOCK-COUNT specifies size of
          filesystem in KiB unit and not in the number of sectors
          (like for all other mkfs.fat options).  If omitted, mkfs.fat
          automatically chooses a filesystem size to fill the
          available space.

          Two different variants of the FAT filesystem are supported.
          Standard is the FAT12, FAT16 and FAT32 filesystems as
          defined by Microsoft and widely used on hard disks and
          removable media like USB sticks and SD cards.  The other is
          the legacy Atari variant used on Atari ST.

          In Atari mode, if not directed otherwise by the user,
          mkfs.fat will always use 2 sectors per cluster, since GEMDOS
          doesn't like other values very much.  It will also obey the
          maximum number of sectors GEMDOS can handle.  Larger
          filesystems are managed by raising the logical sector size.
          An Atari-compatible serial number for the filesystem is
          generated, and a 12 bit FAT is used only for filesystems
          that have one of the usual floppy sizes (720k, 1.2M, 1.44M,
          2.88M), a 16 bit FAT otherwise.  This can be overridden with
          the -F option.  Some PC-specific boot sector fields aren't
          written, and a boot message (option -m) is ignored.

     OPTIONS
          -a  Normally, for any filesystem except very small ones,
              mkfs.fat will align all the data structures to cluster
              size, to make sure that as long as the partition is
              properly aligned, so will all the data structures in the
              filesystem.  This option disables alignment; this may
              provide a handful of additional clusters of storage at
              the expense of a significant performance degradation on
              RAIDs, flash media or large-sector hard disks.

          -A  Select using the Atari variation of the FAT filesystem
              if that isn't active already, otherwise select standard
              FAT filesystem.  This is selected by default if mkfs.fat

     Page 1                   dosfstools 4.2         (printed 5/24/22)

     MKFS.FAT(8)               (2021-01-31)                MKFS.FAT(8)

              is run on 68k Atari Linux.

          -b SECTOR-OF-BACKUP
              Selects the location of the backup boot sector for
              FAT32.  Default depends on number of reserved sectors,
              but usually is sector 6.  If there is a free space
              available after the backup boot sector then backup of
              the FAT32 info sector is put after the backup boot
              sector, usually at sector 7.  The backup must be within
              the range of reserved sectors.  Value 0 completely
              disables creating of backup boot and info FAT32 sectors.

          -c  Check the device for bad blocks before creating the
              filesystem.

          -C  Create the file given as DEVICE on the command line, and
              write the to-be-created filesystem to it.  This can be
              used to create the new filesystem in a file instead of
              on a real device, and to avoid using dd in advance to
              create a file of appropriate size.  With this option,
              the BLOCK-COUNT must be given, because otherwise the
              intended size of the filesystem wouldn't be known.  The
              file created is a sparse file, which actually only
              contains the meta-data areas (boot sector, FATs, and
              root directory).  The data portions won't be stored on
              the disk, but the file nevertheless will have the
              correct size.  The resulting file can be copied later to
              a floppy disk or other device, or mounted through a loop
              device.

          -D DRIVE-NUMBER
              Specify the BIOS drive number to be stored in the FAT
              boot sector.  For hard disks and removable medias it is
              usually 0x80en0xFF (0x80 is first hard disk C:, 0x81 is
              second hard disk D:, ...), for floppy devices or
              partitions to be used for floppy emulation it is
              0x00en0x7F (0x00 is first floppy A:, 0x01 is second
              floppy B:).

          -f NUMBER-OF-FATS
              Specify the number of file allocation tables in the
              filesystem.  The default is 2.

          -F FAT-SIZE
              Specifies the type of file allocation tables used (12,
              16 or 32 bit).  If nothing is specified, mkfs.fat will
              automatically select between 12, 16 and 32 bit, whatever
              fits better for the filesystem size.

          -g HEADS/SECTORS-PER-TRACK
              Specify HEADS and SECTORS-PER-TRACK numbers which
              represents disk geometry of DEVICE.  Both numbers are

     Page 2                   dosfstools 4.2         (printed 5/24/22)

     MKFS.FAT(8)               (2021-01-31)                MKFS.FAT(8)

              stored into the FAT boot sector.  Number SECTORS-PER-
              TRACK is used also for aligning the total count of FAT
              sectors.  By default disk geometry is read from DEVICE
              itself.  If it is not available then LBA-Assist
              Translation and translation table from the SD Card Part
              2 File System Specification based on total number of
              disk sectors is used.

          -h NUMBER-OF-HIDDEN-SECTORS
              Specify the number of so-called hidden sectors, as
              stored in the FAT boot sector: this number represents
              the beginning sector of the partition containing the
              file system.  Normally this is an offset (in sectors)
              relative to the start of the disk, although for MBR
              logical volumes contained in an extended partition of
              type 0x05 (a non-LBA extended partition), a quirk in the
              MS-DOS implementation of FAT requires it to be relative
              to the partition's immediate containing Extended Boot
              Record.  Boot code and other software handling FAT
              volumes may also rely on this field being set up
              correctly; most modern FAT implementations will ignore
              it.  By default, if the DEVICE is a partition block
              device, mkfs.fat uses the partition offset relative to
              disk start.  Otherwise, mkfs.fat assumes zero.  Use this
              option to override this behaviour.

          -i VOLUME-ID
              Sets the volume ID of the newly created filesystem;
              VOLUME-ID is a 32-bit hexadecimal number (for example,
              2e24ec82).  The default is a number which depends on the
              filesystem creation time.

          -I  Ignore and disable safety checks.  By default mkfs.fat
              refuses to create a filesystem on a device with
              partitions or virtual mapping.  mkfs.fat will complain
              and tell you that it refuses to work.  This is different
              when using MO disks.  One doesn't always need partitions
              on MO disks.  The filesystem can go directly to the
              whole disk.  Under other OSes this is known as the
              superfloppy format.  This switch will force mkfs.fat to
              work properly.

          -l FILENAME
              Read the bad blocks list from FILENAME.

          -m MESSAGE-FILE
              Sets the message the user receives on attempts to boot
              this filesystem without having properly installed an
              operating system.  The message file must not exceed 418
              bytes once line feeds have been converted to carriage
              return-line feed combinations, and tabs have been
              expanded.  If the filename is a hyphen (-), the text is

     Page 3                   dosfstools 4.2         (printed 5/24/22)

     MKFS.FAT(8)               (2021-01-31)                MKFS.FAT(8)

              taken from standard input.

          -M FAT-MEDIA-TYPE
              Specify the media type to be stored in the FAT boot
              sector.  This value is usually 0xF8 for hard disks and
              is 0xF0 or a value from 0xF9 to 0xFF for floppies or
              partitions to be used for floppy emulation.

          --mbr[=y|yes|n|no|a|auto]
              Fill (fake) MBR table with disk signature one partition
              which starts at sector 0 (includes MBR itself) and spans
              whole disk device.  It is needed only for non-removable
              disks used on Microsoft Windows systems and only when
              formatting whole unpartitioned disk.  Location of the
              disk signature and partition table overlaps with the end
              of the first FAT sector (boot code location), therefore
              there is no additional space usage.  Default is auto
              mode in which mkfs.fat put MBR table only for non-
              removable disks when formatting whole unpartitioned
              disk.

          -n VOLUME-NAME
              Sets the volume name (label) of the filesystem.  The
              volume name can be up to 11 characters long.  Supplying
              an empty string, a string consisting only of white space
              or the string "NO NAME" as VOLUME-NAME has the same
              effect as not giving the -n option.  The default is no
              label.

          --codepage=PAGE
              Use DOS codepage PAGE to encode label.  By default
              codepage 850 is used.

          -r ROOT-DIR-ENTRIES
              Select the minimal number of entries available in the
              root directory.  The default is 112 or 224 for floppies
              and 512 for hard disks.  Note that this is minimal
              number and it may be increased by mkfs.fat due to
              alignment of structures.  See also mkfs.fat option -a.

          -R NUMBER-OF-RESERVED-SECTORS
              Select the minimal number of reserved sectors.  With
              FAT32 format at least 2 reserved sectors are needed, the
              default is 32.  Otherwise the default is 1 (only the
              boot sector).  Note that this is minimal number and it
              may be increased by mkfs.fat due to alignment of
              structures.  See also mkfs.fat option -a.

          -s SECTORS-PER-CLUSTER
              Specify the number of disk sectors per cluster.  Must be
              a power of 2, i.e. 1, 2, 4, 8, ... 128.

     Page 4                   dosfstools 4.2         (printed 5/24/22)

     MKFS.FAT(8)               (2021-01-31)                MKFS.FAT(8)

          -S LOGICAL-SECTOR-SIZE
              Specify the number of bytes per logical sector.  Must be
              a power of 2 and greater than or equal to 512, i.e. 512,
              1024, 2048, 4096, 8192, 16384, or 32768.  Values larger
              than 4096 are not conforming to the FAT file system
              specification and may not work everywhere.

          -v  Verbose execution.

          --offset SECTOR
              Write the filesystem at a specific sector into the
              device file.  This is useful for creating a filesystem
              in a partitioned disk image without having to set up a
              loop device.

          --variant TYPE
              Create a filesystem of variant TYPE.  Acceptable values
              are standard and atari (in any combination of
              upper/lower case).  See above under DESCRIPTION for the
              differences.

          --help
              Display option summary and exit.

          --invariant
              Use constants for normally randomly generated or time
              based data such as volume ID and creation time.
              Multiple runs of mkfs.fat on the same device create
              identical results with this option.  Its main purpose is
              testing mkfs.fat.

     BUGS
          mkfs.fat can not create boot-able filesystems.  This isn't
          as easy as you might think at first glance for various
          reasons and has been discussed a lot already.  mkfs.fat
          simply will not support it ;)

     SEE ALSO
          fatlabel(8), fsck.fat(8)

     HOMEPAGE
          The home for the dosfstools project is its GitHub project
          page

     AUTHORS
          dosfstools were written by Werner Almesberger Roman Hodek
          and others.  Current maintainers are Andreas Bombe and Pali
          Rohár

     Page 5                   dosfstools 4.2         (printed 5/24/22)