web-dev-qa-db-ja.com

「dd」コマンドを使用してext4パーティションをより大きなパーティションの空き領域に複製しても増加しません

可能性のある複製:
ドライブの不正な空き容量の報告

最近、ddツールを使用してhdのクローンを作成しようとしています。 ntfsパーティションを複製するので問題ありませんでしたが、ext4に関してはddは奇妙なことをします。例えば。 4GBの空き容量を持つ12GBのパーティションを使用して、新しい25GBのパーティションにクローンを作成しようとするとクローンを作成しますが、以前は12GBだったデータが4GBで21GBになりました(現在と同じ空き容量古いパーティション)。これは、ホームパーティションとルートパーティション(ext4)を複製するたびに発生します。また、新しいパーティションのサイズを古いパーティションのサイズに下げようとしていましたが、ddはエラーで終了し、十分なスペースがありません...

誰でも?どうしたの?

6
Piotr Kołątaj

私はあなたが次のようなことをしていると仮定します:

Sudo dd if=/dev/sda98 of=/dev/sda99

/ dev/sda98のサイズは12GBで、/ dev/sda99のサイズは25GBです。

明らかにこれらの名前は間違っていますが、あなたはその考えを理解します。

行ったことは、データだけでなく、ファイルシステム全体(何が無料で何が使用されているかを示すすべてのメタデータを含む)を新しいパーティションに移動することです。空き領域はたくさんありますが、その空き領域は/ dev/sda99のファイルシステムに組み込まれていないため、パーティションの最後に隠されており、まったく使用できません。

解決策は、パーティションにあるファイルシステムのサイズを変更することです。

Sudo resize2fs /dev/sda99

eXT2、EXT3、およびEXT4ファイルシステムで動作します。

最初にバックアップを作成することをお勧めしますが、元のパーティションにまだデータがあると仮定します。

これにより、ファイルシステムはパーティション上の使用可能なすべてのスペースに拡張し、ファイルシステムのメタデータに新しいスペースを組み込み、ファイルをそこに保存できるようになります。

ddを使用して大きなパーティションを小さなパーティションにコピーすることはできません。ただし、countパラメーターを使用して大量のコピーのみを指定する場合を除きます。 ddは、ソースパーティション内のすべてをターゲットパーティションにビットコピーします。この場合、非表示/非表示のすべてのスペースを元のコンテンツとともに小さなパーティションにコピーしようとします。何をコピーしているのか、何も考えたり気にしたりしません。有効なファイルシステムである必要はありません。

11
John S Gruber