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

  
 
  

home | help
MKSWAP(8)		      System Administration		       MKSWAP(8)

NAME
     mkswap - set up a Linux swap area

SYNOPSIS
     mkswap [options] device [blocks]

     mkswap [options] --size size --file file

DESCRIPTION
     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/sdb7) but can also be a file. The Linux kernel does not look at parti-
     tion IDs, 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 blocks parameter is superfluous but retained for backwards  compatibil-
     ity.  (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(8) 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.

WARNING
     The swap header does not touch the first block. A boot loader or disk label
     can be there, but it is not a recommended setup. The recommended  setup  is
     to use a separate partition for a Linux swap area.

     mkswap,  like many others mkfs-like utils, erases the first partition block
     to make any previous filesystem invisible.

     However, mkswap refuses to erase the first block on a device  with  a  disk
     label (SUN, BSD, ...).

OPTIONS
     -c, --check
	 Check the device (if it is a block device) for bad blocks before creat-
	 ing the swap area. If any bad blocks are found, the count is printed.

     -F, --file
	 Create  a swap file with the appropriate file permissions and populated
	 blocks on disk.

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

	 Also,	without this option, mkswap will refuse to erase the first block
	 on a device with a partition table.

     -q, --quiet
	 Suppress output and warning messages.

     -L, --label label
	 Specify a label for the device, to allow swapon(8) by label.

     --lock[=mode]
	 Use exclusive BSD lock for device or file it operates. The optional ar-
	 gument mode can be yes, no (or 1 and 0) or nonblock. If the mode  argu-
	 ment is omitted, it defaults to yes. This option overwrites environment
	 variable $LOCK_BLOCK_DEVICE. The default is not to use any lock at all,
	 but it's recommended to avoid collisions with systemd-udevd(8) or other
	 tools.

     -p, --pagesize size
	 Specify  the page size (in bytes) to use. This option is usually unnec-
	 essary; mkswap reads the size from the kernel.

     -U, --uuid UUID
	 Specify the UUID to use. The default is to generate a UUID. The  format
	 of  the UUID is a series of hex digits separated by hyphens, like this:
	 "c1b9d5a2-f162-11cf-9ece-0020afc76f16". The UUID parameter may also  be
	 one of the following:

	 clear
	     clear the filesystem UUID

	 random
	     generate a new randomly-generated UUID

	 time
	     generate a new time-based UUID

     -e, --endianness ENDIANNESS
	 Specify  the  ENDIANNESS  to use, valid arguments are native, little or
	 big. The default is native.

     -o, --offset offset
	 Specify the offset to write the swap area to.

     -s, --size size
	 Specify the size of the created swap file in bytes and may be	followed
	 by  a	multiplicative	suffix: KiB (=1024), MiB (=1024*1024), and so on
	 for GiB, TiB, PiB, EiB, ZiB and YiB (the "iB" is  optional,  e.g.,  "K"
	 has  the  same meaning as "KiB"). If the file exists and is larger than
	 size, it will be truncated to this size. This option only  makes  sense
	 when used with --file.

     -v, --swapversion 1
	 Specify the swap-space version. (This option is currently pointless, as
	 the old -v 0 option has become obsolete and now only -v 1 is supported.
	 The  kernel  has  not supported v0 swap-space format since 2.5.22 (June
	 2002). The new version v1 is supported since 2.1.117 (August 1998).)

     --verbose
	 Verbose execution. With this option mkswap  will  output  more  details
	 about detected problems during swap area set up.

     -h, --help
	 Display help text and exit.

     -V, --version
	 Display version and exit.

ENVIRONMENT
     LIBBLKID_DEBUG=all
	 enables libblkid debug output.

     LOCK_BLOCK_DEVICE=<mode>
	 use exclusive BSD lock. The mode is "1" or "0". See --lock for more de-
	 tails.

NOTES
     The  maximum useful size of a swap area depends on the architecture and the
     kernel version.

     The maximum number of the pages that is possible to address  by  swap  area
     header is 4294967295 (32-bit unsigned int). The remaining space on the swap
     device is ignored.

     Presently,  Linux allows 32 swap areas. The areas in use can be seen in the
     file /proc/swaps.

     mkswap refuses areas smaller than 10 pages.

     If you don't know the page size that your machine uses, you can look it  up
     with getconf PAGESIZE.

     Aside  from mkswap --file, it is also possible to create the swapfile manu-
     ally before initializing it with mkswap, e.g. using a command like

     Since version 2.41, mkswap --file sets the nocow attribute for  newly  cre-
     ated files to support swapfiles on Btrfs.

	 # dd if=/dev/zero of=swapfile bs=1MiB count=$((8*1024))

     to create 8GiB swapfile.

     In  such  a  case, please read notes from swapon(8) about the swap file use
     restrictions (holes, preallocation and copy-on-write issues).

SEE ALSO
     fdisk(8), swapon(8)

REPORTING BUGS
     For       bug	 reports,	use	  the	    issue	 tracker
     <https://github.com/util-linux/util-linux/issues>.

AVAILABILITY
     The  mkswap  command  is  part of the util-linux package which can be down-
     loaded	      from	      Linux	       Kernel		 Archive
     <https://www.kernel.org/pub/linux/utils/util-linux/>.

util-linux 2.41.2		   2025-09-22			       MKSWAP(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mkswap&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help