Linuxで有効化しているスワップ領域を停止したいときは、swapoffコマンドを使用します。
前回解説したswaponコマンドは、スワップパーティションやスワップファイルを有効化するコマンドでした。
一方、swapoffコマンドは、有効化されているスワップ領域を無効化するためのコマンドです。
スワップファイルを削除したいとき、スワップ容量を変更したいとき、一時的にスワップを止めたいときなどに使います。
この記事では、Linux初心者でも安全に作業できるように、swapoffコマンドの基本、スワップファイル・スワップパーティションの無効化、swapoff -aの使い方、swapon --showやfree -hでの確認方法、/etc/fstabの設定削除、よくあるエラーまで実例付きで解説します。
- swapoffコマンドとは
- スワップ領域とは
- swapoffを使う場面
- mkswap・swapon・swapoffの違い
- 現在のスワップ状態を確認する方法
- /proc/swapsで確認する方法
- swapoffコマンドの基本構文
- スワップファイルを無効化する方法
- スワップパーティションを無効化する方法
- すべてのスワップを無効化する方法
- swapoff前にメモリ余裕を確認する理由
- スワップファイルを削除する流れ
- スワップファイルのサイズを変更する流れ
- /etc/fstabからスワップ設定を外す方法
- UUIDを指定してスワップを無効化する方法
- LABELを指定してスワップを無効化する方法
- swapoffコマンドの主なオプション
- swapoffとswapon –showの関係
- swapoffとfreeコマンドの関係
- swapoffでよく使う実用例
- swapoffコマンドでよくある注意点
- swapoffコマンドでよくあるエラー
- よくある質問
- まとめ
swapoffコマンドとは
swapoffは、Linuxで有効化されているスワップ領域を無効化するためのコマンドです。
たとえば、/swapfileというスワップファイルを無効化する場合は、次のように実行します。
sudo swapoff /swapfile
スワップパーティションを無効化する場合は、次のように実行します。
sudo swapoff /dev/sdb1
swapoffを実行すると、そのスワップ領域はLinuxのメモリ退避先として使われなくなります。
ただし、使用中のスワップを無効化する場合、スワップ上のデータを物理メモリへ戻す必要があります。
物理メモリに十分な空きがない状態で実行すると、失敗したり、システムが重くなったりすることがあります。
スワップ領域とは
スワップ領域とは、Linuxで物理メモリが不足したときに、ディスクの一部を一時的な退避先として使う仕組みです。
メモリに入りきらないデータをスワップへ移すことで、すぐにプロセスが停止することを防ぎやすくなります。
ただし、ディスクはメモリより遅いため、スワップを大量に使う状態が続くと、システム全体の動作が重くなることがあります。
swapoffは、このスワップ領域の利用を停止するために使います。
swapoffを使う場面
swapoffは、主に次のような場面で使います。
- スワップファイルを削除したいとき
- スワップファイルのサイズを変更したいとき
- スワップパーティションを別用途に変更したいとき
- 一時的にスワップを停止して動作確認したいとき
/etc/fstabのスワップ設定を見直したいとき- スワップを使いすぎている原因を調査したいとき
特にスワップファイルの作り直しでは、swapoffで無効化してから削除・再作成する流れがよく使われます。
mkswap・swapon・swapoffの違い
スワップ関連のコマンドは、役割を分けて覚えると分かりやすいです。
| コマンド | 役割 | 例 |
|---|---|---|
mkswap |
スワップ領域として初期化する | sudo mkswap /swapfile |
swapon |
スワップ領域を有効化する | sudo swapon /swapfile |
swapoff |
スワップ領域を無効化する | sudo swapoff /swapfile |
簡単にいうと、mkswapは作る、swaponは使い始める、swapoffは使うのを止めるコマンドです。
現在のスワップ状態を確認する方法
swapoffを実行する前に、現在のスワップ状態を確認します。
swapon --show
実行結果の例です。
NAME TYPE SIZE USED PRIO
/swapfile file 2G 128M -2
NAMEに表示されている値が、現在有効化されているスワップ領域です。
メモリとスワップの全体状況を確認したい場合は、free -hを使います。
free -h
実行結果の例です。
total used free shared buff/cache available
Mem: 1.9Gi 900Mi 250Mi 20Mi 750Mi 800Mi
Swap: 2.0Gi 128Mi 1.9Gi
Swapのusedが増えている場合、実際にスワップが使われています。
/proc/swapsで確認する方法
有効なスワップ領域は、/proc/swapsでも確認できます。
cat /proc/swaps
実行結果の例です。
Filename Type Size Used Priority
/swapfile file 2097148 131072 -2
通常はswapon --showの方が見やすいですが、内部的な確認方法として/proc/swapsも覚えておくと便利です。
swapoffコマンドの基本構文
swapoffコマンドの基本構文は次のとおりです。
swapoff [オプション] デバイスまたはファイル
スワップファイルを無効化する場合です。
sudo swapoff /swapfile
スワップパーティションを無効化する場合です。
sudo swapoff /dev/sdb1
現在有効なスワップをすべて無効化する場合は、-aを使います。
sudo swapoff -a
ただし、swapoff -aはすべての有効なスワップを止めるため、メモリに余裕があるか確認してから実行しましょう。
スワップファイルを無効化する方法
スワップファイルを無効化するには、スワップファイルのパスを指定します。
まず現在の状態を確認します。
swapon --show
実行結果の例です。
NAME TYPE SIZE USED PRIO
/swapfile file 2G 128M -2
/swapfileを無効化します。
sudo swapoff /swapfile
無効化されたか確認します。
swapon --show
何も表示されなければ、有効なスワップ領域がない状態です。
free -hでも確認できます。
free -h
スワップパーティションを無効化する方法
スワップパーティションを無効化する場合も、基本は同じです。
まず現在のスワップ状態を確認します。
swapon --show
実行結果の例です。
NAME TYPE SIZE USED PRIO
/dev/sdb1 partition 4G 0B -2
/dev/sdb1を無効化します。
sudo swapoff /dev/sdb1
確認します。
swapon --show
/dev/sdb1が表示されなくなっていれば、無効化されています。
すべてのスワップを無効化する方法
現在有効なスワップをすべて無効化したい場合は、-aオプションを使用します。
sudo swapoff -a
実行後、確認します。
swapon --show
free -h
ただし、swapoff -aはすべてのスワップを止めるため、メモリに余裕がない環境では危険な場合があります。
特にメモリが少ないVPSや、すでにスワップを多く使っているサーバーでは、事前にfree -hで確認してから実行してください。
swapoff前にメモリ余裕を確認する理由
swapoffを実行すると、スワップ上にあるデータは物理メモリへ戻されます。
そのため、物理メモリに十分な空きがないと、swapoffに失敗することがあります。
事前に確認します。
free -h
特にSwapのusedが大きい場合は注意が必要です。
必要に応じて、不要なアプリケーションやプロセスを停止してから実行します。
スワップファイルを削除する流れ
スワップファイルを完全に削除したい場合は、次の流れで作業します。
1. 現在の状態を確認する
swapon --show
free -h
2. スワップファイルを無効化する
sudo swapoff /swapfile
3. /etc/fstabの設定を確認する
grep swap /etc/fstab
4. fstabをバックアップする
sudo cp /etc/fstab /etc/fstab.bak
5. fstabから該当行を削除またはコメントアウトする
sudo vi /etc/fstab
たとえば、次の行を削除またはコメントアウトします。
/swapfile none swap sw 0 0
コメントアウトする場合は、先頭に#を付けます。
# /swapfile none swap sw 0 0
6. スワップファイルを削除する
sudo rm /swapfile
7. 確認する
swapon --show
free -h
ls -l /swapfile
lsでNo such file or directoryになれば、ファイルは削除されています。
スワップファイルのサイズを変更する流れ
スワップファイルのサイズを変更したい場合は、基本的に一度無効化して作り直します。
例として、2GBから4GBへ変更する流れです。
1. 現在のスワップを確認する
swapon --show
free -h
2. 既存のスワップファイルを無効化する
sudo swapoff /swapfile
3. 既存ファイルを削除する
sudo rm /swapfile
4. 新しいサイズで作成する
sudo fallocate -l 4G /swapfile
fallocateが使えない場合は、ddを使う方法もあります。
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
5. 権限を設定する
sudo chmod 600 /swapfile
6. スワップとして初期化する
sudo mkswap /swapfile
7. 有効化する
sudo swapon /swapfile
8. 確認する
swapon --show
free -h
/etc/fstabに/swapfileとして登録している場合、ファイル名が同じなら設定行はそのまま使えることが多いです。
/etc/fstabからスワップ設定を外す方法
スワップを無効化しても、/etc/fstabに設定が残っていると、再起動時やswapon -a実行時に再び有効化される場合があります。
自動有効化をやめたい場合は、/etc/fstabの該当行も削除またはコメントアウトします。
まずバックアップします。
sudo cp /etc/fstab /etc/fstab.bak
内容を確認します。
grep swap /etc/fstab
編集します。
sudo vi /etc/fstab
スワップファイルの例です。
# /swapfile none swap sw 0 0
スワップパーティションの例です。
# UUID=9999-aaaa-bbbb-cccc none swap sw 0 0
編集後は、現在の状態を確認します。
swapon --show
UUIDを指定してスワップを無効化する方法
swapoffでは、UUIDを指定して無効化できる場合があります。
まずUUIDを確認します。
sudo blkid /dev/sdb1
実行結果の例です。
/dev/sdb1: UUID="9999-aaaa-bbbb-cccc" TYPE="swap"
UUIDを指定して無効化します。
sudo swapoff -U 9999-aaaa-bbbb-cccc
デバイス名が変わる可能性がある環境では、UUID指定が便利な場合があります。
LABELを指定してスワップを無効化する方法
ラベルが付いたスワップ領域は、LABELを指定して無効化できる場合があります。
まずラベルを確認します。
sudo blkid
実行結果の例です。
/dev/sdb1: LABEL="swapdata" UUID="9999-aaaa-bbbb-cccc" TYPE="swap"
ラベルを指定して無効化します。
sudo swapoff -L swapdata
複数のスワップ領域を管理している場合に便利です。
swapoffコマンドの主なオプション
| オプション | 説明 |
|---|---|
-a |
すべての有効なスワップを無効化する |
-v |
詳細情報を表示する |
-U UUID |
UUIDを指定して無効化する |
-L LABEL |
LABELを指定して無効化する |
--help |
ヘルプを表示する |
--version |
バージョン情報を表示する |
通常は、sudo swapoff /swapfileやsudo swapoff /dev/sdb1を使うことが多いです。
-aは影響範囲が大きいため、実行前にメモリ使用状況を確認しましょう。
swapoffとswapon –showの関係
swapoffはスワップを無効化するコマンドです。
無効化されたか確認するには、swapon --showを使います。
sudo swapoff /swapfile
swapon --show
swapon --showに対象が表示されなくなれば、無効化されています。
名前はswaponですが、--showは現在有効なスワップ一覧を確認するためにもよく使われます。
swapoffとfreeコマンドの関係
free -hでは、スワップの合計容量や使用量を確認できます。
free -h
swapoffでスワップを無効化すると、Swapの合計容量が減ります。
すべてのスワップを無効化した場合は、次のように表示されることがあります。
Swap: 0B 0B 0B
スワップの有無をざっくり見るならfree -h、どのファイルやパーティションが有効か見るならswapon --showが便利です。
swapoffでよく使う実用例
スワップファイルを無効化する
sudo swapoff /swapfile
スワップパーティションを無効化する
sudo swapoff /dev/sdb1
すべてのスワップを無効化する
sudo swapoff -a
無効化されたか確認する
swapon --show
free -h
スワップファイルを削除する
sudo swapoff /swapfile
sudo rm /swapfile
fstabのスワップ設定を確認する
grep swap /etc/fstab
swapoffコマンドでよくある注意点
メモリに余裕がない状態で実行しない
使用中のスワップを無効化すると、スワップ上のデータをメモリへ戻す必要があります。
メモリに余裕がない状態では、swapoffに失敗することがあります。
free -h
swapon --show
特にSwapのUSEDが大きい場合は注意しましょう。
swapoffしてもfstabに残っていると再有効化される
swapoffで無効化しても、/etc/fstabに設定が残っていると、再起動時に再び有効化されることがあります。
完全にやめたい場合は、/etc/fstabも編集します。
sudo cp /etc/fstab /etc/fstab.bak
sudo vi /etc/fstab
スワップファイル削除はswapoff後に行う
有効化中のスワップファイルをいきなり削除するのは避けましょう。
まずswapoffで無効化します。
sudo swapoff /swapfile
sudo rm /swapfile
swapoff -aは影響範囲が大きい
swapoff -aはすべての有効なスワップを無効化します。
複数のスワップ領域がある環境では、どれが止まるのか事前に確認してください。
swapon --show
swapoffコマンドでよくあるエラー
Not superuser
swapoff: Not superuser.
権限が不足しています。
通常はsudoを付けて実行します。
sudo swapoff /swapfile
No such file or directory
swapoff: /swapfile: No such file or directory
指定したファイルやデバイスが存在しません。
スワップ状態を確認します。
swapon --show
デバイスの場合は、lsblkでも確認します。
lsblk
Invalid argument
swapoff: /swapfile: swapoff failed: Invalid argument
指定した対象が現在スワップとして有効化されていない可能性があります。
まず有効なスワップ一覧を確認してください。
swapon --show
cat /proc/swaps
Cannot allocate memory
swapoff: /swapfile: swapoff failed: Cannot allocate memory
スワップ上のデータを物理メモリへ戻すだけの空きメモリが足りない可能性があります。
現在のメモリ状況を確認します。
free -h
swapon --show
不要なプロセスを停止する、メモリ使用量が少ないタイミングで実行する、または一部のスワップだけを無効化するなどを検討します。
swapoff -aでエラーが出る
複数のスワップをまとめて無効化しようとして、メモリ不足や無効化できない対象がある場合にエラーが出ることがあります。
まず現在のスワップを確認します。
swapon --show
必要に応じて、1つずつ指定して無効化します。
sudo swapoff /swapfile
sudo swapoff /dev/sdb1
よくある質問
swapoffコマンドは何に使いますか?
Linuxで有効化されているスワップファイルやスワップパーティションを無効化するために使います。
スワップファイルを無効化するには?
次のように実行します。
sudo swapoff /swapfile
スワップパーティションを無効化するには?
デバイス名を指定します。
sudo swapoff /dev/sdb1
すべてのスワップを無効化できますか?
-aオプションで可能です。
sudo swapoff -a
ただし、メモリに余裕があるか確認してから実行してください。
swapoffしたか確認するには?
swapon --showやfree -hで確認できます。
swapon --show
free -h
swapoffとswaponの違いは何ですか?
swaponはスワップを有効化するコマンドです。swapoffは有効化されているスワップを無効化するコマンドです。
swapoffするとデータは消えますか?
swapoff自体は、スワップの利用を停止する操作です。スワップファイルを削除する場合は、swapoff後にrmで削除します。
swapoffしたのに再起動後に復活します
/etc/fstabにスワップ設定が残っている可能性があります。自動有効化をやめる場合は、該当行を削除またはコメントアウトしてください。
Cannot allocate memoryが出るのはなぜですか?
スワップ上のデータを物理メモリへ戻すだけの空きメモリが足りない可能性があります。free -hで状態を確認してください。
UbuntuやCentOS Streamでも使えますか?
はい。Ubuntu、Debian、CentOS Stream、Rocky Linux、AlmaLinuxなど、多くのLinuxディストリビューションで利用できます。
まとめ
swapoffコマンドは、Linuxで有効化されているスワップ領域を無効化するためのコマンドです。
スワップファイルを無効化する場合は、次のように実行します。
sudo swapoff /swapfile
スワップパーティションを無効化する場合は、次のように実行します。
sudo swapoff /dev/sdb1
すべてのスワップを無効化する場合は、-aを使います。
sudo swapoff -a
無効化されたか確認するには、swapon --showやfree -hを使います。
swapon --show
free -h
スワップファイルを削除したい場合は、swapoffで無効化してからrmで削除します。
sudo swapoff /swapfile
sudo rm /swapfile
再起動後もスワップを無効のままにしたい場合は、/etc/fstabの設定も削除またはコメントアウトしてください。
swapoffは便利ですが、使用中のスワップを無効化するとメモリへ戻す処理が発生します。実行前にはfree -hとswapon --showで状態を確認し、メモリに余裕があるタイミングで安全に作業しましょう。




コメント