dd
ファイルシステムの作成に使用するイメージです。私はARM 32ビットシステムでDebian 8(Jessie)を使用しています。
私が実行したコマンドは次のとおりです。
dd if=/dev/mmcblk0 bs=1M | gzip -c > /mnt/usb/<image_name.gz>
何らかの理由で私のファイルシステムは1.3GBを占めますが、私が得たファイルは1.9GBです。オンラインで回答を検索すると、入力されていないすべてのブロックを取得するには、ddに同意します。この結論に達した方法いくつかの実験を行った。次のコマンドを実行しました。
$ cat /dev/zero > /root/zero.file
$ sync
$ rm /root/zero.file
このコマンドを実行した後にシステムを再スキャンしたところ、(df -h
)現在のファイルシステムが実際に1.9 GBを占めていることがわかりました。実際、dd createが私のために何かをしました。
「dd」を使用してソースコードの元のサイズにできるだけ近い画像ファイルサイズを取得するにはどうすればよいですか?
ベストアンサー1
ブロックデバイスが何であるかを確認してください。より簡単なファイルシステムを使用すると、実際のサイズを表示できますが、ファイルシステムはファイルに使用できる仮想の「有効な」スペースも提供できますが、rawデバイス自体にはログ、チェックサム、およびそれ以上を保存します。もう一つ。デバイスは、ファイルシステムがすべての操作を実行できる生のブロックです。重複排除、暗号化、圧縮を実行できます。この場合、報告されるファイルシステムのサイズは意味がありません。
またgzip
、すでに圧縮されているアイテムを圧縮している場合(または実際に任意のデータでいっぱいになった場合)、ファイルを大きくする可能性が高くなります。しかし、オーバーヘッドは通常見えるものよりも少ないです。