'\" t
.TH mlabel 1 "08Jan22" mtools-4.0.37
.SH Name
mlabel - make an MSDOS volume label
'\" t
.de TQ
.br
.ns
.TP \\$1
..

.tr \(is'
.tr \(if`
.tr \(pd"

.SH Note\ of\ warning
This manpage has been automatically generated from mtools's texinfo
documentation, and may not be entirely accurate or complete.  See the
end of this man page for details.
.PP
.SH Description
.PP
The \fR\&\f(CWmlabel\fR command adds a volume label to a disk. Its syntax is:
.ft I
.nf
\&\fR\&\f(CWmlabel\fR [\fR\&\f(CW-vcsn\fR] [\fR\&\f(CW-N\fR \fIserial\fR] \fIdrive\fR:[\fInew_label\fR]
.fi
.ft R
 
.PP
\&\fR\&\f(CWMlabel\fR displays the current volume label, if present. If
\&\fInew_label\fR is not given, and if neither the \fR\&\f(CWc\fR nor the
\&\fR\&\f(CWs\fR options are set, it prompts the user for a new volume label.
To delete an existing volume label, press return at the prompt.
.PP
The label is limited to 11 single-byte characters,
e.g. \fR\&\f(CWName1234567\fR.
.PP
Reasonable care is taken to create a valid MS-DOS volume label.  If an
invalid label is specified, \fR\&\f(CWmlabel\fR changes the label (and
displays the new label if the verbose mode is set). \fR\&\f(CWMlabel\fR
returns 0 on success or 1 on failure.
.PP
Mlabel supports the following options:
.TP
\&\fR\&\f(CWc\fR\ 
Clears an existing label, without prompting the user
.TP
\&\fR\&\f(CWs\fR\ 
Shows the existing label, without prompting the user.
.TP
\&\fR\&\f(CWn\ \fR\ 
Assigns a new (random) serial number to the disk
.TP
\&\fR\&\f(CWN\ \fIserial\fR\&\f(CW\fR\ 
Sets the supplied serial number. The serial number should be supplied as
an 8 digit hexadecimal number, without spaces
.PP
.SH See\ Also
Mtools' texinfo doc
.SH Viewing\ the\ texi\ doc
This manpage has been automatically generated from mtools's texinfo
documentation. However, this process is only approximative, and some
items, such as crossreferences, footnotes and indices are lost in this
translation process.  Indeed, these items have no appropriate
representation in the manpage format.  Moreover, not all information has
been translated into the manpage version.  Thus I strongly advise you to
use the original texinfo doc.  See the end of this manpage for
instructions how to view the texinfo doc.
.TP
* \ \ 
To generate a printable copy from the texinfo doc, run the following
commands:
 
.nf
.ft 3
.in +0.3i
    ./configure; make dvi; dvips mtools.dvi
.fi
.in -0.3i
.ft R
.PP
 
\&\fR
.TP
* \ \ 
To generate a html copy,  run:
 
.nf
.ft 3
.in +0.3i
    ./configure; make html
.fi
.in -0.3i
.ft R
.PP
 
\&\fRA premade html can be found at
\&\fR\&\f(CW\(ifhttp://www.gnu.org/software/mtools/manual/mtools.html\(is\fR
.TP
* \ \ 
To generate an info copy (browsable using emacs' info mode), run:
 
.nf
.ft 3
.in +0.3i
    ./configure; make info
.fi
.in -0.3i
.ft R
.PP
 
\&\fR
.PP
The texinfo doc looks most pretty when printed or as html.  Indeed, in
the info version certain examples are difficult to read due to the
quoting conventions used in info.
.PP
