---
name: "mkfatimage16"
section: "1"
platform: "linux"
package: "dosemu"
version: "1:1.4.0.8+753+g18f6f5cd-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/mkfatimage16"
---

# mkfatimage16(1)

generate a virtual drive image suitable for DOSEMU

## NAME

mkfatimage16 - generate a virtual drive image suitable for DOSEMU

## SYNOPSIS

**mkfatimage16** \[ **-b bsectfile** \] \[{ **-t tracks** \| **-k Kbytes** }\] \[ **-l volume-label** \] \[ **-f outfile** \] \[ **-p** \] \[ **file...** \]

## DESCRIPTION

**mkfatimage16** creates a hdimage file for **DOSEMU** that is pre-loaded with the files specified on the command line. The output is either written to *stdout* (hence do not forget to append " \> hdimagefile", else you will see garbage on the screen) or to the file specified by the **-f** option. For the latter you may also use option **-p** in order to force padding up to the given size. This padding will result in so-called holes on an ext2-FS, hence the actual disk usage will not be greater. The file created by mkfatimage16 then can be used as a virtual drive, when defined in */etc/dosemu.conf.* As long as **-k** is not given, the number of heads is always 4 and you have 17 sectors per head else it is adjusted accordingly. To vary the size, you may either use the **-t** option or specify the total amount of Kbytes via **-k** option.

All files given behind the options will be copied onto the hdimage. In addition a **DOSEMU** suitable master boot record (MBR) is established and via option **-b** you may specify a boot sector that gets inserted as first sector of the partition. To later access the hdimage outside of **DOSEMU** you should use **mtools** (/etc/mtools.conf parameters **partition=1** and **offset=128**).

## OPTIONS

- *-b file*

  Insert the first 512 bytes of *file* into the bootsector of the partition.

- *-t num*

  Make the virtual disk have *num* tracks. This is the one way to define the size of the disk.

- *-k Kbytes*

  Make the virtual disk be *Kbytes* in size. Using *-t* and *-k* are mutual exclusive.

- *-l label*

  insert *label* as volume label for the disk.

- *-f outfile*

  The hdimage is written to *outfile* instead of *stdout*

- *-p*

  Pad the hdimage with zero up to the total size given by *-t* or *-k* (only in conjunction with *-f*).

## AUTHOR

Pasi Eronen (pe@iki.fi) and Peter Wainwright.

## BUGS

This program doesn't support name mangling and does very little checking for non-DOS filenames. Disk full condition isn't detected (and probably causes erratic behaviour). Duplicate files aren't detected.

## AVAILABILITY

Comes with **DOSEMU**

## SEE ALSO

[**dosemu**(1)](/dosemu/1.md), [**xdosemu**(1)](/xdosemu/1.md), [**mtools**(1)](/mtools/1.md)
