เมื่อไหร่ที่เหมาะสำหรับการคัดลอกข้อมูล (หรือเมื่อถูกอ่าน () และเขียน () บางส่วน)ชี้ให้เห็นข้อแม้สำคัญเมื่อใช้count
: dd
สามารถคัดลอกบล็อกบางส่วนดังนั้นเมื่อได้รับcount
มันจะหยุดหลังจากจำนวนบล็อกที่กำหนดแม้ว่าบางส่วนของบล็อกไม่สมบูรณ์ คุณจึงอาจจะจบลงที่มีน้อยกว่าไบต์คัดลอกเว้นแต่คุณจะระบุbs * count
iflag=fullblock
ขนาดบล็อกเริ่มต้นสำหรับddคือ 512 ไบต์ count
มีขีด จำกัด ; ตามคำถามของคุณบอกเป็นนัย ๆ ว่าไม่จำเป็นเมื่อทำการคัดลอกอุปกรณ์ที่มีขนาด จำกัด และมีจุดประสงค์เพื่อคัดลอกเฉพาะส่วนของอุปกรณ์
ฉันคิดว่ามีสองด้านที่ควรพิจารณา: ประสิทธิภาพและการกู้คืนข้อมูล
เท่าที่เกี่ยวกับประสิทธิภาพคุณต้องการให้ขนาดบล็อกเป็นอย่างน้อยเท่ากับและขนาดบล็อกฟิสิคัลพื้นฐานหลายเท่า (2048 ไบต์เมื่ออ่านซีดีรอม) ในความเป็นจริงทุกวันนี้คุณอาจระบุขนาดบล็อกที่ใหญ่ขึ้นเพื่อให้ระบบแคชพื้นฐานมีโอกาสบัฟเฟอร์สิ่งต่าง ๆ สำหรับคุณ แต่การเพิ่มขนาดบล็อกหมายถึงdd
ต้องใช้หน่วยความจำนั้นมากขึ้นและอาจทำให้เกิดผลดีหากคุณคัดลอกผ่านเครือข่ายเนื่องจากการแยกส่วนของแพ็คเก็ต
เท่าที่เกี่ยวข้องกับการกู้คืนข้อมูลคุณอาจดึงข้อมูลเพิ่มเติมจากฮาร์ดดิสก์ที่ล้มเหลวหากคุณใช้ขนาดบล็อกที่เล็กลง นี่คือสิ่งที่โปรแกรมเช่นdd-rescue
ทำโดยอัตโนมัติ: พวกเขาอ่านบล็อกขนาดใหญ่ในตอนแรก แต่ถ้าบล็อกล้มเหลวพวกเขาอ่านมันอีกครั้งด้วยขนาดบล็อกที่เล็กกว่า dd
จะไม่ทำมันมันจะล้มเหลวทั้งบล็อก
dd bs=4m iflag=fullblock
vsdd bs=1111
และสังเกตว่าอัตราการส่งข้อมูลที่สูงขึ้นอย่างมากในอดีตจะทำให้คุณ นี่เป็นเพราะอดีตปรับขนาดบล็อกตามธรรมชาติบนการ์ด SD ในขณะที่หลังต้องการคอนโทรลเลอร์ SD เพื่อทำการอ่านคัดลอกและ reflashing เพื่อเขียนบล็อกทางกายภาพบางส่วน ความสำคัญของการfullblock
ไม่ควรมองข้ามต่ำไปbs
แต่อย่างใดการอ่านสูงสุดและการอ่านเพียงบางส่วนอาจนำไปสู่การเยื้องแนวที่ไม่เหมาะสม