web-dev-qa-db-ja.com

データを失うことなくLinuxでパーティションをマージするにはどうすればよいですか?

そのため、私は注目度の高いサイト用にいくつかのVMに取り組んでおり、それらには/ homeが/(ルート)とは別にパーティション化されています。/homeが別々にパーティション化されないように、所有者から2つのパーティションをマージするように依頼されました。私はパーティションが本当に苦手で、Googleはこれにはかなり役に立たないことが証明されています。/homeでdf-Tを実行すると、ファイルシステムに何も表示されませんが、個別にパーティション化されていると言われました。同様に、df -T /のファイルシステム列も空です。

CentOS6.4を使用しています。

助けていただければ幸いです。

1

新しいドライブを作成し、現在のホームフォルダーをそのドライブにコピーして、/ homeパーティションとしてアタッチしないのはなぜですか?

それは当面の解決策のようです...

1
bizna

すべてのファイルシステムがext4(またはext3)であると想定しています。これで、次のように実行できます。

  1. 本当に別々のパーティションがあることを確認してください。 /etc/fstabをチェックし、mount -vdf -hを使用して、別々の//homeパーティションがあることを確認できます。簡単にするために、//dev/sda1にマウントされ、/home/dev/sda2にマウントされていると仮定します。
  2. gpartedを使用して最小限のLinuxディストリビューションを持つCDまたはUSBメディアから起動します。 [〜#〜] ubcd [〜#〜]PartedMagic 、または単にUbuntuまたはCentOSインストールCDのいずれかを使用できます。
  3. 非プライマリハードドライブから起動した後、ルートとしてgpartedを起動し、/homeのサイズをできるだけ小さく(またはgpartedで可能)、さらに移動します。ドライブの終わりで、/をできるだけ大きくします。 /にブートブロック(個別のパーティションではない/bootディレクトリ)が含まれている場合は、grubリカバリを実行する必要がある場合があります(ユーティリティboot-repairはそのために非常に適しています)。
  4. Linuxで再起動し、データを/homeから/にできるだけコピーします。次に、/ homeがほとんど空になり、サイズが無視できる程度になるまで(おそらく数メガバイト)、このプロセスを手順2から繰り返します。
  5. これで、mountpount/homeからパーティション/dev/sda2をアンマウントし、以前にコピーしたコンテンツをディレクトリにのみ追加することができます。おそらく、/ etc/fstabを調整して/homeとの行がなくなるようにする必要があります。
  6. 最終結果-/はドライブ全体とほぼ同じ大きさになり、古い/および/homeパーティションからのすべてのデータが含まれます。
1
mvp