1つのハードドライブから別のハードドライブに約120Gのデータをコピーしました(ファイルのコピー中に両方のハードドライブをマウントしました)。ところで、私の注目を集めたのは、一部のファイルがコピー後にさらに多くのスペースを占めるということです。
すべてのファイルでこの現象は発生するわけではありませんが、フォルダ自体の最終サイズ(複数のフォルダとファイルが含まれています)がはるかに大きくなります(オリジナル118G、コピー後153G)。誰かが私が理解するのを助けることができますか?
このスクリーンショットに示すように、スペースは128Kブロックに割り当てられているようです。理解できます。
Ubuntu 20.04を使用しています。
答え1
ファイルをコピーするときにファイルサイズが大きくなるには、2つの一般的な理由があります。
元のファイルに穴(割り当てられていない部分)があり、単純コピーツールを使用している場合、これらの穴は実際のゼロで埋められます。 JPEGファイルには穴がないので、そうではありません。
もう1つの一般的な原因は、割り当てブロックサイズが異なる2つのファイルシステム間でファイルがコピーされることです。ファイルの両方のコピーは同じ長さ(バイト数)を持ちますが、ファイルシステムは通常ファイルをブロックに保存するため、ファイルは常に整数ブロックの数を占めます。ファイルの最後の数バイトは、ファイルの最後のブロックを部分的に埋めます。
ターゲットファイルシステムがより大きなブロックサイズを使用している場合、各ファイルの最後のブロックは大きくなる可能性があり、ファイルの保存サイズはデフォルトで丸められます。
歴史的に、複数のファイルシステム(ネイティブFFS、BSD UFS2、BTRFS)は「フラグメント」ブロックを保存しようとし、複数のファイルの最後の部分ブロックを同じフラグメントブロックに保存しました。