Ubuntu 資料一覧

swap領域拡張手順(ファイル割当)

2016/09/12更新

対応バージョン: 16.04

swap領域を拡張する手順を示す。

手段としてはサイズ変更可能なファイルシステムを使用したり新たにディスクパーティションを切り出す方法など様々あるが、ここではOS稼働中でも作業可能なファイルを用いた方法を用いる。

現状確認

まず現在のswapの状態を確認しておく。

% cat /etc/fstab
:
<file system>       <mount point> <type> <options> <dump> <pass>
:
UUID=xxxxx-xxx-xxxx none          swap   sw        0      0
:

% swapon -s
Filename        Type       Size     Used   Priority
/dev/mmcblk0p3  partition  4084732  56704  -1

% free -h
       total  used  free  shared  buff/cache  available
Mem:    3.8G  2.1G  162M    500M        1.5G       941M
Swap:   3.9G   55M  3.8G

swapファイル作成

通常のファイルをswapファイルとして設定する。ここでは2GBのファイルを作成する。

% sudo fallocate -l 2G /swapfile

% ls -lh /swapfile
-rw-r--r-- 1 root root 2.0G  9月 12 22:10 /swapfile

このファイルをrootにしか読み書きできないようにパーミッション変更する。

% sudo chmod 600 /swapfile

% ls -lh /swapfile
-rw------- 1 root root 2.0G  9月 12 22:10 /swapfile

ファイルをswap領域として設定する。

% sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
ラベルはありません, UUID=e9036b95-b824-4585-a995-5426de792c04

swap割り当て

先ほど作成したファイルをswap領域として割り当てる。

% sudo swapon /swapfile

これで既存のswap領域が拡張される。

% swapon -s
Filename        Type       Size     Used   Priority
/dev/mmcblk0p3  partition  4084732  56704  -1
/swapfile       file       2097148  0      -2

% free -h
       total  used  free  shared  buff/cache  available
Mem:    3.8G  2.1G  162M    500M        1.5G       941M
Swap:   5.9G   55M  5.9G

恒久設定

上記のswaponコマンドでswapを拡張しただけだとOSを再起動した際に元の割当に戻ってしまうので恒久的に割り当てたい場合は/etc/fstabで指定する。

% sudo cp -p /etc/fstab{,.bak}
% echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
/swapfile none swap sw 0 0

swap割り当て解除

割り当てたswapを解除するのは簡単で、swapoffコマンドで解除したいファイルを指定するだけでよい。

/etc/fstabを変更していた場合は元に戻す。

swapファイルは再利用もできるが、不要であれば削除してよい。

% sudo swapoff /swapfile

% swapon -s
Filename        Type       Size     Used   Priority
/dev/mmcblk0p3  partition  4084732  56704  -1
/etc/fstabを変更していた場合
% sudo mv /etc/fstab{.bak,}
swapファイルが不要な場合
% sudo rm /swapfile