Linuxでディスクの容量を拡張したり、不要な領域を縮小したりしたい場合、パーティションサイズの変更に加えて「ファイルシステムのサイズ変更」も必要です。そこで使われるのが「resize2fs」コマンドです。resize2fsはext2/ext3/ext4ファイルシステム専用のユーティリティで、安全にファイルシステムのサイズを拡張・縮小できる便利なツールです。この記事では、resize2fsの基本的な使い方から注意点、実際の操作例まで、わかりやすく解説します。
resize2fsは、Linuxにおいてext2、ext3、ext4形式のファイルシステムのサイズを拡張・縮小するためのコマンドです。このコマンドは、e2fsprogs
というパッケージに含まれており、パーティションサイズを変更した後にファイルシステムのサイズも一致させる目的で使用されます。
このコマンドは、パーティションのサイズを変更しただけではファイルシステムのサイズは変わらない、という点を補完するための非常に重要なツールです。
resize2fsの基本的な構文は以下のとおりです。
resize2fs [デバイス名] [新しいサイズ]
[デバイス名]
:変更対象となるパーティション(例:/dev/sda1)[新しいサイズ]
:新しいサイズ(省略時は最大サイズまで拡張)サイズの指定には以下のような単位が使えます。
K
:キロバイトM
:メガバイトG
:ギガバイトs
:セクタb
:512バイトブロック例:
resize2fs /dev/sda1 10G
このコマンドは、/dev/sda1のファイルシステムを10GBに変更します。
resize2fsを使う前に、いくつかの確認が必要です。
resize2fsはこれらのフォーマットにしか対応していません。対象のファイルシステム形式を確認するには、以下のコマンドを使用します。
df -T /dev/sda1
縮小を行う場合や、安全性を確保したい場合には、事前にファイルシステムの整合性をチェックしておきましょう。
e2fsck -f /dev/sda1
fdisk
やparted
、またはlvextend
などを使って、物理的にパーティションサイズを拡張します。
例(LVMの場合):
lvextend -L +10G /dev/mapper/vg0-root
resize2fs /dev/mapper/vg0-root
マウント中のファイルシステムであっても、ext4ならオンラインで拡張可能です。
ファイルシステムの縮小は拡張よりも慎重に行う必要があります。
umount /dev/sda1
e2fsck -f /dev/sda1
resize2fs /dev/sda1 5G
ファイルが存在するサイズ以下に縮小しようとするとエラーが出るので注意しましょう。
resize2fs 1.46.5 (30-Dec-2021)
Resizing the filesystem on /dev/sda1 to 2621440 (4k) blocks.
The filesystem on /dev/sda1 is now 2621440 (4k) blocks long.
このように、ブロック数単位でサイズ変更されたことが表示されます。ブロックサイズは通常4KBです。
サイズ変更はリスクを伴う操作です。重要なデータは必ずバックアップを取ってから行いましょう。
resize2fs実行中に強制終了すると、ファイルシステムが破損する可能性があります。途中で止めないよう注意しましょう。
resize2fsで拡張しても、パーティションサイズより大きくすることはできません。fdisk
やparted
での操作と合わせて使いましょう。
resize2fsは、Linuxのファイルシステムを安全に拡張・縮小するために欠かせないコマンドです。特にext4形式のファイルシステムでは、マウント状態でもサイズ変更が可能な点が魅力です。ですが、実行前のfsckやアンマウント、サイズ指定の正確さ、そしてバックアップの確保など、安全に使うためには慎重な準備が求められます。
ファイルシステムのサイズ変更は、一歩間違えると大切なデータを失う可能性もあります。resize2fsの使い方を正しく理解し、万全の体制で操作に臨みましょう。