名前

mkswap - Linux スワップ領域を設定する

書式

mkswap [options] device [size]

説明

mkswap は、 デバイス上またはファイル内に Linux スワップ領域を設定する。

引数 device は通常はディスクパーティションとする (/dev/sdb7 など)。 ただしファイルを指定してもよい。 Linux カーネルがパーティション ID を見ることはない。 ただしインストールを行うスクリプトでは、 16 進数タイプ 82 (LINUX_SWAP) がスワップパーティションを意味するものとして取り扱うものが多い。 (警告: Solaris もこのタイプを利用している。 Solaris のパーティションを失わないように注意すること。)

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

スワップ領域を生成した後は、 swapon(8) コマンドを使って使用を開始することが必要になる。 通常スワップ領域は /etc/fstab に記述される。 そしてシステム起動時に実行されるスクリプトが、 swapon -a コマンドによって使用できるようにしている。

警告

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

オプション

-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

各種情報や警告メッセージを出力しないようにする。

-L, --label label

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

--lock[=mode]

操作するデバイスやファイルに対して、 排他 BSD ロックを用いる。 mode は任意の引数であり、 yes, no (あるいは 1 か 0) または nonblock の指定が可能である。 mode 引数が省略された場合、 そのデフォルトは yes である。 このオプションは、 環境変数 $LOCK_BLOCK_DEVICE を上書きする。 デフォルトは、 ロックを一切利用しない。 ただし systemd-udevd(8) や他のツールを用いる際の衝突は避けることが推奨される。

-p, --pagesize size

Specify the page size (in bytes) to use. This option is usually unnecessary; 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

ファイルシステムの UUID をクリアする。

random

generate a new randomly-generated UUID

time

generate a new time-based UUID

-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

ヘルプテキストを表示して終了する。

-V, --version

バージョンを表示して、 終了する。

環境変数

LIBBLKID_DEBUG=all

libblkid デバッグ出力を有効にする。

LOCK_BLOCK_DEVICE=<mode>

排他 BSD ロックを用いる。 モードには "1" または "0" がある。 詳しくは --lock を参照のこと。

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) about the swap file use restrictions (holes, preallocation and copy-on-write issues).

関連項目

fdisk(8), swapon(8)

バグ報告

バグ報告は、 以下に示す issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.

入手方法

mkswap コマンドは util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.