カテゴリ: Linux 更新日: 2026/07/17

mkswapコマンドの使い方を徹底解説!Linuxのスワップ領域作成とメモリ管理の基本

Linuxのmkswapコマンドとは?スワップ領域作成コマンド
Linuxのmkswapコマンドとは?スワップ領域作成コマンド

先生と生徒の会話形式で理解しよう

生徒

「Linuxを使っていて、メモリが足りなくなると動作が重くなるって聞いたんですけど、どうすればいいですか?」

先生

「そういう時はスワップ(Swap)という仕組みを使います。物理的なメモリの代わりにストレージの一部をメモリとして使う方法ですよ。」

生徒

「ストレージをメモリにするんですか?なんだか難しそうですね。」

先生

「実はmkswap(エムケースワップ)というコマンドを使えば、初心者でも簡単にスワップ領域を準備できるんです。一緒に手順を確認しましょう。」

Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。

試して理解 Linuxのしくみを見る

※ Amazonアソシエイト広告リンク

1. mkswapコマンドとは?スワップ領域作成の基本

1. mkswapコマンドとは?スワップ領域作成の基本
1. mkswapコマンドとは?スワップ領域作成の基本

mkswap(読み方はmkswap:エムケースワップ)は、Linux(リナックス)システムにおいて「スワップ領域(スワップリョウイキ)」を構築するための専用コマンドです。

コンピュータには、データを一時的に保存するための主記憶装置(シュキオクソウチ)である「RAM(ラム:メモリ)」が搭載されています。しかし、複数のアプリを同時に立ち上げたり、重い処理を行ったりすると、このメモリの容量が足りなくなることがあります。これを「メモリ不足」と呼びます。

スワップ(Swap)とは、メモリが不足した際に、ハードディスク(HDD)やSSD(エスエスディー)といった補助記憶装置(ホジョキオクソウチ)の一部を「仮想的なメモリ」として代用する仕組みのことです。mkswapは、指定したパーティションやファイルをスワップとして使えるように初期化する役割を持っています。

2. なぜスワップ(Swap)が必要なのか?

2. なぜスワップ(Swap)が必要なのか?
2. なぜスワップ(Swap)が必要なのか?

現代のパソコンやサーバーは多くのメモリを積んでいますが、それでもスワップは重要です。その理由は、システムの安定性を高めるためです。

もしスワップが全く設定されていない状態でメモリが一杯になると、Linuxカーネルは「OOM Killer(オーオーエム・キラー)」という機能を動かし、動作中のプログラムを強制終了させてしまいます。これにより、編集中のデータが消えたり、サーバーが止まったりするトラブルが発生します。

スワップ領域を適切に設定しておくことで、物理メモリから溢れたデータを一時的に避難させ、システムの完全なクラッシュを防ぐ「安全装置」としての役割を果たしてくれます。Windowsでいうところの「仮想メモリ」や「ページファイル」と同じ概念だと考えると分かりやすいでしょう。

3. スワップ領域の状態を確認する方法

3. スワップ領域の状態を確認する方法
3. スワップ領域の状態を確認する方法

mkswapコマンドを使う前に、現在のシステムでスワップがどのくらい使われているかを確認してみましょう。これにはswapon(スワップオン)コマンドやfree(フリー)コマンドを使用します。

まずは、一般ユーザーで現在のメモリ使用状況を確認する例を見てみましょう。


free -h
              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       1.2Gi       4.5Gi       120Mi       2.0Gi       6.1Gi
Swap:         2.0Gi          0B       2.0Gi

出力結果の「Swap」の行に数字が入っていれば、既にスワップ領域が存在していることになります。ここが全て「0B」になっている場合は、新たにスワップを作成する必要があります。

4. スワップファイルの作成手順(ddコマンド)

4. スワップファイルの作成手順(ddコマンド)
4. スワップファイルの作成手順(ddコマンド)

昔のLinuxでは専用のパーティション(ディスクの仕切り)を作ることが一般的でしたが、現在は「スワップファイル」というファイル形式で作るのが主流です。これならディスクの再フォーマットが不要で、初心者でも安全に作業できます。

まず、スワップとして使う空のファイルをddコマンドで作成します。以下の例では、ルート権限(管理者権限)で2GBのファイルを作成しています。


dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 レコード入力
2048+0 レコード出力
2147483648バイト(2.1 GB、2.0 GiB)コピー済、2.5 秒、859 MB/秒

このコマンドでは、/swapfileという名前で、中身が空(ゼロ)の2GBのファイルを作成しました。作成した直後のファイルはただの「箱」の状態であり、まだスワップとしては機能しません。

