อุปกรณ์ส่งออกทั้งหมดจะถูกลบออกไม่ว่าขนาดของมันจะเป็นหลายเท่าของขนาดบล็อกที่คุณส่งไปdd
หรือไม่
notrunc
ธงไม่มีผลเมื่อออกเป็นแฟ้มอุปกรณ์เพราะตัดทอนแฟ้มอุปกรณ์ที่ไม่มีผล หากเอาต์พุตเป็นไฟล์ปกติจะมีผลกระทบที่ไฟล์เอาต์พุตไม่ถูกตัดทอนก่อนการเขียนซึ่งในบางระบบไฟล์หมายความว่าข้อมูลเก่าถูกเขียนทับ (เมื่อเทียบกับการเขียนบล็อกใหม่ของข้อมูลและปล่อยให้ส่วนที่เหลือไม่ได้แนบ) อย่างไรก็ตามสิ่งนี้จะไม่เป็นประโยชน์เนื่องจากคุณสมบัตินี้ไม่ได้รับการรับรองโดยระบบไฟล์ทั้งหมดและยิ่งกว่านั้นคำสั่งจะไม่เพียงเขียนทับไฟล์เท่านั้น แต่ยังเขียนต่อไปจนกว่าจะเต็มดิสก์เอาต์พุต (หรือมีข้อผิดพลาดอื่น ๆ เกิดขึ้น)
แทนการใช้dd
และกังวลเกี่ยวกับว่าคุณกำลังใช้มันอย่างถูกต้อง (ตามที่มันเกิดขึ้นก็ทำงานในกรณีนี้โดยเฉพาะ แต่ก็มีความซับซ้อนและบางครั้งก็ไม่ได้ทำงาน ) ใช้เพียงcat
cat /dev/zero >/dev/sdX
แม้จะมีความเชื่อที่ได้รับความนิยมในเว็บ แต่ก็ไม่มีเวทย์มนตร์dd
ที่ทำให้มันเหมาะกว่าที่จะเขียนลงดิสก์ ความมหัศจรรย์อยู่ใน/dev
ไฟล์ เครื่องมือใด ๆ ที่สามารถรับมือกับข้อมูลไบนารีเช่นใด ๆ ที่ทันสมัยcat
หรือhead
สามารถทำผลงานได้เช่นเดียวกับdd
ถ้าคุณกำลังผ่านธงเช่นหรือseek
skip
โปรดทราบว่าปัญหาที่ใช้ร่วมกันdd
และcat
เป็นไปได้ว่าในการดำเนินการที่ประสบความสำเร็จพวกเขาจะเกิดข้อผิดพลาดกับ“ ไม่มีพื้นที่เหลือบนอุปกรณ์” (ENOSPC) หากคุณใส่ไว้ในสคริปต์คุณจะต้องตรวจสอบว่าข้อผิดพลาดคือ ENOSPC หรือใช้วิธีอื่น วิธีการน่าเชื่อถือมากขึ้นแรกคือการกำหนดขนาดของอุปกรณ์ (เช่นใช้/proc/partitions
ภายใต้ Linux) head
แล้วเขียนว่าตัวเลขทางขวาของไบต์ด้วยเครื่องมือดังกล่าวเป็น
size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX