แทนที่จะใช้ cryptsetup + shred ฉันใช้ cryptsetup + pv (cat ควรทำงานแทน pv ด้วย แต่จะไม่ให้ข้อมูลความคืบหน้าใด ๆ ) และชี้ stdin ไปที่ /dev/zero:
cryptsetup เปิด /dev/device eld --type ธรรมดา --cipher aes-xts-plain64
</dev/zero pv >/dev/mapper/eld
สิ่งนี้มีข้อได้เปรียบ (เมื่อเทียบกับ dd) ที่ไม่จำเป็นต้องระบุอาร์กิวเมนต์ที่คลุมเครือ และประสิทธิภาพการทำงานบนลิงก์ SATA 3.3 6Gb/s นั้นดี (>200MiB/s)
pv ยังคงล้มเหลวเมื่อถึงจุดสิ้นสุด แต่ฉันได้ตรวจสอบแล้วว่ามันเขียนทับอุปกรณ์ลอจิคัลทั้งหมดด้วยเลขศูนย์ ซึ่งหมายความว่า dm-crypt เขียนทับฮาร์ดไดรฟ์ทั้งหมดด้วยไบต์สุ่มหลอก
ขณะนี้สามารถตรวจสอบข้อผิดพลาดของฮาร์ดไดรฟ์ได้อย่างน้อยสองวิธี:
1. มองหาข้อมูล SMART ที่ลดลง (เช่น ภาคที่จัดสรรใหม่) ในผลลัพธ์ของ
smartctl -a /dev/device
2.อ่านข้อมูลจาก /dev/mapper/eld และตรวจสอบว่าไบต์ที่อ่านทั้งหมดมีค่าเป็นศูนย์ เรียกใช้คำสั่ง cmp จาก diffutils เพื่อทำการเปรียบเทียบนี้:
cmp -l -b /dev/zero /dev/mapper/eld
มันจะพิมพ์ที่อยู่ไบต์ของรายการที่ไม่ตรงกันครั้งแรกและออกด้วยข้อผิดพลาด หรือไม่พบรายการที่ไม่ตรงกัน จากนั้นจะพิมพ์ "cmp EOF บน /dev/mapper/eld ..." (และยังคงออกโดยมีข้อผิดพลาด)
ไม่ตรงกันหมายความว่าฮาร์ดไดรฟ์มีความล้มเหลวอย่างถาวรในการบันทึกที่ตำแหน่งนั้น หรืออาจเป็นข้อผิดพลาดแบบสุ่มที่จะไม่ทำซ้ำในตำแหน่งเดิมทุกประการ
ในการเรียกใช้ cmp ครั้งแรก ฉันได้รับข้อผิดพลาดหลังจากผ่านไป 8 วินาที ซึ่งฉันประหลาดใจมากที่เห็น ข้อมูล SMART ไม่แสดงการลดระดับใดๆ และ syslog ไม่แสดงข้อความแสดงข้อผิดพลาดเกี่ยวกับฮาร์ดไดรฟ์
จากนั้นฉันพยายามเรียกใช้คำสั่ง cmp อีกครั้งเพื่อตรวจสอบว่าข้อผิดพลาดในการบันทึกเป็นจริงหรือไม่ แต่ตำแหน่งที่ไม่ตรงกันนั้นไม่เกิดขึ้นอีก มันเป็นข้อผิดพลาดแบบสุ่มในกระบวนการอ่าน + ประเมินทั้งหมด ดังนั้นอย่าพึ่งพาคำสั่ง cmp เพียงครั้งเดียว ในกรณีที่พบไม่ตรงกันให้เรียกใช้อีกครั้ง หากข้อผิดพลาดหายไป ให้ไม่ต้องสนใจข้อผิดพลาดแรกหรือลองอีกครั้ง หากข้อผิดพลาดยังคงอยู่ ให้ส่งคืนฮาร์ดไดรฟ์ให้กับผู้ขายเนื่องจากอาจมีข้อบกพร่องมากที่สุด และการเสื่อมสภาพตามเวลาอาจเร็วกว่าฮาร์ดไดรฟ์ปกติ
.