実行中のシステムでext4パーティションを縮小し、Gpartedで行われているように、利用可能な空き領域に別のパーティションを作成することは可能でしょうか?
システムパーティションではない/dev/sdb1
を縮小したいので、アンマウントは問題ありません。
/dev/sdb1
でresize2fs
のサイズを変更できましたが、fdisk
に新しいパーティションを作成するための空き領域がなかったため、その後失われました。
Ubuntu Server 14.04を実行しています。
はい、実際にパーティションテーブルを変更するには、fdisk
を実行する必要があります。
resize2fs
(パーティションをアンマウントする必要があります)でパーティションのサイズを変更したら、コマンドの出力を確認します。
$ resize2fs /dev/sdb1 24G
...
The filesystem on /dev/sdb1 is now 6291456 (4k) blocks long.
ブロック数とブロック長を覚えておいてください。これはファイルシステムのサイズのみを変更し、パーティションは変更しませんでした。 fdisk
コマンドを使用して、パーティションを削除し、正しいサイズで再作成する必要があります。
$ fdisk /dev/sdb
p
と入力して、パーティションテーブルを表示できます。
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 52428766 52426719 25G 83 Linux
d
と入力して、パーティションを削除します。次に、n
で新しいパーティションを追加します。元のパーティションと同じ値を使用しますが、最後のセクターを現在のファイルシステムに適合するものに変更します。最後のセクターの相対サイズを受け入れるので、ブロックの数にresize2fsコマンドを与えたブロック長を掛けて、結果のサイズを計算します。この例では:
6291456 * 4k = 25165824k
新しいパーティションを追加するときに、最後のセクターの入力を求められたら、結果のサイズを入力します(+
プレフィックスと大文字のK
に注意してください):+25165824K
パーティションが起動可能なパーティションである場合はa
と入力し、新しいパーティションテーブルを表示するにはp
と入力します。
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 50333695 50331648 24G 83 Linux
w
と入力して、変更をディスクに書き込みます。その後、新しいサイズが表示されます。