.\" Copyright (c) 1980, 1991 Regents of the University of California.
.\" 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 by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
.\"
.\"     @(#)swapon.8	6.3 (Berkeley) 3/16/91
.\"
.\" Sun Dec 27 12:31:30 1992: Modified by faith@cs.unc.edu
.\" Sat Mar  6 20:46:02 1993: Modified by faith@cs.unc.edu
.\" Sat Oct  9 09:35:30 1993: Converted to man format by faith@cs.unc.edu
.\" Sat Nov 27 20:22:42 1993: Updated authorship information, faith@cs.unc.edu
.\" Mon Sep 25 14:12:38 1995: Added -v and -p information
.\" Tue Apr 30 03:32:07 1996: Added some text from A. Koppenhoefer
.\"
.TH SWAPON 8 "25 September 1995" "Linux 1.x" "Linux Programmer's Manual"
.SH NAME
swapon, swapoff \- enable/disable devices and files for paging and swapping
.SH SYNOPSIS
Get info:
.br
.in +5
.B swapon \-s
.RB [ \-h ]
.RB [ \-V ]
.sp
.in -5
Enable/disable:
.br
.in +5
.B swapon
.RB [ \-f ]
.RB [ \-p
.IR priority ]
.RB [ \-v ]
.IR specialfile ...
.br
.B swapoff
.RB [ \-v ]
.IR specialfile ...
.sp
.in -5
Enable/disable all:
.br
.in +5
.B swapon \-a
.RB [ \-e ]
.RB [ \-f ]
.RB [ \-v ]
.br
.B swapoff \-a
.RB [ \-v ]
.in -5
.SH DESCRIPTION
.B swapon
is used to specify devices on which paging and swapping are to take place.

The device or file used is given by the
.I specialfile
parameter. It may be of the form
.BI \-L " label"
or
.BI \-U " uuid"
to indicate a device by label or uuid.

Calls to
.B swapon
normally occur in the system boot scripts making all swap devices available, so
that the paging and swapping activity is interleaved across several devices and
files.

.B swapoff
disables swapping on the specified devices and files.
When the
.B \-a
flag is given, swapping is disabled on all known swap devices and files
(as found in
.I /proc/swaps
or
.IR /etc/fstab ).

.TP
.B "\-a, \-\-all"
All devices marked as ``swap'' in
.I /etc/fstab
are made available, except for those with the ``noauto'' option.
Devices that are already being used as swap are silently skipped.
.TP
.B "\-e, \-\-ifexists"
Silently skip devices that do not exist.
.TP
.B "\-f, \-\-fixpgsz"
Reinitialize (exec /sbin/mkswap) the swap space if its page size does not
match that of the the current running kernel.
.B mkswap(2)
initializes the whole device and does not check for bad blocks.
.TP
.B \-h, \-\-help
Provide help.
.TP
.B "\-L \fIlabel\fP"
Use the partition that has the specified
.IR label .
(For this, access to
.I /proc/partitions
is needed.)
.TP
.B "\-p, \-\-priority \fIpriority\fP"
Specify the priority of the swap device.
.I priority
is a value between 0 and 32767. Higher numbers indicate higher
priority. See
.BR swapon (2)
for a full description of swap priorities. Add
.BI pri= value
to the option field of
.I /etc/fstab
for use with
.BR "swapon -a" .
.TP
.B "\-s, \-\-summary"
Display swap usage summary by device. Equivalent to "cat /proc/swaps".
Not available before Linux 2.1.25.
.TP
.B "\-U \fIuuid\fP"
Use the partition that has the specified
.IR uuid .
.TP
.B "\-v, \-\-verbose"
Be verbose.
.TP
.B "\-V, \-\-version"
Display version.
.SH NOTES
You should not use
.B swapon
on a file with holes.
Swap over NFS may not work.
.PP
.B swapon
automatically detects and rewrites swap space signature with old software
suspend data (e.g S1SUSPEND, S2SUSPEND, ...). The problem is that if we don't
do it, then we get data corruption the next time an attempt at unsuspending is
made.
.SH SEE ALSO
.BR swapon (2),
.BR swapoff (2),
.BR fstab (5),
.BR init (8),
.BR mkswap (8),
.BR rc (8),
.BR mount (8)
.SH FILES
.br
.I /dev/sd??
standard paging devices
.br
.I /etc/fstab
ascii filesystem description table
.SH HISTORY
The
.B swapon
command appeared in 4.0BSD.
.SH AVAILABILITY
The swapon command is part of the util-linux-ng package and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
