OpenBSD manual page server

Manual Page Search Parameters

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

newfs_msdosconstruct a new MS-DOS (FAT) file system

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-sizespecial [disktype]

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:

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

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 */

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

Exit status is 0 on success and 1 on error.

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

The newfs_msdos command first appeared in OpenBSD 2.1.

Robert Nordier <>.

July 10, 2014 OpenBSD-current