Kapan dd cocok untuk menyalin data? (atau, ketika dibaca () dan tulis () parsial) menunjukkan peringatan penting saat menggunakan count
: dd
dapat menyalin blok parsial, sehingga ketika diberikan count
akan berhenti setelah jumlah blok yang diberikan, bahkan jika beberapa blok tidak lengkap. Karena itu Anda mungkin berakhir dengan lebih sedikit dari bs * count
byte yang disalin, kecuali jika Anda tentukan iflag=fullblock
.
Ukuran blok default untuk dd adalah 512 byte. count
adalah batas; sebagai pertanyaan Anda mengisyaratkan itu tidak diperlukan ketika menyalin perangkat ukuran terbatas, dan benar-benar dimaksudkan untuk menyalin hanya sebagian perangkat.
Saya pikir ada dua aspek yang perlu dipertimbangkan di sini: kinerja dan pemulihan data.
Sejauh menyangkut kinerja, Anda idealnya menginginkan ukuran blok setidaknya sama dengan, dan kelipatan, ukuran blok fisik yang mendasarinya (karenanya 2048 byte saat membaca CD-ROM). Bahkan saat ini Anda juga dapat menentukan ukuran blok yang lebih besar untuk memberikan sistem caching yang mendasarinya kesempatan untuk melakukan buffer untuk Anda. Tetapi meningkatkan ukuran blok berarti dd
harus menggunakan lebih banyak memori, dan itu bisa menjadi kontra-produktif jika Anda menyalin melalui jaringan karena fragmentasi paket.
Sejauh menyangkut pemulihan data, Anda dapat mengambil lebih banyak data dari hard disk yang gagal jika Anda menggunakan ukuran blok yang lebih kecil; inilah yang dilakukan oleh program seperti dd-rescue
itu secara otomatis: mereka membaca blok besar pada awalnya, tetapi jika blok gagal mereka membacanya kembali dengan ukuran blok yang lebih kecil. dd
tidak akan melakukan ini, itu hanya akan gagal seluruh blok.
dd bs=4m iflag=fullblock
vsdd bs=1111
dan perhatikan tingkat data yang jauh lebih tinggi yang diberikan mantan. Ini karena yang pertama sejajar dengan ukuran blok alami pada kartu SD, sedangkan yang terakhir membutuhkan pengontrol SD untuk melakukan banyak membaca, menyalin dan merenungkan untuk menulis blok fisik parsial. Pentingnyafullblock
tidak boleh diremehkan, omong-omong, karena tanpa itu,bs
hanya pembacaan yang maksimal dan parsial dapat menyebabkan ketidakselarasan berikutnya yang persisten.