b87d1601b6
when preparing images for emulators or flash devices: + option '-C size' to create the underlying image file with given size. Saves doing a 'dd' before, and especially it creates a sparse file + option '-@ offset' to build the FAT image at the specified offset in the image file or device; + make the cluster size adaptive on the filesystem size. Previously the default was 4k which is really unconvenient with large media; now it goes from 512 bytes to 32k depending on filesystem size (i still need to check whether it makes sense to go further up, to 64k or above); + fix default geometry when not specified on the command line, use 63 sectors/255 heads by default. Also trim the size so it exactly a multiple of a track, to avoid complaints in some filesystem code. + document all the above, plus some manual page clarifications. MFC after: 4 weeks
238 lines
7.2 KiB
Groff
238 lines
7.2 KiB
Groff
.\" Copyright (c) 1998 Robert Nordier
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in
|
|
.\" the documentation and/or other materials provided with the
|
|
.\" distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
|
|
.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY
|
|
.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd December 8, 2007
|
|
.Dt NEWFS_MSDOS 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm newfs_msdos
|
|
.Nd construct a new MS-DOS (FAT) file system
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl N
|
|
.Op Fl @ Ar offset
|
|
.Op Fl B Ar boot
|
|
.Op Fl C Ar create-size
|
|
.Op Fl F Ar FAT-type
|
|
.Op Fl I Ar volid
|
|
.Op Fl L Ar label
|
|
.Op Fl O Ar OEM
|
|
.Op Fl S Ar sector-size
|
|
.Op Fl a Ar FAT-size
|
|
.Op Fl b Ar block-size
|
|
.Op Fl c Ar cluster-size
|
|
.Op Fl e Ar dirents
|
|
.Op Fl f Ar format
|
|
.Op Fl h Ar heads
|
|
.Op Fl i Ar info
|
|
.Op Fl k Ar backup
|
|
.Op Fl m Ar media
|
|
.Op Fl n Ar FATs
|
|
.Op Fl o Ar hidden
|
|
.Op Fl r Ar reserved
|
|
.Op Fl s Ar total
|
|
.Op Fl u Ar track-size
|
|
.Ar special
|
|
.Op Ar disktype
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
utility creates a FAT12, FAT16, or FAT32 file system on device or file named
|
|
.Ar special ,
|
|
using
|
|
.Xr disktab 5
|
|
entry
|
|
.Ar disktype
|
|
to determine geometry, if required.
|
|
.Pp
|
|
If
|
|
.Ar special
|
|
does not contain a
|
|
.Ar / ,
|
|
it is assumed to be a device name and
|
|
.Ar /dev
|
|
is prepended to the name to construct the actual device name.
|
|
To work a file in the current directory use
|
|
.Ar ./filename
|
|
.Pp
|
|
The options are as follow:
|
|
.Bl -tag -width indent
|
|
.It Fl N
|
|
Do not create a file system: just print out parameters.
|
|
.It Fl @ Ar offset
|
|
Build the filesystem at the specified offset in bytes in the device or file.
|
|
A suffix s, k, m, g (lower or upper case)
|
|
appended to the offset specifies that the
|
|
number is in sectors, kilobytes, megabytes or gigabytes, respectively.
|
|
.It Fl B Ar boot
|
|
Get bootstrap from file.
|
|
.It Fl C Ar create-size
|
|
Create the image file with the specified size. A suffix character appended
|
|
to the size is interpreted as for the
|
|
.Fl @
|
|
option. The file is created by truncating any existing file with the
|
|
same name, seeking just before the required size and writing
|
|
a single 0 byte. As a consequence, the space occupied on disk
|
|
may be smaller than the size specified as a parameter.
|
|
.It Fl F Ar FAT-type
|
|
FAT type (one of 12, 16, or 32).
|
|
.It Fl I Ar volid
|
|
Volume ID, a 32 bit number in decimal or hexadecimal (0x...) format.
|
|
.It Fl L Ar label
|
|
Volume label (up to 11 characters).
|
|
The label should consist of
|
|
only those characters permitted in regular DOS (8+3) filenames.
|
|
.It Fl O Ar OEM
|
|
OEM string (up to 8 characters).
|
|
The default is
|
|
.Qq Li "BSD 4.4" .
|
|
.It Fl S Ar sector-size
|
|
Number of bytes per sector.
|
|
Acceptable values are powers of 2
|
|
in the range 128 through 32768.
|
|
.It Fl a Ar FAT-size
|
|
Number of sectors per FAT.
|
|
.It Fl b Ar block-size
|
|
File system block size (bytes per cluster).
|
|
This should resolve to an
|
|
acceptable number of sectors per cluster (see below).
|
|
.It Fl c Ar cluster-size
|
|
Sectors per cluster.
|
|
Acceptable values are powers of 2 in the range
|
|
1 through 128.
|
|
If the block or cluster size are not specified, the code
|
|
uses a cluster between 512 bytes and 32K depending on
|
|
the filesystem size.
|
|
.It Fl e Ar dirents
|
|
Number of root directory entries (FAT12 and FAT16 only).
|
|
.It Fl f Ar format
|
|
Specify a standard (floppy disk) format.
|
|
The standard formats
|
|
are (capacities in kilobytes): 160, 180, 320, 360, 640, 720, 1200,
|
|
1232, 1440, 2880.
|
|
.It Fl h Ar heads
|
|
Number of drive heads.
|
|
.It Fl i Ar info
|
|
Location of the file system info sector (FAT32 only).
|
|
A value of 0xffff signifies no info sector.
|
|
.It Fl k Ar backup
|
|
Location of the backup boot sector (FAT32 only).
|
|
A value
|
|
of 0xffff signifies no backup sector.
|
|
.It Fl m Ar media
|
|
Media descriptor (acceptable range 0xf0 to 0xff).
|
|
.It Fl n Ar FATs
|
|
Number of FATs.
|
|
Acceptable values are 1 to 16 inclusive.
|
|
The default
|
|
is 2.
|
|
.It Fl o Ar hidden
|
|
Number of hidden sectors.
|
|
.It Fl r Ar reserved
|
|
Number of reserved sectors.
|
|
.It Fl s Ar total
|
|
File system size.
|
|
.It Fl u Ar track-size
|
|
Number of sectors per track.
|
|
.El
|
|
.Sh NOTES
|
|
If some parameters (e.g. size, number of sectors, etc.) are not specified
|
|
through options or disktype, the program tries to generate them
|
|
automatically. In particular, the size is determined as the
|
|
device or file size minus the offset specified with the
|
|
.Fl @
|
|
option. When the geometry is not available, it is assumed to be
|
|
63 sectors, 255 heads. The size is then rounded to become
|
|
a multiple of the track size and avoid complaints by some filesystem code.
|
|
.Pp
|
|
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.
|
|
.Bd -literal
|
|
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 */
|
|
};
|
|
.Ed
|
|
.Sh LIMITATION
|
|
The maximum file size is 4GB, even if the file system itself is bigger.
|
|
.Sh EXIT STATUS
|
|
Exit status is 0 on success and 1 on error.
|
|
.Sh EXAMPLES
|
|
Create a file system, using default parameters, on
|
|
.Pa /dev/ad0s1 :
|
|
.Bd -literal -offset indent
|
|
newfs_msdos /dev/ad0s1
|
|
.Ed
|
|
.Pp
|
|
Create a standard 1.44M file system, with volume label
|
|
.Ar foo ,
|
|
on
|
|
.Pa /dev/fd0 :
|
|
.Bd -literal -offset indent
|
|
newfs_msdos -f 1440 -L foo fd0
|
|
.Ed
|
|
.Pp
|
|
Create a 30MB image file, with the FAT partition starting
|
|
63 sectors within the image file:
|
|
.Bd -literal -offset indent
|
|
newfs_msdos -C 30M -@63s ./somefile
|
|
.Ed
|
|
.Sh SEE ALSO
|
|
.Xr disktab 5 ,
|
|
.Xr disklabel 8 ,
|
|
.Xr fdisk 8 ,
|
|
.Xr newfs 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
utility first appeared in
|
|
.Fx 3.0 .
|
|
.Sh AUTHORS
|
|
.An Robert Nordier Aq rnordier@FreeBSD.org .
|