summaryrefslogtreecommitdiffstats
path: root/disk-utils/mkswap.8
diff options
context:
space:
mode:
authorKarel Zak2006-12-07 00:25:37 +0100
committerKarel Zak2006-12-07 00:25:37 +0100
commit5c36a0eb7cdb0360f9afd5d747c321f423b35984 (patch)
tree147599a77eaff2b5fbc0d389e89d2b51602326c0 /disk-utils/mkswap.8
parentImported from util-linux-2.8 tarball. (diff)
downloadkernel-qcow2-util-linux-5c36a0eb7cdb0360f9afd5d747c321f423b35984.tar.gz
kernel-qcow2-util-linux-5c36a0eb7cdb0360f9afd5d747c321f423b35984.tar.xz
kernel-qcow2-util-linux-5c36a0eb7cdb0360f9afd5d747c321f423b35984.zip
Imported from util-linux-2.9i tarball.
Diffstat (limited to 'disk-utils/mkswap.8')
-rw-r--r--disk-utils/mkswap.8163
1 files changed, 94 insertions, 69 deletions
diff --git a/disk-utils/mkswap.8 b/disk-utils/mkswap.8
index 1e14167b8..2df606c57 100644
--- a/disk-utils/mkswap.8
+++ b/disk-utils/mkswap.8
@@ -1,83 +1,93 @@
-.\" Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu)
+.\" Copyright 1998 Andries E. Brouwer (aeb@cwi.nl)
+.\"
.\" May be distributed under the GNU General Public License
-.\" Modified with suggestions from Linus, Mon Feb 1 21:40:49 1993
-.\" Modified with patches from Kai, Wed Jun 22 21:54:56 1994
-.\" Patches from jaggy@purplet.demon.co.uk (Mike Jagdis), Wed Feb 8 1995
-.\" Added comments from Nick Holloway, Sat Feb 11 1995, faith@cs.unc.edu
-.\" "
-.TH MKSWAP 8 "February 1995" "Linux 1.0" "Linux Programmer's Manual"
+.\" Rewritten for 2.1.117, aeb, 981010.
+.\"
+.TH MKSWAP 8 "1 December 1998" "Linux 2.1.117" "Linux Programmer's Manual"
.SH NAME
mkswap \- set up a Linux swap area
.SH SYNOPSIS
-.B "mkswap [ \-c ]"
-.IB device " [" size-in-blocks "]"
+.BI "mkswap [\-c] [\-v" N "] [\-f] " device " [" size "]"
.SH DESCRIPTION
.B mkswap
sets up a Linux swap area on a device or in a file.
+(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.)
+
The
.I device
-is usually of the following form:
-
-.nf
-.RS
-/dev/hda[1-8]
-/dev/hdb[1-8]
-/dev/sda[1-8]
-/dev/sdb[1-8]
-.RE
-.fi
+argument will usually be a disk partition (something like
+.I /dev/hda4
+or
+.IR /dev/sdb7 )
+but can also be a file.
+The Linux kernel does not look at partition Id's, but
+many installation scripts will assume that partitions
+of hex type 82 (LINUX_SWAP) are meant to be swap partitions.
The
-.I size-in-blocks
-parameter is the desired size of the file system, in blocks. This
-information is determined automatically by
+.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
-if it is omitted. Block counts are rounded down so that the total
-size is an integer multiple of the machine's page size. Only block
-counts in the range MINCOUNT..MAXCOUNT are allowed. If the block count
-exceeds the MAXCOUNT, it is truncated to that value and a warning
-message is issued.
+will use the entire partition or file if it is omitted.)
-The MINCOUNT and MAXCOUNT values for a swap area are:
+Linux knows about two styles of swap areas, old style and new style.
+The last 10 bytes of the first page of the swap area distinguishes
+them: old style has `SWAP_SPACE', new style has `SWAPSPACE2' as
+signature.
-.RS
-MINCOUNT = 10 * PAGE_SIZE / 1024
-.br
-MAXCOUNT = (PAGE_SIZE - 10) * 8 * PAGE_SIZE / 1024
-.RE
+In the old style, the rest of this first page was a bit map,
+with a 1 bit for each usable page of the swap area.
+Since the first page holds this bit map, the first bit is 0.
+Also, the last 10 bytes hold the signature. So, if the page
+size is S, an old style swap area can describe at most
+8*(S-10)-1 pages used for swapping.
+With S=4096 (as on i386), the useful area is at most 133890048 bytes
+(almost 128 MB if you believe in 1 MB=2^20 bytes), and the rest is wasted.
+On an alpha and sparc64, with S=8192, the useful area is at most
+535560992 bytes (almost 512 MB with the same proviso).
-For example, on a machine with 4kB pages (e.g., x86), we get:
+The old setup wastes most of this bitmap page, because zero bits
+denote bad blocks or blocks past the end of the swap space,
+and a simple integer suffices to indicate the size of the swap space,
+while the bad blocks, if any, can simply be listed. Nobody wants
+to use a swap space with hundreds of bad blocks. (I would not even
+use a swap space with 1 bad block.)
+In the new style swap area this is precisely what is done.
+The maximum useful size of a swap area is now (2^31 - 2*S) bytes,
+roughly 2 GB.
-.RS
-MINCOUNT = 10 * 4096 / 1024 = 40
-.br
-MAXCOUNT = (4096 - 10) * 8 * 4096 / 1024 = 130752
-.RE
+Note that before 2.1.117 the kernel allocated one byte for each page,
+while it now allocates two bytes, so that taking a swap area of 2 GB
+in use might require 2 MB of kernel memory.
-As each block is 1kB large, the swap area in this example could have a
-size that is anywhere in the range from 40kB up to 127.6875MB.
+Presently, Linux allows 8 swap areas. The areas in use can be seen
+in the file
+.I /proc/swaps
+(since 2.1.25).
-If you don't know the page size that your machine uses, you may be
-able to look it up with "cat /proc/cpuinfo".
+.B mkswap
+refuses areas smaller than 10 pages.
-The reason for the limit on MAXCOUNT is that a single page is used to
-hold the swap bitmap at the start of the swap area, where each bit
-represents a single page. The reason for the -10, is that the
-signature is "SWAP-SPACE" -- 10 characters.
+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 -
+the contents of this file depend on architecture and kernel version).
To setup a swap file, it is necessary to create that file before
running
-.B mkswap .
-A sequence of commands similar to the following is reasonable for this
-purpose:
+.B mkswap ,
+e.g. using a command like
.nf
.RS
-# dd if=/dev/zero of=swapfile bs=1024 count=8192
-# mkswap swapfile 8192
-# sync
-# swapon swapfile
+# dd if=/dev/zero of=swapfile bs=1024 count=65536
.RE
.fi
@@ -88,19 +98,34 @@ to create the file is not acceptable).
.SH OPTIONS
.TP
.B \-c
-Check the device for bad blocks before creating the file system. If any
-are found, the count is printed. This option is meant to be used for swap
-partitions
-.BR only ,
-and should
-.B not
-be used for regular files! To make sure that regular files do not contain
-bad blocks, the partition that contains the regular file should have been
-created with
-.BR "mkfs -c" .
+Check the device (if it is a block device) for bad blocks
+before creating the swap area.
+If any are found, the count is printed.
+.TP
+.B \-f
+On SPARC, force creation of the swap area.
+Without this option
+.B mkswap
+will refuse to create a v0 swap on a device with a valid SPARC superblock,
+as that probably means one is going to erase the partition table.
+.TP
+.B \-v0
+Create an old style swap area.
+.TP
+.B \-v1
+Create a new style swap area.
+
+.LP
+If no \-v option is given,
+.B mkswap
+will default to old style if the size of the swap area does not
+exceed the maximum size of an old style swap area, and also if
+the current kernel is older than 2.1.117 (and also if PAGE_SIZE
+is less than 2048).
+The new style header does not touch the first block, so may be
+preferable (also if the swap area is small), in case you have
+a boot loader or disk label there.
+
.SH "SEE ALSO"
-.BR fsck (8),
-.BR mkfs (8),
-.BR fdisk (8)
-.SH AUTHOR
-Linus Torvalds (torvalds@cs.helsinki.fi)
+.BR fdisk (8),
+.BR swapon (8)