ランタイムにシステムのルートパーティションのサイズを大きくするにはどうすればよいですか?
rootパーティション(これもext4)の後に割り当てられていないパーティションがあるのですが、サーバーをシャットダウンすることなく、rootパーティションに割り当てられたスペースにその未割り当てのスペースを追加するにはどうしたらいいでしょうか?
GUI (Ubuntu 14.04以降)。 GParted v0.17以降では素敵なGUIが用意されています。(それ以前のバージョンでは、マウントされたパーティションのサイズ変更を拒否します)。)
**コマンドライン(Ubuntu 14.04以降) これには3つのステップがあります。
ステップ1. まず、パーティションのサイズを変更する必要があります。LVMを使用している場合は簡単で、どのように進めればよいかお分かりかと思います。古典的なパーティションを使用している場合は、もう少し複雑で、再起動が必要になるかもしれません(ただし、別のシステムやライブCDを起動する必要はありません)。
私はこのようにしています。まず fdisk
を使ってパーティションを削除し (ディスク上のデータを維持するためです)、次に慎重に同じ位置に大きなサイズでパーティションを再作成します。
例
$ sudo fdisk /dev/sda
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 9437183 4717568 83 Linux
Command (m for help): d
Selected partition 1
Command (m for help): p
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 2048 10485759 5241856 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
繰り返しになりますが、新しいパーティションが古いパーティションと同じブロックから始まることが重要です。また、Id も一致していなければなりません(Linux システムでは 83)。少しでもタイプミスがあれば、すべてのデータを失う覚悟が必要です。
安全のために、a
を押してブートフラグ(Wikipediaによると](https://en.wikipedia.org/wiki/Boot_flag)がまだ必要なコンピュータもあります)を復元することもできます。
スワップパーティションが邪魔な場合の対処法については、コメント欄をご覧ください。
ここまでくれば、なぜライブCDを使うことが推奨されているのかがわかるはずです ;-)
ステップ2.
fdiskが親切に教えてくれるように、先に進む前にパーティションテーブルをリロードしなければなりません。最も安全な方法は単に再起動することですが、
partprobeや
kpartx` (more information)を使うこともできます。
ステップ3.
パーティションのサイズを変更し、パーティションテーブルをリロードしたら、ファイルシステム上で resize2fs
を実行するだけですが、これはルートパーティションとしてマウントされていても可能です。
例
$ sudo resize2fs /dev/sda1
ext4ファイルシステムをオンラインでリサイズすることは、それが自分のルートパーティションであっても可能です。resize2fs`コマンドを使ってください。
sudo resize2fs /dev/sda1
EDIT: オンラインでのシュリンクはできません。
root@brunojcm-htpc:/home# resize2fs /dev/sda5 2654693
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/sda5 is mounted on /; on-line resizing required
resize2fs: On-line shrinking not supported