wiki:ResizeExt3FS

Ext3ファイルシステムのサイズを変更する

より新しい情報はこちらにあります。(2010/12/23)

原則的には、一度作ったファイルシステムのサイズを変更することはできません。

ちょっと怪しげなツールを使えば、サイズを変更することができます。 いくつか選択肢があります。

partedは、パーティションのサイズも同時に変更してくれるらしく魅力的ですが、どうもちゃんと使えた試しがありません。 「怪しげ」とは書きましたが、resize2fsはLinuxの標準コマンド扱いになっているので、割と安心です。 ファイルシステムを大きくする場合の作業手順は、以下の通りです。

  1. バックアップを取るべき。
  2. パーティションのサイズを大きくする。
  3. fsckをかける。
  4. resize2fsコマンドを実行する。

バックアップは、取るべきでしょう。 僕は、パーティションのサイズ変更のために取ったことはありません。 だって、フルバックアップを取る時間があるのなら、こんなことしないで新しいディスクを用意して全部コピーして済ませます。 あ、こんなことが言えるのは、毎晩バックアップを取っているからです。 全くバックアップが無い状態で実行するのは、ちょっと無謀でしょう。

パーティションのサイズを大きくするのは、LVM配下のパーティションなら簡単です。 そうでない場合は、fdiskコマンドで一度パーティションを削除してから、大きなサイズのパーティションを作成します。 なにやらちょっと恐ろしい操作ですが、パーティションの先頭位置を変えてしまわないように気をつければ心配いりません。 パーティションって、先頭位置やサイズがパーティションテーブルに記録してあるだけのシンプルな機構なのです。

resize2fsを実行する前にfsckをかけます。fsckをサボると、ちゃんとresize2fsが怒ります。

最後のresize2fsコマンドは、さんざん脅かした割にシンプルです。 引数にデバイス名だけを指定すると、上記で変更したパーティションのサイズいっぱいまでファイルシステムを大きくしてくれます。

あ。これらの作業は、いかの理由により、別のパーティションやドライブからLinuxを起動して実行します。

  • マウントされたままだと、パーティションのサイズ変更後に再起動が必要。
  • マウントされたままだと、resize2fsが実行できない(ファイルシステムによる)。

ファイルシステムを小さくすることもできるそうですが、もうちょっと余計に怖いので、僕はやったことがありません。

(2009/5/4 - sgk)