同じファイルが USB スティック上ではなぜ大きくなるのでしょうか?

同じファイルが USB スティック上ではなぜ大きくなるのでしょうか?

ファイルを USB デバイスにコピーすると、サイズが大きくなるようです。

たくさんの ASCII テキスト ファイルを含む testdir というディレクトリがあります。元のディレクトリ:

$ du -hs testdir
22M

ディレクトリをUSBデバイスにコピーしました

$ du -hs testdir
82M

内容を確認しました。まったく同じです。唯一異なるのはファイルシステムです。

$ lsblk -f
...
 sdb                                                        
└─sdb1 ext4           ce7a8f47-699d-450a-9391-932e75e6eb44 /
sdc                                                        
└─sdc1 vfat           F474B7AA74B76DCC                     /mnt/usbstick
...

どうしてこれなの?

答え1

短い答え: ブロックサイズ

より詳しい回答: USB ドライブのブロック サイズは、ハード ドライブよりも大きい可能性があります。ファイル システムは、その性質上、ブロックの一部のみを使用することができないため、データ量がブロック サイズのほんの一部であっても、ブロック全体が使用されます。

あなたがおっしゃるように、「ASCII テキスト ファイルの束」を持っているので、通常は非常に小さいため、問題がさらに深刻化します。たとえば、ブロック サイズが 16Kb の場合、実際のサイズに関係なく、ファイルは少なくともその大きさのスペースを占有します。

次のコマンドでパーティションのブロック サイズを確認できます (root が必要です)。

blockdev --getbsz /dev/XXXX

....ここで、XXX はパーティションのデバイス ノードです。

関連情報