.\" Copyright 1998 Andries E. Brouwer (aeb@cwi.nl)
.\"
.\" May be distributed under the GNU General Public License
.\"
.TH MKSWAP 8 "March 2009" "util-linux" "System Administration"
.SH NAME
mkswap \- set up a Linux swap area
.SH SYNOPSIS
.B mkswap
[options]
.I device
.RI [ size ]
.SH DESCRIPTION
.B mkswap
sets up a Linux swap area on a device or in a file.

The
.I device
argument will usually be a disk partition (something like
.IR /dev/sdb7 )
but can also be a file.
The Linux kernel does not look at partition IDs, but
many installation scripts will assume that partitions
of hex type 82 (LINUX_SWAP) are meant to be swap partitions.
(\fBWarning: Solaris also uses this type.  Be careful not to kill
your Solaris partitions.\fP)

The
.I size
parameter is superfluous but retained for backwards compatibility.
(It specifies the desired size of the swap area in 1024-byte blocks.
.B mkswap
will use the entire partition or file if it is omitted.
Specifying it is unwise \(en a typo may destroy your disk.)

After creating the swap area, you need the
.B swapon
command to start using it.  Usually swap areas are listed in
.I /etc/fstab
so that they can be taken into use at boot time by a
.B swapon \-a
command in some boot script.

.SH WARNING
The swap header does not touch the first block.  A boot loader or disk label
can be there, but it is not a recommended setup.  The recommended setup is to
use a separate partition for a Linux swap area.

.BR mkswap ,
like many others mkfs-like utils,
.B erases the first partition block to make any previous filesystem invisible.

However,
.B mkswap
refuses to erase the first block on a device with a disk
label (SUN, BSD, \&...\&).

.SH OPTIONS
.TP
.BR \-c , " \-\-check"
Check the device (if it is a block device) for bad blocks
before creating the swap area.
If any bad blocks are found, the count is printed.
.TP
.BR \-f , " \-\-force"
Go ahead even if the command is stupid.
This allows the creation of a swap area larger than the file
or partition it resides on.

Also, without this option,
.B mkswap
will refuse to erase the first block on a device with a partition table.
.TP
.BR \-L , " \-\-label " \fIlabel\fR
Specify a \fIlabel\fR for the device, to allow
.B swapon
by label.
.TP
.BR \-p , " \-\-pagesize " \fIsize\fR
Specify the page \fIsize\fR (in bytes) to use.  This option is usually unnecessary;
.B mkswap
reads the size from the kernel.
.TP
.BR \-U , " \-\-uuid " \fIUUID\fR
Specify the \fIUUID\fR to use.  The default is to generate a UUID.
.TP
.BR \-v , " \-\-swapversion 1"
Specify the swap-space version.  (This option is currently pointless, as the old
.B \-v 0
option has become obsolete and now only
.B \-v 1
is supported.
The kernel has not supported v0 swap-space format since 2.5.22 (June 2002).
The new version v1 is supported since 2.1.117 (August 1998).)
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.TP
.BR \-V , " \-\-version"
Display version information and exit.

.SH NOTES
The maximum useful size of a swap area depends on the architecture and
the kernel version.

The maximum number of the pages that is possible to address by swap area header
is 4294967295 (UINT_MAX).  The remaining space on the swap device is ignored.

Presently, Linux allows 32 swap areas.
The areas in use can be seen in the file
.I /proc/swaps

.B mkswap
refuses areas smaller than 10 pages.

If you don't know the page size that your machine uses, you may be
able to look it up with "cat /proc/cpuinfo" (or you may not \(en
the contents of this file depend on architecture and kernel version).

To set up a swap file, it is necessary to create that file before
initializing it with
.BR mkswap ,
e.g.\& using a command like

.nf
.RS
# fallocate \-\-length 8GiB swapfile
.RE
.fi

Note that a swap file must not contain any holes.  Using
.BR cp (1)
to create the file is not acceptable.  Neither is use of
.BR fallocate (1)
on file systems that support preallocated files, such as
.BR XFS " or " ext4 ,
or on copy-on-write filesystems like
.BR btrfs .
It is recommended to use
.BR dd (1)
and /dev/zero in these cases.  Please read notes from
.BR swapon (8)
before adding a swap file to copy-on-write filesystems.

.SH ENVIRONMENT
.IP LIBBLKID_DEBUG=all
enables libblkid debug output.

.SH "SEE ALSO"
.BR fdisk (8),
.BR swapon (8)
.SH AVAILABILITY
The mkswap command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
