swapoffコマンドとは?Linuxでスワップ領域を無効化する方法

Linux

Linuxで有効化しているスワップ領域を停止したいときは、swapoffコマンドを使用します。

前回解説したswaponコマンドは、スワップパーティションやスワップファイルを有効化するコマンドでした。

一方、swapoffコマンドは、有効化されているスワップ領域を無効化するためのコマンドです。

スワップファイルを削除したいとき、スワップ容量を変更したいとき、一時的にスワップを止めたいときなどに使います。

この記事では、Linux初心者でも安全に作業できるように、swapoffコマンドの基本、スワップファイル・スワップパーティションの無効化、swapoff -aの使い方、swapon --showfree -hでの確認方法、/etc/fstabの設定削除、よくあるエラーまで実例付きで解説します。

  1. swapoffコマンドとは
  2. スワップ領域とは
  3. swapoffを使う場面
  4. mkswap・swapon・swapoffの違い
  5. 現在のスワップ状態を確認する方法
  6. /proc/swapsで確認する方法
  7. swapoffコマンドの基本構文
  8. スワップファイルを無効化する方法
  9. スワップパーティションを無効化する方法
  10. すべてのスワップを無効化する方法
  11. swapoff前にメモリ余裕を確認する理由
  12. スワップファイルを削除する流れ
    1. 1. 現在の状態を確認する
    2. 2. スワップファイルを無効化する
    3. 3. /etc/fstabの設定を確認する
    4. 4. fstabをバックアップする
    5. 5. fstabから該当行を削除またはコメントアウトする
    6. 6. スワップファイルを削除する
    7. 7. 確認する
  13. スワップファイルのサイズを変更する流れ
    1. 1. 現在のスワップを確認する
    2. 2. 既存のスワップファイルを無効化する
    3. 3. 既存ファイルを削除する
    4. 4. 新しいサイズで作成する
    5. 5. 権限を設定する
    6. 6. スワップとして初期化する
    7. 7. 有効化する
    8. 8. 確認する
  14. /etc/fstabからスワップ設定を外す方法
  15. UUIDを指定してスワップを無効化する方法
  16. LABELを指定してスワップを無効化する方法
  17. swapoffコマンドの主なオプション
  18. swapoffとswapon –showの関係
  19. swapoffとfreeコマンドの関係
  20. swapoffでよく使う実用例
    1. スワップファイルを無効化する
    2. スワップパーティションを無効化する
    3. すべてのスワップを無効化する
    4. 無効化されたか確認する
    5. スワップファイルを削除する
    6. fstabのスワップ設定を確認する
  21. swapoffコマンドでよくある注意点
    1. メモリに余裕がない状態で実行しない
    2. swapoffしてもfstabに残っていると再有効化される
    3. スワップファイル削除はswapoff後に行う
    4. swapoff -aは影響範囲が大きい
  22. swapoffコマンドでよくあるエラー
    1. Not superuser
    2. No such file or directory
    3. Invalid argument
    4. Cannot allocate memory
    5. swapoff -aでエラーが出る
  23. よくある質問
    1. swapoffコマンドは何に使いますか?
    2. スワップファイルを無効化するには?
    3. スワップパーティションを無効化するには?
    4. すべてのスワップを無効化できますか?
    5. swapoffしたか確認するには?
    6. swapoffとswaponの違いは何ですか?
    7. swapoffするとデータは消えますか?
    8. swapoffしたのに再起動後に復活します
    9. Cannot allocate memoryが出るのはなぜですか?
    10. UbuntuやCentOS Streamでも使えますか?
  24. まとめ

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

Swapusedが増えている場合、実際にスワップが使われています。

/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

特にSwapusedが大きい場合は注意が必要です。

必要に応じて、不要なアプリケーションやプロセスを停止してから実行します。

スワップファイルを削除する流れ

スワップファイルを完全に削除したい場合は、次の流れで作業します。

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

lsNo 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 /swapfilesudo 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

特にSwapUSEDが大きい場合は注意しましょう。

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 --showfree -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 --showfree -hを使います。

swapon --show
free -h

スワップファイルを削除したい場合は、swapoffで無効化してからrmで削除します。

sudo swapoff /swapfile
sudo rm /swapfile

再起動後もスワップを無効のままにしたい場合は、/etc/fstabの設定も削除またはコメントアウトしてください。

swapoffは便利ですが、使用中のスワップを無効化するとメモリへ戻す処理が発生します。実行前にはfree -hswapon --showで状態を確認し、メモリに余裕があるタイミングで安全に作業しましょう。

コメント

タイトルとURLをコピーしました