dd
หรือแอปพลิเคชันอื่น ๆ ไม่มี "การตรวจสอบในตัว" ในแง่ที่คุณอาจคิดว่า: มันไม่อ่านข้อมูลจากสื่อบันทึกข้อมูลเพื่อเปรียบเทียบกับสิ่งที่เขียน นั่นคืองานของระบบปฏิบัติการ
มันเป็นไปไม่ได้จริงๆที่จะทำการตรวจสอบการอ่านลงไปที่ฮาร์ดแวร์จากแอปพลิเคชัน มันจะใช้งานได้ในบางสถานการณ์ แต่โดยส่วนใหญ่แล้วจะไม่ประสบความสำเร็จ แอปพลิเคชันสามารถอ่านสิ่งที่เพิ่งเขียนถ้ามันเขียนโดยตรงไปยังสื่อเก็บข้อมูลแต่โดยทั่วไปแล้วจะอ่านกลับจากแคชในหน่วยความจำซึ่งจะไม่ให้ความมั่นใจที่เป็นประโยชน์ใด ๆ ในตัวอย่างที่คุณกล่าวถึง , dd
การเขียนไปยังท่อและในกรณีที่มีการควบคุมสิ่งที่เกิดขึ้นกับข้อมูลที่ต่อสายลงไม่มี ในตัวอย่าง rsync ของคุณรหัสผ่านที่สองของrsync --checksum
ไม่มีประโยชน์: ในทางทฤษฎีแล้วมันสามารถจับข้อผิดพลาดได้ แต่ในทางปฏิบัติหากเกิดข้อผิดพลาดขึ้นรอบที่สองอาจจะไม่รายงานสิ่งผิดพลาดดังนั้นคุณจึงต้องพยายามทำบางสิ่งที่ไม่ได้ให้การรับรองที่มีประโยชน์
อย่างไรก็ตามแอปพลิเคชันจะตรวจสอบสิ่งที่เกิดขึ้นกับข้อมูลในแง่ที่ว่าพวกเขาตรวจสอบว่าระบบปฏิบัติการยอมรับความรับผิดชอบต่อข้อมูลแล้ว การเรียกระบบทั้งหมดส่งคืนสถานะข้อผิดพลาด หากการเรียกของระบบส่งคืนสถานะข้อผิดพลาดแอปพลิเคชันควรเผยแพร่ข้อผิดพลาดนั้นให้กับผู้ใช้โดยทั่วไปโดยแสดงข้อความข้อผิดพลาดและส่งคืนสถานะการออกที่ไม่ใช่ศูนย์
ระวังว่าdd
เป็นข้อยกเว้น: ขึ้นอยู่กับพารามิเตอร์บรรทัดคำสั่งที่อาจละเว้นข้อผิดพลาดบางอย่างdd
นี่เป็นสิ่งที่ผิดปกติอย่างยิ่ง: dd
เป็นคำสั่งทั่วไปที่มีคุณสมบัตินี้เท่านั้น ใช้cat
แทนdd
ว่าทางคุณทำไม่ได้ความเสียหายความเสี่ยงและมันอาจจะดีได้เร็วขึ้น
ในห่วงโซ่ของการคัดลอกข้อมูลข้อผิดพลาดสองชนิดสามารถเกิดขึ้นได้
- ความเสียหาย: บิตถูกพลิกในระหว่างการถ่ายโอน ไม่มีวิธีการตรวจสอบสิ่งนี้ในระดับแอปพลิเคชันเพราะถ้าเกิดขึ้นนั่นเป็นเพราะข้อผิดพลาดในการเขียนโปรแกรมหรือข้อผิดพลาดของฮาร์ดแวร์ที่มีแนวโน้มสูงที่จะทำให้เกิดความเสียหายแบบเดียวกันเมื่ออ่านกลับ วิธีเดียวที่มีประโยชน์ในการตรวจสอบว่าไม่มีความเสียหายเกิดขึ้นคือการยกเลิกการเชื่อมต่อสื่อบันทึกและลองอีกครั้งโดยเฉพาะอย่างยิ่งในคอมพิวเตอร์เครื่องอื่นในกรณีที่เกิดปัญหากับ RAM
- การตัดปลาย: ข้อมูลทั้งหมดที่คัดลอกถูกคัดลอกอย่างถูกต้อง แต่ข้อมูลบางส่วนไม่ถูกคัดลอกเลย หนึ่งนี้เป็นมูลค่าการตรวจสอบบางครั้งขึ้นอยู่กับความซับซ้อนของคำสั่ง คุณไม่จำเป็นต้องอ่านข้อมูลเพื่อทำสิ่งนั้น: เพียงตรวจสอบขนาด