ddは.imgに存在するよりも多くのデータをコピーしますか?

ddは.imgに存在するよりも多くのデータをコピーしますか?

私のマイクロSD(8GB)に.imgファイルを追加しようとしています。 ROM(.img)は2.66 GBですが、私のDD(ライブ)出力には送信済みとしてマークされています。9GB。 2GBの画像を9GBに変換する方法がわかりません。私はOSX Lionを実行しており、Belkinカードリーダーを使用しています。カードリーダーは問題ではなく、ディスクユーティリティを問題なく使用します。問題はddや私のカードにあると思います(私のカードではないことを願っています:()。

編集:これはファイルをコピーするために使用するコマンドです。

dd if=honey.img of=/dev/disk1 bs=1m

状態を確認するために使用するコードは次のとおりです。

killall -INFO dd

ベストアンサー1

あなたが説明する動作とファイルの性質のために、これは次のように思われます。スパースファイル。スパースファイルは、ファイル内の大量のヌルバイトシーケンスがディスクに保存されない基本的な圧縮技術です。以下は、スパースファイルを生成する例です。

$ echo a | dd seek=999999999 >sparse
0+1 records in
0+1 records out
2 bytes (2 B) copied, 6.614e-05 s, 30.2 kB/s
$ ls -l a
-rw-r--r-- 1 gilles gilles 511999999490 Apr 30 00:03 sparse
$ du sparse
16      sparse

ファイルsparseには511999999490バイト(999999999 512バイトブロック、すべてa0、2バイトの後に改行文字)が含まれています。ただし、ファイルが使用する合計ディスク容量は16kBです(最後のブロックは4kBで、他の3つのブロックには他のブロックの場所に関するメタデータのみが含まれており、すべては存在しません)。

honey.imgディスクイメージを十分に慎重に作成すると、未使用のスペースを持つディスクがまれになる可能性があります。

ファイルを読み取るときにリーンとマークするものはありません。したがって、honey.img大容量ディスクイメージの場合は、ddnullバイトのみを含むギガバイトを読み取ることができます。

ファイルでls -lおよび(またはOSXの場合)を実行すると、保存に使用されるバイト数とブロック数が表示されます。バイト数がブロック数に合わない場合、ファイルは稀です。私が書いたように、あなたはこれを確認または証明する明確なデータを発表しませんでした。duls -ls

OSXから希少ファイルを効率的にコピーできるツールは次のとおりです。同期。しかし、ここで行うことは、あるファイルシステムから別のファイルシステムにファイルをコピーするのではなく、ファイルから発生したバイトストリームをディスクにコピーすることです。これは、データが実際にターゲットディスクに収まる場合にのみ実行できます。

おすすめ記事