久しぶりに家の NAS をリプレースしていますシリーズその1, 2, 3の続きです。
OSのインストール時に、うっかり swap 用のパーティションをきってしまったのですが、swap に割り当てる領域を柔軟にコントロールしたくなってきました。
現状は、ブート用の USB メモリは以下のパーティションで構成されています。
- "/" ルートパーティション
- swap 用パーティション
この swap パーティションをつぶして、ルートパーティションの領域を拡大してみます。
(あらかじめ swap 領域は swapoff して外しておきましょう。)
ディスクパーティションの拡張
# parted /dev/sdf GNU Parted 3.2 /dev/sdf を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) p モデル: JetFlash Transcend 16GB (scsi) ディスク /dev/sdf: 15.8GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 15.2GB 15.2GB primary xfs boot 2 15.2GB 15.8GB 544MB primary linux-swap(v1)
parted コマンドを使います。まずは "p" (print) コマンドでパーティションテーブルを確認。
(parted) help align-check TYPE N パーティション N のアライメント(TYPE: min|opt)をチェックする help [コマンド] ヘルプ表示。コマンド指定でそのヘルプを表示 mklabel,mktable ラベルの種類 新しいラベル(パーティションテーブル)を作る mkpart パーティションの種類 [ファイルシステムの種類] 開始 終了 パーティションを作る name NUMBER 名前 パーティションに名前をつける print [devices|free|list,all|NUMBER] パーティションテーブルや、利用可能なデバイス、空き領域、 見つかった全てのパーティション、あるいは特定のパーティションについて表示する quit プログラムを終了する rescue 開始 終了 開始、終了で指定した範囲付近にあるパーティションを復活させる resizepart NUMBER END パーティション NUMBER を END にリサイズする rm NUMBER パーティションを削除する select デバイス 操作するデバイスを選択 disk_set FLAG STATE 選択したデバイスの FLAG を変更 disk_toggle [FLAG] 選択したデバイスの FLAG の状態をトグル set NUMBER フラグ 状態 ファイルシステムのフラグと状態を設定する toggle [NUMBER [FLAG]] パーティションのフラグの状態を反転する unit UNIT デフォルトの単位を UNIT にする version GNU Parted のバージョンと著作権情報を表示
"help" でサブコマンドの確認・・・。
(parted) rm 2 (parted) p モデル: JetFlash Transcend 16GB (scsi) ディスク /dev/sdf: 15.8GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 15.2GB 15.2GB primary xfs boot
"rm" コマンドでパーティションを削除します。(引数はパーティションナンバー)
(parted) resizepart 1 100% 警告: パーティション /dev/sdf1 は使用中です。それでも実行しますか? はい(Y)/Yes/いいえ(N)/No? Y 終了? [15.2GB]? 100% (parted) p モデル: JetFlash Transcend 16GB (scsi) ディスク /dev/sdf: 15.8GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 15.8GB 15.8GB primary xfs boot
"resizepart" コマンドでパーティションのリサイズを行います。
今回は、2番目のパーティションを削除し、1パーティションのみなので、 END に "100%" を入力し、終了場所として領域の最後を指定する (全ての領域を利用する) ようにします。
(parted) q 通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
"q" (quit) コマンドで parted を終了します。
これでパーティションの拡張作業はおしまいです。
ファイルシステム (XFS) の拡張
OSが見ているのはファイルシステムなので、ボリューム (パーティション) の拡張をするだけでは、拡張分をOSから利用することができません。
よって、ファイルシステムにそのことを教えてあげる必要があります。
# xfs_growfs / meta-data=/dev/sda1 isize=512 agcount=4, agsize=930560 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=3722240, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 3722240 to 3855104
XFS ファイルシステムの拡張 (リサイズ) は、上記のような感じで、"xfs_growfs" コマンドを実行すればOKです。
もし、上記コマンドが見つからない場合は、xfsprogs パッケージに含まれていると思いますので、dnf / yum あたりでインストールしましょう。
実行後、df コマンドなどで、サイズが拡大したことを確認できるはずです。
※ ちなみに、ext2 / ext3 / ext4 ファイルシステムでは、"resize2fs" コマンドでファイルシステムのリサイズができるはず。
おまけ
ここまでで、タイトルに書いたルートパーティションの拡張はできたわけですが、swap のパーティションがなくなって、swap 領域はどうなったのか、、、という話ですが、ルートパーティションの任意の場所に swap 用のファイルを作って、swapon しておけばOKです。
細かいやり方は、以下のエントリに書いてあります。
今日はこの辺で。
それでは! =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́
[改訂新版]プロのためのLinuxシステム構築・運用技術 (Software Design plus)
- 作者:中井 悦司
- 発売日: 2016/09/22
- メディア: 大型本