util-linux/disk-utils/mkswap.8

158 lines
4.5 KiB
Groff
Raw Normal View History

2006-12-06 17:25:37 -06:00
.\" Copyright 1998 Andries E. Brouwer (aeb@cwi.nl)
.\"
2006-12-06 17:25:32 -06:00
.\" May be distributed under the GNU General Public License
2006-12-06 17:25:37 -06:00
.\"
.TH MKSWAP 8 "March 2009" "util-linux" "System Administration"
2006-12-06 17:25:32 -06:00
.SH NAME
2006-12-06 17:25:33 -06:00
mkswap \- set up a Linux swap area
2006-12-06 17:25:32 -06:00
.SH SYNOPSIS
.B mkswap
[options]
.I device
.RI [ size ]
2006-12-06 17:25:32 -06:00
.SH DESCRIPTION
.B mkswap
2006-12-06 17:25:33 -06:00
sets up a Linux swap area on a device or in a file.
2006-12-06 17:25:32 -06:00
The
.I device
2006-12-06 17:25:37 -06:00
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
2006-12-06 17:25:37 -06:00
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)
2006-12-06 17:25:32 -06:00
The
2006-12-06 17:25:37 -06:00
.I size
parameter is superfluous but retained for backwards compatibility.
(It specifies the desired size of the swap area in 1024-byte blocks.
2006-12-06 17:25:33 -06:00
.B mkswap
2006-12-06 17:25:39 -06:00
will use the entire partition or file if it is omitted.
Specifying it is unwise \(en a typo may destroy your disk.)
2006-12-06 17:25:33 -06:00
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.
2006-12-06 17:25:33 -06:00
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
2006-12-06 17:25:37 -06:00
.I /proc/swaps
2006-12-06 17:25:33 -06:00
2006-12-06 17:25:37 -06:00
.B mkswap
refuses areas smaller than 10 pages.
2006-12-06 17:25:33 -06:00
2006-12-06 17:25:37 -06:00
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
2006-12-06 17:25:37 -06:00
the contents of this file depend on architecture and kernel version).
2006-12-06 17:25:33 -06:00
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
2006-12-06 17:25:32 -06:00
.nf
.RS
# dd if=/dev/zero of=swapfile bs=1MiB count=$((8*1024))
2006-12-06 17:25:32 -06:00
.RE
.fi
to create 8GiB swapfile.
The swap file implementation in the kernel expects to be able to write to the file directly,
without the assistance of the filesystem. This is a problem on files with holes
(e.g. created by
2006-12-06 17:25:32 -06:00
.BR cp (1)
or another commands), or on files on copy-on-write filesystems like
.BR btrfs .
In some cases preallocated files (e.g. fallocate(1) on XFS) maybe interpreted
by old kernel versions as files with holes too. The most portable solution is to use
.BR dd (1)
and /dev/zero in these cases.
.sp
Please read notes from
.BR swapon (8)
before adding a swap file to copy-on-write filesystems.
2006-12-06 17:25:32 -06:00
.SH ENVIRONMENT
.IP LIBBLKID_DEBUG=all
enables libblkid debug output.
2006-12-06 17:25:32 -06:00
.SH "SEE ALSO"
2006-12-06 17:25:37 -06:00
.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/.