5. mkswapでファイルをスワップ形式に初期化する

5. mkswapでファイルをスワップ形式に初期化する
5. mkswapでファイルをスワップ形式に初期化する

いよいよ本題のmkswapコマンドの登場です。先ほど作成した/swapfileを、Linuxがスワップとして認識できる形式に変換(初期化)します。

作業を行う前に、セキュリティのためにファイルの権限(パーミッション)を所有者のみが読み書きできるようにchmodコマンドで変更しておきましょう。その後、mkswapを実行します。


chmod 600 /swapfile
mkswap /swapfile
スワップ空間バージョン1を設定します、サイズ = 2 GiB (2147479552 バイト)
ラベルはありません, UUID=5e123456-7890-abcd-efgh-i1234567890j

コマンドを実行すると、UUID(ユーユーアイディー:汎用一意識別子)という固有のIDが割り振られ、ファイルがスワップ領域として準備完了となります。これで「ストレージの空き地」が「仮想メモリの予備」へと生まれ変わりました。

6. 作成したスワップを有効化する(swapon)

6. 作成したスワップを有効化する(swapon)
6. 作成したスワップを有効化する(swapon)

mkswapで初期化しただけでは、まだシステムはスワップを使い始めません。最後にswaponコマンドを使って、システムに「このファイルをスワップとして使っていいよ」と教える必要があります。


swapon /swapfile
swapon --show
NAME      TYPE  SIZE USED PRIO
/swapfile file    2G   0B   -2

swapon --showを実行して、作成したファイルが表示されれば成功です!これであなたのLinuxマシンは、物理メモリが足りなくなっても/swapfileを使って処理を継続できるようになりました。これを「スワップイン(読み込み)」や「スワップアウト(書き出し)」と呼び、データのやり取りが行われます。

7. パーティションをスワップにする場合のmkswap

7. パーティションをスワップにする場合のmkswap
7. パーティションをスワップにする場合のmkswap

ファイルではなく、新しく追加したハードディスク全体や特定のパーティションをスワップにする場合も、手順は同じです。デバイス名(例:/dev/sdb1など)を指定してコマンドを打ちます。

パーティションを指定する場合は、データの消去に十分注意してください。指定した場所にあるデータは全て上書きされて消えてしまいます。以下は、新しいパーティションをスワップ化する例です。


mkswap /dev/sdb1
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=a1b2c3d4-e5f6-7890-abcd-efghij123456

このように、mkswapは対象が「ファイル」であっても「デバイス」であっても、共通の操作感で利用できる非常に便利なコマンドです。

8. mkswapコマンドのオプションと便利な使い方

8. mkswapコマンドのオプションと便利な使い方
8. mkswapコマンドのオプションと便利な使い方

mkswapには、より高度な設定を行うためのオプションがいくつか用意されています。実務でよく使われるものを紹介します。

-L オプション(ラベルの設定)

スワップ領域に名前(ラベル)を付けることができます。複数のディスクを管理している場合、UUIDよりも名前で管理したほうが分かりやすくなります。


mkswap -L MySwapFile /swapfile

-c オプション(不良ブロックのチェック)

古いハードディスクを使用している場合、読み書きができない壊れた場所(不良ブロック)がないか確認しながらスワップを作成できます。時間はかかりますが、より安全です。

これらのオプションを使い分けることで、自分の環境に最適なスワップ環境を構築することができます。Linuxのストレージ管理(ストレージカンリ)において、ファイルシステムの作成(mkfs)と並んで、このmkswapは非常に重要なスキルとなります。

LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。

Linux教科書 LPICレベル1 スピードマスター問題集を見る

※ Amazonアソシエイト広告リンク

まとめ

まとめ
まとめ

今回の記事では、Linuxシステムのパフォーマンス維持と安定稼働に欠かせないmkswapコマンドの使い方について詳しく解説してきました。物理メモリ(RAM)の容量には限りがありますが、mkswapを活用してスワップ領域を適切に設定することで、メモリ不足によるシステムのクラッシュやフリーズという致命的なトラブルを未然に防ぐことが可能になります。特に、リソースが限られたクラウドサーバーや、古いハードウェアを再利用してLinuxを運用している環境において、スワップの重要性は非常に高いと言えるでしょう。

mkswap運用の重要キーワードとステップ

mkswapを使いこなすために覚えておきたいポイントは、単に「コマンドを打つ」ことだけではありません。システム全体のパフォーマンスを最適化するためには、以下の流れをセットで理解しておく必要があります。

  • リソース確認: free -hコマンドで、現在のメモリとスワップの使用状況を正確に把握すること。
  • 安全な領域確保: ddコマンドやfallocateコマンドを使用し、適切なサイズのファイルを作成すること。
  • 権限設定(パーミッション): セキュリティの観点からchmod 600を実行し、ルートユーザー以外がスワップ内容を覗き見できないようにすること。
  • 初期化と有効化: mkswapでスワップ署名を書き込み、swaponでシステムに認識させる一連の動作。

