Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MKSWAP(8)		   Linux Programmer's Manual		     MKSWAP(8)

       mkswap -	set up a Linux swap area

       mkswap [-c] [-vN] [-f] [-p PSZ] device [size]

       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 us-
       ing 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

       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	parti-
       tions.  (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 omitted.
       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 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	signa-

       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  de-
       scribe  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 inte-
       ger 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  contents
       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).

       -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 re-
	      sides 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 go-
	      ing 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.

       fdisk(8), swapon(8)

Linux 2.2.4			 25 March 1999			     MKSWAP(8)


Want to link to this manual page? Use this URL:

home | help