ddがディスクにデータを書き込む方法

ddがディスクにデータを書き込む方法
$ dd if=BIN of=/dev/mmcblk0 bs=1k seek=1; sync

39+0 records in

39+0 records out

39936 bytes (40 kB, 39 KiB) copied, 0.000348317 s, 115 MB/s

ディスクへの書き込みが開始からサイズまでどのように行われるのか、ここで少し混乱していますdd。合計サイズは 1024 (1k) バイトになると考えており、seek=1 を使用したため、1*1024 は開始も 1024 になることを意味します。

サマリーはブロック 1024 から始まり、合計 1024 バイトまでカウントされますが、40K と表示されます。何か助けになりますか?

答え1

カウントを指定しなかったため、dd は入力全体を読み取ります。カウントを指定します。例:

dd if=BIN of=/dev/mmcblk0 bs=1k count=1 seek=1; sync

これにより、サイズ 1k のブロックが 1 つ書き込まれるはずです。(また、シークによって dd が最初の 1024 バイトをスキップすることに注意してください。これは意図されたもの、必要なことでしょうか?)

関連情報