1MKSWAP(8)                  Linux Programmer's Manual                 MKSWAP(8)
2
3
4

NAME

6       mkswap - set up a Linux swap area
7

SYNOPSIS

9       mkswap [-c] [-vN] [-f] [-p PSZ] [-L label] device [size]
10

DESCRIPTION

12       mkswap sets up a Linux swap area on a device or in a file.
13
14       (After  creating  the  swap  area, you need the swapon command to start
15       using it. Usually swap areas are listed in /etc/fstab so that they  can
16       be  taken  into  use  at  boot time by a swapon -a command in some boot
17       script.)
18
19       The device argument will usually be a disk  partition  (something  like
20       /dev/hda4  or /dev/sdb7) but can also be a file.  The Linux kernel does
21       not look at partition Id's, but many installation scripts  will  assume
22       that partitions of hex type 82 (LINUX_SWAP) are meant to be swap parti‐
23       tions.  (Warning: Solaris also uses this type. Be careful not  to  kill
24       your Solaris partitions.)
25
26       The  size  parameter is superfluous but retained for backwards compati‐
27       bility.  (It specifies the desired size of the swap area  in  1024-byte
28       blocks.  mkswap will use the entire partition or file if it is omitted.
29       Specifying it is unwise - a typo may destroy your disk.)
30
31       The PSZ parameter specifies the page size to use. It is  almost  always
32       unnecessary  (even unwise) to specify it, but certain old libc versions
33       lie about the page size, so it is possible that mkswap gets  it  wrong.
34       The symptom is that a subsequent swapon fails because no swap signature
35       is found. Typical values for PSZ are 4096 or 8192.
36
37       Linux knows about two styles of swap areas, old style  and  new  style.
38       The  last  10  bytes  of  the first page of the swap area distinguishes
39       them: old style has `SWAP_SPACE', new style has `SWAPSPACE2' as  signa‐
40       ture.
41
42       In  the  old style, the rest of this first page was a bit map, with a 1
43       bit for each usable page of the swap area.  Since the first page  holds
44       this  bit  map,  the  first bit is 0.  Also, the last 10 bytes hold the
45       signature. So, if the page size is  S,  an  old  style  swap  area  can
46       describe  at  most 8*(S-10)-1 pages used for swapping.  With S=4096 (as
47       on i386), the useful area is at most 133890048 bytes (almost 128  MiB),
48       and the rest is wasted.  On an alpha and sparc64, with S=8192, the use‐
49       ful area is at most 535560992 bytes (almost 512 MiB).
50
51       The old setup wastes most of this bitmap page, because zero bits denote
52       bad blocks or blocks past the end of the swap space, and a simple inte‐
53       ger suffices to indicate the size of the  swap  space,  while  the  bad
54       blocks,  if any, can simply be listed. Nobody wants to use a swap space
55       with hundreds of bad blocks. (I would not even use a swap space with  1
56       bad block.)  In the new style swap area this is precisely what is done.
57
58       The  maximum useful size of a swap area depends on the architecture and
59       the kernel version.  It is roughly 2GiB on i386, PPC, m68k,  ARM,  1GiB
60       on sparc, 512MiB on mips, 128GiB on alpha and 3TiB on sparc64. For ker‐
61       nels after 2.3.3 there is no such limitation.
62
63       Note that before 2.1.117 the kernel allocated one byte for  each  page,
64       while  it  now allocates two bytes, so that taking a swap area of 2 GiB
65       in use might require 2 MiB of kernel memory.
66
67       Presently, Linux allows 32 swap areas (this was 8 before Linux 2.4.10).
68       The areas in use can be seen in the file /proc/swaps (since 2.1.25).
69
70       mkswap refuses areas smaller than 10 pages.
71
72       If you don't know the page size that your machine uses, you may be able
73       to look it up with "cat /proc/cpuinfo" (or you may not -  the  contents
74       of this file depend on architecture and kernel version).
75
76       To  setup  a swap file, it is necessary to create that file before ini‐
77       tializing it with mkswap , e.g. using a command like
78
79              # dd if=/dev/zero of=swapfile bs=1024 count=65536
80
81       Note that a swap file must not contain any holes (so,  using  cp(1)  to
82       create the file is not acceptable).
83
84

OPTIONS

86       -c     Check the device (if it is a block device) for bad blocks before
87              creating the swap area.  If any are found, the count is printed.
88
89       -f     Force - go ahead even if the command is stupid.  This allows the
90              creation  of  a  swap  area larger than the file or partition it
91              resides on.  On SPARC, force creation of the swap area.  Without
92              this  option  mkswap will refuse to create a v0 swap on a device
93              with a valid SPARC superblock, as that  probably  means  one  is
94              going to erase the partition table.
95
96       -p PSZ Specify the page size to use.
97
98       -L label
99              Specify  a label, to allow swapon by label.  (Only for new style
100              swap areas.)
101
102       -v0    Create an old style swap area.
103
104       -v1    Create a new style swap area.
105
106
107       If no -v option is given, mkswap will default to new style, but use old
108       style  if  the  current  kernel  is  older  than  2.1.117  (and also if
109       PAGE_SIZE is less than 2048).  The new style header does not touch  the
110       first  block,  so  may be preferable, in case you have a boot loader or
111       disk label there.  If you need to use both 2.0 and 2.2 kernels, use the
112       -v0 option when creating the swapspace.
113
114

SEE ALSO

116       fdisk(8), swapon(8)
117
118
119
120Linux 2.2.4                      25 March 1999                       MKSWAP(8)
Impressum