データを失わずにext4のリサイズ

現在、以下の構成のSSD(2TB)を使用しています。

  • sda1 (FAT32) 512M
  • sda2 (ext4) 50G
  • sda3 (ext4) 残り全て

sda{1,2}を潰してsda3をディスク全体に拡張しようと計画しており、一旦sda3にあるデータを別のディスクに退避させようかと考えたのですが、退避させずに(LVMのように)データを残したままリサイズするのは可能なのでしょうか。

わたしの場合は Manjaro か Ubuntu のインストールUSB を起動して、インストーラーを止めてから、gparted でパーティションのサイズを変更したり、削除したりしています。

ですが、大切なデータがあるならバックアップしてからおこなうことをおすすめします。

ありがとうございます。CLIばかり考えていましたが、確かにGUIで行うのは得策ですね(盲点でした)。

ディスクはGPTであるという前提で述べるのですが、基本的にパーティションは「手前側に」拡張することはできません。絶対に不可能というわけではないのですが、原理的には不可能です。

で、原理的にはできないことをするためには、まずパーティションの開始位置をずらした上でブロック単位でコピーしてパーティションを複製します。
これはソフトウェアによってはパーティションの移動として行うことができます。
その上で後方へ拡張します。この拡張はパーティションサイズの拡大とファイルシステム拡大の2段階です。GPTパーティションもExt4も長さを書き換えるだけなのでこれは簡単ですし一瞬で終わります。

が、 リスクは非常に高い ので素直に退避させることを強くおすすめします。
退避先ディスクが用意できないのであればパーティションの移動をせざるをえないかもしれませんが、退避先ディスクを新規に用意してでも退避した上での作業をおすすめします。
パーティションの移動は後方への拡張とは全く異なる話なのです。

それと、少々気になるのですが、その表記の限りsda1はEFSだと思いますが本当につぶして大丈夫ですか?
別途ブートディスクを用意する計画でしょうか

また、ディスク全域を単一パーティションにするのであれば、Btrfsなどでスーパーディスクにするのもひとつの手かもしれません。

「いいね!」 1

ありがとうございます。

はい、より高速なSSDを増設したのでそちらをブートディスクにしようと考えています。

なるほど… それは確かに危ういので退避させることにします。

Btrfs、気になってはいたのでこれを機に少し触ってみようかと思います(ZFSのようにメモリを使いすぎないか心配ですが、そんなことはなさそうですし)。

「いいね!」 1

Btrfsはメモリを使うほうではありますが、ZFSみたいにものすごい使い方をするわけではないため、PCならそんなに気にならないかなと思います。512MBのVPSインスタンスとかだとちょっと気になりますけども

単一のディスクで使うのであれば

mkfs.btrfs -L $labelname /dev/sda

でほとんどの場合大丈夫かと思います。

Btrfsに限らず大体のLinuxファイルシステムはスーパーディスク化しても問題ないのですが、そういう使い方を前提にしているかどうかという点で、BtrfsかDevice Mapper (raid/LVM/LUKS(crypto))で使うのがおすすめです

「いいね!」 1