NEWFS_MSDOS(8) | System Manager's Manual | NEWFS_MSDOS(8)

# NAME

`newfs_msdos` — construct a new MS-DOS (FAT) file system

# SYNOPSIS

`newfs_msdos` | [`-N`] [`-a` FAT-size] [`-B` boot] [`-b` block-size] [`-c` cluster-size] [`-e` dirents] [`-F` FAT-type] [`-f` format] [`-h` heads] [`-I` volid] [`-i` info] [`-k` backup] [`-L` label] [`-m` media] [`-n` FATs] [`-O` OEM] [`-o` hidden] [`-r` reserved] [`-S` sector-size] [`-s` total] [`-u` track-size] special [disktype]

# DESCRIPTION

The `newfs_msdos` utility creates a FAT12, FAT16, or FAT32 file system on device special, using disktab(5) entry disktype to determine geometry, if required.

The special file should be a raw device, for example /dev/rsd0i; if a relative path like sd0i is specified, the corresponding raw device is used.

The options are as follows:

`-a` FAT-size
  Number of sectors per FAT.
`-B` boot
  Get bootstrap from file.
`-b` block-size
  File system block size (bytes per cluster). This should resolve to an acceptable number of sectors per cluster (see below).
`-c` cluster-size
  Sectors per cluster. Acceptable values are powers of 2 in the range 1 through 128.
`-e` dirents
  Number of root directory entries (FAT12 and FAT16 only).
`-F` FAT-type
  FAT type (one of 12, 16, or 32).
`-f` format
  Specify a standard (floppy disk) format. The eight standard formats are (capacities in kilobytes): 160, 180, 320, 360, 720, 1200, 1440, 2880.
`-h` heads
  Number of drive heads.
`-I` volid
  Volume ID.
`-i` info
  Location of the file system info sector (FAT32 only). A value of 0xffff signifies no info sector.
`-k` backup
  Location of the backup boot sector (FAT32 only). A value of 0xffff signifies no backup sector.
`-L` label
  Volume label (up to 11 characters). The label should consist of only those characters permitted in regular DOS (8+3) filenames.
`-m` media
  Media descriptor (acceptable range 0xf0 to 0xff).
`-N`
  Don't create a file system: just print out parameters.
`-n` FATs
  Number of FATs. Acceptable values are 1 to 16 inclusive. The default is 2.
`-O` OEM
  OEM string (up to 8 characters). The default is "BSD 4.4".
`-o` hidden
  Number of hidden sectors.
`-r` reserved
  Number of reserved sectors.
`-S` sector-size
  Number of bytes per sector. Acceptable values are powers of 2 in the range 512 through 32768.
`-s` total
  File system size.
`-u` track-size
  Number of sectors per track.

# NOTES

FAT file system parameters occupy a "Boot Sector BPB (BIOS Parameter Block)" in the first of the "reserved" sectors which precede the actual file system. For reference purposes, this structure is presented below.

    struct bsbpb {
    	u_int16_t	bps;		/* [-S] bytes per sector */
    	u_int8_t	spc;		/* [-c] sectors per cluster */
    	u_int16_t	res;		/* [-r] reserved sectors */
    	u_int8_t	nft;		/* [-n] number of FATs */
    	u_int16_t	rde;		/* [-e] root directory entries */
    	u_int16_t	sec;		/* [-s] total sectors */
    	u_int8_t	mid;		/* [-m] media descriptor */
    	u_int16_t	spf;		/* [-a] sectors per FAT */
    	u_int16_t	spt;		/* [-u] sectors per track */
    	u_int16_t	hds;		/* [-h] drive heads */
    	u_int32_t	hid;		/* [-o] hidden sectors */
    	u_int32_t	bsec;		/* [-s] big total sectors */
    };

    /* FAT32 extensions */
    struct bsxbpb {
    	u_int32_t	bspf;		/* [-a] big sectors per FAT */
    	u_int16_t	xflg;		/* control flags */
    	u_int16_t	vers;		/* file system version */
    	u_int32_t	rdcl;		/* root directory start cluster */
    	u_int16_t	infs;		/* [-i] file system info sector */
    	u_int16_t	bkbs;		/* [-k] backup boot sector */
    };

# EXAMPLES

Create a file system, using default parameters, on /dev/rwd0i.

`newfs_msdos /dev/rwd0i`

Create a standard 1.44M file system, with volume label "foo", on /dev/rfd0c.

`newfs_msdos -f 1440 -L foo fd0c`

# DIAGNOSTICS

Exit status is 0 on success and 1 on error.

# SEE ALSO

disktab(5), disklabel(8), fdisk(8), newfs(8)

# HISTORY

The `newfs_msdos` command first appeared in OpenBSD 2.1.

# AUTHORS

Robert Nordier <rnordier@FreeBSD.org>.

July 10, 2014 | Debian