# MKSWAP - set up a Linux swap area - man(8) - [phpMan]

[_MKSWAP_(8)](https://www.chedong.com/phpMan.php/man/MKSWAP/8/markdown)                               System Administration                              [_MKSWAP_(8)](https://www.chedong.com/phpMan.php/man/MKSWAP/8/markdown)

## NAME
       mkswap - set up a Linux swap area

## SYNOPSIS
       **mkswap **[options] _device_ [_size_]

## 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 partition 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 _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**(8)](https://www.chedong.com/phpMan.php/man/swapon/8/markdown) 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 creating the swap area.
           If any bad blocks 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.

           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 _
           Specify a _label_ for the device, to allow [**swapon**(8)](https://www.chedong.com/phpMan.php/man/swapon/8/markdown) by label.

       **--lock**[=_mode_]
           Use exclusive BSD lock for device or file it operates. The optional argument _mode_ can be
           **yes**, **no **(or 1 and 0) or **nonblock**. If the _mode_ argument 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)](https://www.chedong.com/phpMan.php/man/systemd-udevd/8/markdown) or other
           tools.

### -p --pagesize _
           Specify the page _size_ (in bytes) to use. This option is usually unnecessary; **mkswap **reads
           the size from the kernel.

### -U --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 _
           Specify the _ENDIANNESS_ to use, valid arguments are **native**, **little **or **big**. The default is
           **native**.

### -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
           Print 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 details.

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

       To set up 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=1MiB count=$((8*1024))

       to create 8GiB swapfile.

       Please read notes from [**swapon**(8)](https://www.chedong.com/phpMan.php/man/swapon/8/markdown) about **the swap file use restrictions **(holes, preallocation
       and copy-on-write issues).

## SEE ALSO
       [**fdisk**(8)](https://www.chedong.com/phpMan.php/man/fdisk/8/markdown), [**swapon**(8)](https://www.chedong.com/phpMan.php/man/swapon/8/markdown)

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

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

util-linux 2.39.3                            2023-12-01                                    [_MKSWAP_(8)](https://www.chedong.com/phpMan.php/man/MKSWAP/8/markdown)