スワップファイルの永続化設定(fstab)

記事の本編では一時的な有効化について触れましたが、実務運用ではOSを再起動してもスワップが自動的に有効になる設定が必要です。そのためには、/etc/fstabという設定ファイルに追記を行う必要があります。

以下は、作成した/swapfileを再起動後も自動でマウントするための設定例です。


# /etc/fstab ファイルの末尾に以下の行を追加します
/swapfile    none    swap    sw    0    0

このように設定しておくことで、サーバーが不意に再起動しても自動的に仮想メモリが確保され、安定したサービス継続が可能になります。Linux管理者は、新しいサーバーをセットアップする際に必ずこのスワップ設定を確認する習慣をつけておくと良いでしょう。

パフォーマンスへの影響と注意点

スワップは非常に便利な機能ですが、万能ではありません。ストレージ(SSDやHDD)の速度は、物理メモリ(RAM)と比較すると圧倒的に低速です。そのため、スワップが頻繁に発生する状態(スラッシング)になると、システム全体のレスポンスが著しく低下します。

もしfreeコマンドで確認して、常にスワップ領域が大量に使われているようであれば、それは「物理メモリの増設」を検討すべきサインです。mkswapはあくまで不足分を補うためのバックアッププランとして考え、基本的には物理メモリ内で処理が完結するような構成を目指すのが、プロフェッショナルなインフラ構築の考え方です。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!mkswapを使うことで、ただのファイルが魔法のようにメモリの代わりになる仕組みがよく分かりました。これなら、急にメモリが足りなくなっても慌てずに対応できそうです。」

先生

「その通りですね。特に最近はクラウド環境で小さなインスタンスを借りることも多いですから、スワップファイルの手法は必須知識と言えます。パーティションを切り直さなくていいので、柔軟に容量を増やせるのもメリットですね。」

生徒

「さっき教えてもらった/etc/fstabへの書き込みも忘れないようにします。せっかく作ったのに、再起動して消えてしまったら大変ですから。ちなみに、スワップのサイズはどれくらいがいいんでしょうか?」

先生

「一般的には物理メモリの1倍から2倍程度と言われますが、最近の大容量メモリを積んだサーバーなら2GB〜4GB程度あれば十分なことも多いです。逆にSSDへの負荷を気にする場合は、必要最低限に留めることもありますよ。」

生徒

「なるほど、環境に合わせて調整が必要なんですね。まずは自分の仮想マシンで、実際にファイルをスワップ化して、swapon --showで確認する練習をしてみます!」

先生

「素晴らしい意気込みです。もしスワップが不要になったら、swapoffコマンドで無効化してファイルを削除すれば元通りになります。Linuxのファイル操作とコマンドの組み合わせに慣れて、もっと自由にシステムを操れるようになりましょう。」

関連記事:
カテゴリの一覧へ
新着記事
New1
Linux
Linuxのストレージとは?HDDやSSDなどデータ保存装置の仕組みを初心者向けに解説
新規投稿
New2
基本情報技術者試験
HTMLとは?初心者でもわかるWebページ作成の基礎と仕組みをやさしく徹底解説!
更新記事
New3
基本情報技術者試験
主キーとは?データベースの基本を初心者向けにやさしく解説
更新記事
New4
Linux
Linuxのスタティックリンクとは?ライブラリを実行ファイルに組み込む静的リンクを初心者向けに解説
新規投稿
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
DHCP
239
DHCPとは?初心者でもわかるIPアドレス自動割り当ての仕組み
No.3
Java&Spring記事人気No3
基本情報技術者試験
NIC
224
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.4
Java&Spring記事人気No4
基本情報技術者試験
CPU
211
CPUとは何かを完全解説!初心者でもわかるコンピュータの頭脳の仕組み
No.5
Java&Spring記事人気No5
基本情報技術者試験
IPv4
126
IPv4とは?初心者でもわかるIPアドレスの基本と通信のルール
No.6
Java&Spring記事人気No6
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.7
Java&Spring記事人気No7
基本情報技術者試験
HTTP
110
HTTPとは?初心者にもわかりやすく仕組みを解説!Webの基本を学ぼう
No.8
Java&Spring記事人気No8
基本情報技術者試験
SMTP
109
SMTPとは?初心者でもわかるメール送信の仕組みとプロトコルをやさしく解説!