Differences between version 3 and previous revision of mkswap(8).
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Monday, March 1, 2004 7:19:39 pm | by CraigBox | Revert |
Older page: | version 2 | Last edited on Monday, March 1, 2004 6:44:08 pm | by DanFurlani | Revert |
@@ -1,173 +1,59 @@
-MKSWAP
-!!!MKSWAP
-NAME
-SYNOPSIS
-DESCRIPTION
-OPTIONS
-SEE ALSO
-----
!!NAME
+mkswap - set up a Linux swap area
-
-mkswap - set up a Linux swap area
!!SYNOPSIS
+__mkswap [[-c] [[-v__ ''N'' __] [[-f] [[-p __ ''PSZ'' __] __ ''device'' __ [[__ ''size'' __]__
-
-__mkswap [[-c] [[-v__''N''__] [[-f] [[-p__
-''PSZ''__]__ ''device''
-__[[__''size''__]__
!!DESCRIPTION
+__mkswap__ sets up a Linux swap area on a device or in a file.
+(After creating the swap area, you need the __swapon__ command to start using it. Usually swap areas are listed in ''/etc/fstab'' so that they can be taken into use at boot time by a __swapon -a__ command in some boot script.)
-__mkswap__ sets up
a Linux swap area on a device
or in
a
-
file.
+The ''device'' argument will usually be
a disk partition (something like ''/dev/hda4''
or ''/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. (Warning: Solaris also uses this type. Be careful not to kill your Solaris partitions.)
+The ''size'' parameter is superfluous but retained for backwards compatibility. (It specifies the desired size of the swap area in 1024-byte blocks. __mkswap__ will use the entire partition or file if it is omitted. Specifying it is unwise - a typo may destroy your disk.)
-(After creating
the swap area
, you need
the __swapon
__
-command to start using
it. Usually swap areas are listed in
-''/etc/fstab'' so
that they can be taken into use at boot
-time by
a __swapon -a
__ command in some boot
-script
.)
+The ''PSZ'' parameter specifies
the page size to use. It is almost always unnecessary (even unwise) to specify it
, but certain old libc versions lie about
the page size, so it is possible that
__mkswap
__ gets
it wrong
. The symptom is
that a subsequent
__swapon__ fails because no swap signature is found. Typical values for ''PSZ'' are 4096 or 8192
.
+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.
-The ''device'' argument will usually be
a disk partition
-(something like ''/dev/hda4'' or ''/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
. (Warning: Solaris also uses this type. Be
-careful not to kill your Solaris partitions
.)
+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 . 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 MiB), and the rest is wasted
. On an alpha and sparc64, with S=8192, the useful area is at most 535560992 bytes (almost 512 MiB
).
+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 now depends on the architecture. It is roughly 2GiB on i386, PPC, m68k, ARM, 1GiB on sparc, 512MiB on mips, 128GiB on alpha and 3TiB on sparc64.
-The ''size'' parameter is superfluous but retained for
-backwards compatibility
. (It specifies the desired size of
-
the swap area in 1024-byte blocks. __mkswap__ will
use
-the entire partition or file if it is omitted. Specifying it
-is unwise - a typo may destroy your disk
.)
+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 GiB
in use might require 2 MiB of kernel memory
.
+Presently, Linux allows 8 swap areas. The areas in use can be seen in the file ''/proc/swaps'' (since 2.1.25).
-The ''PSZ'' parameter specifies the page size to use. It
-is almost always unnecessary (even unwise) to specify it,
-but certain old libc versions lie about the page size, so it
-is possible that
__mkswap__ gets it wrong. The symptom is
-that a subsequent __swapon__ fails because no swap
-signature is found. Typical values for ''PSZ'' are 4096
-or 8192
.
+__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 - the contents of this file depend on architecture and kernel version).
-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
.
+To setup a
swap file
, it is necessary to create that file before initializing it with
__mkswap
,__ e.g
. using a command like
+ # dd if=/dev/zero of=swapfile bs=1024 count=65536 %%%
-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 . 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 MiB), and
-the rest is wasted. On an alpha and sparc64, with S=8192,
-the useful area is at most 535560992 bytes (almost 512
-MiB
).
+Note that
a swap file must not contain any holes (so
, using cp
(1) to create
the file
is not acceptable
).
-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 now depends on
-the architecture. It is roughly 2GiB on i386, PPC, m68k,
-ARM, 1GiB on sparc, 512MiB on mips, 128GiB on alpha and 3TiB
-on sparc64.
-
-
-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 GiB in use might require 2 MiB of kernel
-memory.
-
-
-Presently, Linux allows 8 swap areas. The areas in use can
-be seen in the file ''/proc/swaps'' (since
-2.1.25).
-
-
-__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
-
-
-To setup a swap file, it is necessary to create that file
-before initializing it with __mkswap ,__ e.g. using a
-command like
-
-
-# dd if=/dev/zero of=swapfile bs=1024 count=65536
-Note that a swap file must not contain any holes (so, using cp(1) to create the file is not acceptable).
!!OPTIONS
+;__-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.
+;__-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. On SPARC, force creation of the swap area. Without this option __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.
+;__-p __ ''PSZ'' : Specify the page size to use.
+;__-v0__ : Create an old style swap area.
+;__-v1__ : Create a new style swap area.
-__-c
__
+If no -v option is given,
__mkswap
__ will default to new style, but use old style 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, in case you have a boot loader or disk label there. If you need to use both 2.0 and 2.2 kernels, use the -v0 option when creating the swapspace.
-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.
-
-
-__-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. On SPARC, force creation of the
-swap area. Without this option __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.
-
-
-__-p__ ''PSZ''
-
-
-Specify the page size to use.
-
-
-__-v0__
-
-
-Create an old style swap area.
-
-
-__-v1__
-
-
-Create a new style swap area.
-
-
-If no -v option is given, __mkswap__ will default to new
-style, but use old style 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, in case you have a boot loader or disk label
-there. If you need to use both 2.0 and 2.2 kernels, use the
--v0 option when creating the swapspace.
!!SEE ALSO
+fdisk(8), swapon(8)
-
-fdisk(8), swapon(8)
----
Question: After I create a swapfile (with dd), call mkswap
on it, call swapon, do I need to edit /etc/fstab so the
swapfile will be remounted upon next boot? More details
than just "in some boot script" would be nice.