このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】スワップ領域を操作する:mkswapコマンド swaponコマンド swapoffコマンド

mkswapコマンド swaponコマンド swapoffコマンド
スワップ領域は、Linuxシステムにおいて物理メモリ(RAM)が不足した際にディスク領域を使用してメモリを補完するための重要なコンポーネントです。スワップ領域が適切に管理されていないと、システムのパフォーマンスが低下し、場合によってはクラッシュすることもあります。本章では、スワップ領域を作成、初期化、有効化、および無効化するための主要なコマンドであるmkswap
、swapon
、swapoff
について解説します。これらのコマンドを理解し適切に使用することで、システムのメモリ管理を効率的に行うことができます。また、スワップファイルの作成方法やアクセス権の設定など、実際の操作手順についても具体的な例を用いて解説します。

スワップ領域とは
スワップ領域の作成はシステム管理に関連する作業であるため、rootユーザーでコマンドを実行する必要があります。スワップ領域は、物理メモリ(RAM)が不足したときに使用されるディスク領域です。
スワップ領域の作成
ddコマンドについて
dd
コマンドは、指定したサイズのファイルを作成するために使用されます。スワップファイルを作成する際にも利用されます。
# dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024
オプション | 説明 | 使用例 |
---|---|---|
if | 入力ファイルを指定します。 | if=/dev/zero |
of | 出力ファイルを指定します。 | of=/tmp/swapfile |
bs | ブロックサイズを指定します。 | bs=1M |
count | 作成するブロックの数を指定します。 | count=1024 |
mkswapコマンドの概要
mkswap
コマンドは、指定したデバイスファイルまたはファイルパスをスワップ領域として初期化します。
【構文】mkswap デバイスファイル名またはファイルパス
swaponコマンドの概要
swapon
コマンドは、指定したデバイスファイルまたはファイルパスをスワップ領域として有効化します。特定サイズのファイルをスワップ領域にする場合、アクセス権が600でファイルの所有者がrootユーザーになっていないと、swapon
コマンド実行時に警告メッセージが表示されます。
【構文】swapon [オプション] [デバイスファイル名またはファイルパス]
主なオプションと説明
オプション | 説明 | 使用例 |
---|---|---|
-s | 現在のスワップ領域の状況を表示します。 | swapon -s |
swapoffコマンドの概要
swapoff
コマンドは、指定したデバイスファイルまたはファイルパスをスワップ領域として無効化します。
【構文】swapoff デバイスファイル名またはファイルパス
コマンドの使用例と解説
1.rootユーザーに切り替えます。
・「su -
」コマンドを実行します。
rootユーザーに切り替えるのは、システム管理操作は、通常root権限が必要だからです。
user01@ubuntu-vm:~$ su -
パスワード:
root@ubuntu-vm:~#
2.スワップファイルを作成します。
・「dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024
」コマンドを実行します。
「dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024」コマンドの解説
オプション | 説明 |
---|---|
if | 入力ファイルを指定します(/dev/zero はすべてのバイトがゼロの特別なファイル)。 |
of | 出力ファイルを指定します(/tmp/swapfile が出力先)。 |
bs | ブロックサイズを指定します(1MB)。 |
count | 作成するブロックの数を指定します(1024ブロックで1GBのファイル)。 |
root@ubuntu-vm:~# dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024
1024+0 レコード入力
1024+0 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.28609 s, 470 MB/s
3.スワップファイルをスワップ領域として初期化します。
・「mkswap /tmp/swapfile
」コマンドを実行します。
root@ubuntu-vm:~# mkswap /tmp/swapfile
mkswap: /tmp/swapfile: insecure permissions 0644, fix with: chmod 0600 /tmp/swapfile
スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
ラベルはありません, UUID=b5986e9c-c897-47f2-9d1a-db831e17e97c
4.スワップファイルを有効化します。
現在有効なスワップ領域を確認します。
・「swapon -s
」コマンドを実行します。
root@ubuntu-vm:~# swapon -s
Filename Type Size UsedPriority
/swapfile file 2744316 31352 -2
作成したスワップ領域のアクセス権を600に変更します。
・「chmod 600 /tmp/swapfile
」コマンドを実行します。
root@ubuntu-vm:~# chmod 600 /tmp/swapfile
スワップ領域を有効化します。
・「swapon /tmp/swapfile
」コマンドを実行します。
root@ubuntu-vm:~# swapon /tmp/swapfile
有効なスワップ領域が増えていることを確認します。
・「swapon -s
」コマンドを実行します。
root@ubuntu-vm:~# swapon -s
Filename Type Size UsedPriority
/swapfile file 2744316 31352 -2
/tmp/swapfile file 1048572 0 -3
5.スワップ領域を無効化します。
スワップ領域を無効化します。
・「swapoff /tmp/swapfile
」コマンドを実行します。
root@ubuntu-vm:~# swapoff /tmp/swapfile
追加したスワップ領域が無効化されているかを確認します。
・「swapon -s
」コマンドを実行します。
root@ubuntu-vm:~# swapon -s
Filename Type Size UsedPriority
/swapfile file 2744316 31160 -2
6.作成したスワップファイルを削除します。
・「rm /tmp/swapfile
」コマンドを実行します。
root@ubuntu-vm:~# rm /tmp/swapfile
まとめ
スワップ領域は、物理メモリが不足した際にディスク領域を使用してメモリを補完するための重要なコンポーネントです。スワップ領域を作成し、初期化し、有効化・無効化するためには、dd
、mkswap
、swapon
、swapoff
といったコマンドを使用します。これらのツールを適切に活用することで、システムのメモリ管理を効率的に行うことができます。