.\" $NetBSD: mount_msdos.8,v 1.41 2020/02/12 09:43:19 leot Exp $
.\"
.\" Copyright (c) 1993, 1994 Christopher G. Demetriou
.\" 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed for the
.\" NetBSD Project. See http://www.NetBSD.org/ for
.\" information about NetBSD.
.\" 4. The name of the author may not be used to endorse or promote products
.\" derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
.\"
.\" <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
.\"
.Dd February 12, 2020
.Dt MOUNT_MSDOS 8
.Os
.Sh NAME
.Nm mount_msdos
.Nd mount an MS-DOS file system
.Sh SYNOPSIS
.Nm
.Op Fl 9GlsU
.Op Fl g Ar gid
.Op Fl M Ar mask
.Op Fl m Ar mask
.Op Fl o Ar options
.Op Fl t Ar gmtoff
.Op Fl u Ar uid
.Pa special
.Pa node
.Sh DESCRIPTION
The
.Nm
command attaches the MS-DOS file system residing on
the device
.Pa special
to the global file system namespace at the location
indicated by
.Pa node .
Both
.Ar special
and
.Ar node
are converted to absolute paths before use.
This command is normally executed by
.Xr mount 8
at boot time, but can be used by any user to mount an
MS-DOS file system on any directory that they own (provided,
of course, that they have appropriate access to the device that
contains the file system).
.Pp
Support for FAT16 and VFAT32 as well as long file names is available.
.Pp
The options are as follows:
.Bl -tag -width XoXoptionsXX
.It Fl 9
Ignore the special Win'95 directory entries even
if deleting or renaming a file.
This forces
.Fl s .
.It Fl G
This option causes the file system to be interpreted as an Atari-Gemdos
file system.
The differences to the MS-DOS file system are minimal and
limited to the boot block.
This option also allows mounting X680x0's Human68k floppies.
This option enforces
.Fl s .
.It Fl g Ar gid
Set the group of the files in the file system to
.Ar gid .
The default group is the group of the directory
on which the file system is being mounted.
.It Fl l
Force listing and generation of
Win'95 long filenames
and separate creation/modification/access dates.
.Pp
If neither
.Fl s
nor
.Fl l
are given,
.Nm
searches the root directory of the file system to
be mounted for any existing Win'95 long filenames.
If the file system is not empty and no such entries are found,
.Fl s
is the default.
Otherwise
.Fl l
is assumed.
.It Fl U
The MS-DOS file system stores filenames in a short
version using 8-bit characters according to some
character set and a long version with 16-bit unicode
characters.
The default method to store encoding-agnostic UNIX filenames
is to copy them byte-wise into both fields.
This is
transparent but generates wrong unicode characters
for anything that is not ASCII.
Setting the
.Fl U
flag interprets UNIX filenames as UTF-8 and generates
correctly encoded long filenames.
This forces
.Fl l .
.It Fl M Ar mask
Specify the maximum file permissions for directories
in the file system.
The value of
.Fl m
is used if it is supplied and
.Fl M
is omitted.
.It Fl m Ar mask
Specify the maximum file permissions for files
in the file system.
(For example, a mask of
.Li 755
specifies that, by default, the owner should have
read, write, and execute permissions for files, but
others should only have read and execute permissions.
See
.Xr chmod 1
for more information about octal file modes.)
Only the nine low-order bits of
.Ar mask
are used.
The value of
.Fl M
is used if it is supplied and
.Fl m
is omitted.
The default mask is taken from the
directory on which the file system is being mounted.
.It Fl o Ar options
Use the specified mount
.Ar options ,
as described in
.Xr mount 8 .
.It Fl s
Force behaviour to
ignore and not generate Win'95 long filenames.
See also
.Fl l .
.It Fl t Ar gmtoff
Set the time zone offset (in seconds) from UTC to
.Ar gmtoff ,
with positive values indicating east of the Prime Meridian.
If not set, the user's current time zone will be used.
.It Fl u Ar uid
Set the owner of the files in the file system to
.Ar uid .
The default owner is the owner of the directory
on which the file system is being mounted.
.El
.Sh EXAMPLES
To remove the 'execute' permission bit for all files, but still keep
directories searchable, use:
.Bl -item -offset indent
.It
mount_msdos -m 0644 -M 0755 /dev/wd0e /msdos
.El
.Sh SEE ALSO
.Xr mount 2 ,
.Xr unmount 2 ,
.Xr fstab 5 ,
.Xr mount 8
.Sh HISTORY
The predecessor to
.Nm
utility named
.Nm mount_pcfs
appeared in
.Nx 0.8 .
It was abandoned in favour of the more aptly-named
.Nm
in
.Nx 0.9
and rewritten entirely by
.Nx 1.0 .
.Sh AUTHORS
Initial implementation as
.Nm mount_pcfs
was written by
.An -nosplit
.An Paul Popelka Aq Mt paulp@uts.amdahl.com .
It was rewritten by
.An Christopher G. Demetriou Aq Mt cgd@NetBSD.org .
.Sh BUGS
Compressed partitions are not supported.
.Pp
The use of the
.Fl 9
flag could result in damaged file systems,
albeit the damage is in part taken care of by
procedures similar to the ones used in Win'95.