MKSWAP linux command manual

MKSWAP(8)            Linux Programmer's Manual                 MKSWAP(8)



NAME
       mkswap - set up a Linux swap area

SYNOPSIS
       mkswap [-c] [-vN] [-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.)

       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 par-
       titions.  (Warning: Solaris also uses this type.  Be  careful  not  to
       kill your Solaris partitions.)

       The  size parameter is superfluous but retained for backwards compati-
       bility.  (It specifies the desired size of the swap area in  1024-byte
       blocks.   mkswap  will use the entire partition or file if it is omit-
       ted.  Specifying it is unwise - a typo may destroy your disk.)

       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 signa-
       ture 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 signa-
       ture.

       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 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 sim-
       ple 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  32  swap  areas  (this  was  8  before  Linux
       2.4.10).   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 "cat /proc/cpuinfo" (or you may not - the con-
       tents of this file depend on architecture and kernel version).

       To setup a swap file, it is necessary to create that file before  ini-
       tializing 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.


       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)



Linux 2.2.4                     25 March 1999                       MKSWAP(8)