手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 swap の無効化 – swapoff と fstab で永続停止する

関連する記事

Ubuntu 26.04 で swap を無効化する場合は、現在有効な swap を停止するだけでなく、再起動後に自動で有効化されないように /etc/fstab も確認します。特に Kubernetes ノードでは swap が有効だと kubelet の前提と合わないため、事前準備として扱うことがあります。

この記事では、swap 状態の確認、swapoff -a による一時停止、/etc/fstab のバックアップ、/swap.img 行のコメントアウト、再起動後確認、戻し方を扱います。

swap を無効化する前に確認すること

  • swap を無効化してもメモリ容量に余裕があること。
  • Kubernetes など、swap 無効化を前提にする用途かどうか。
  • 既存の /etc/fstab をバックアップすること。
  • swapfile なのか、swap パーティションなのかを確認すること。

現在の swap 状態を確認する

まず現在有効な swap とメモリ使用状況を確認します。swapon --show に何も表示されなければ、swap は有効ではありません。

swapon --show
free -h
cat /proc/swaps

fstab の swap 行を確認する

再起動後に swap が戻るかどうかは、/etc/fstab の登録内容に依存します。Ubuntu のインストール構成では /swap.img が登録されていることがあります。

grep -nE '^[^#].*\s+swap\s+' /etc/fstab || true
grep -n '/swap.img' /etc/fstab || true

現在の swap を停止する

swapoff -a は現在有効な swap を停止します。この操作だけでは再起動後の永続設定は変わりません。

sudo swapoff -a
swapon --show
free -h

fstab をバックアップする

/etc/fstab は起動時のマウントや swap に影響します。変更前にバックアップを取得し、戻せる状態にします。

sudo cp -a /etc/fstab /etc/fstab.bak.$(date +%Y%m%d%H%M%S)
sudo findmnt --verify --verbose

swap.img の行をコメントアウトする

Ubuntu の既定 swapfile が /swap.img none swap sw 0 0 として登録されている場合は、その行をコメントアウトします。

sudo sed -i -E 's|^(/swap\.img[[:space:]]+none[[:space:]]+swap[[:space:]]+sw[[:space:]]+0[[:space:]]+0)$|# \1|' /etc/fstab
grep -n '/swap.img' /etc/fstab || true
sudo findmnt --verify --verbose

swap パーティションの場合

swap がパーティションとして登録されている場合は、UUID=... の swap 行を確認し、対象が本当に swap であることを確認してからコメントアウトします。

sudo blkid | grep -i swap || true
grep -nE '^[^#].*\s+swap\s+' /etc/fstab || true

再起動後に確認する

永続的に無効化できたかは再起動後に確認します。swapon --show が空で、free -h の Swap が 0 になっていることを見ます。

sudo reboot
swapon --show
free -h
cat /proc/swaps
grep -nE '^[^#].*\s+swap\s+' /etc/fstab || true

systemd の swap unit を確認する

環境によっては systemd の swap unit が見える場合があります。再起動後に不要な swap unit が active になっていないか確認します。

systemctl --type=swap --all
systemctl status swap.target --no-pager

戻す場合

swap を戻す場合は、バックアップから /etc/fstab を戻すか、コメントアウトした swap 行を有効化してから swapon -a を実行します。

sudo cp -a /etc/fstab.bak.YYYYMMDDHHMMSS /etc/fstab
sudo swapon -a
swapon --show
free -h

Kubernetes ノードでの位置づけ

Kubernetes ノードでは、swap 無効化は kubelet や container runtime の準備と一緒に確認します。swap だけを止めても、カーネルモジュール、sysctl、container runtime、kubeadm の準備が未完了であればノードとしては使えません。

swapon --show
systemctl status kubelet --no-pager
crictl info

確認項目

  • swapon --show が空であること。
  • /etc/fstab に有効な swap 行が残っていないこと。
  • findmnt --verify が通ること。
  • 再起動後も swap が復活していないこと。
  • swap 無効化が必要な用途とメモリ容量の前提が合っていること。

まとめ

Ubuntu 26.04 で swap を無効化する場合は、swapoff -a で現在の swap を止め、/etc/fstab の swap 行をコメントアウトして再起動後も戻らないようにします。Kubernetes ノードでは重要な事前準備ですが、メモリ容量と用途を確認したうえで、再起動後の swapon --show まで確認することが大切です。

関連する記事
Ubuntu 26.04 swap の無効化 – swapoff と fstab で永続停止する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る