คำถามที่ 1:
ตาม-b
ตัวเลือก: ขึ้นอยู่กับดิสก์ของคุณ โมเดิร์นดิสก์ขนาดใหญ่มี 4KB -b 4096
บล็อกซึ่งในกรณีนี้คุณควรตั้งค่า คุณสามารถรับขนาดบล็อกจากระบบปฏิบัติการและยังสามารถหาได้โดยการอ่านข้อมูลของดิสก์จากฉลากหรือโดยไปที่หมายเลขรุ่นของดิสก์ หาก-b
ตั้งค่าเป็นบางสิ่งที่ใหญ่กว่าขนาดบล็อกของคุณความสมบูรณ์ของbadblocks
ผลลัพธ์อาจถูกลดทอนลง (เช่นคุณอาจได้รับผลลบเท็จ: ไม่พบบล็อกที่ไม่ดีเมื่อยังคงมีอยู่) หาก-b
ตั้งค่าเป็นสิ่งที่เล็กกว่าขนาดบล็อกของไดรฟ์ความเร็วในการbadblocks
วิ่งอาจลดลงได้ ฉันไม่แน่ใจ แต่อาจมีปัญหาอื่น ๆ เกี่ยวกับการตั้งค่า-b
สำหรับบางสิ่งที่เล็กกว่าขนาดบล็อกของคุณเนื่องจากไม่ได้ตรวจสอบความถูกต้องของบล็อกทั้งหมดอาจเป็นไปได้ที่จะได้รับ false-negatives หากตั้งค่าน้อยเกินไป
-c
ตัวเลือกที่สอดคล้องกับวิธีการหลายบล็อกควรจะตรวจสอบในครั้งเดียว การอ่าน / การเขียนแบบกลุ่มโดยทั่วไป ตัวเลือกนี้จะไม่ส่งผลต่อความสมบูรณ์ของผลลัพธ์ของคุณ แต่จะมีผลกับความเร็วที่badblocks
ใช้ badblocks
จะ (ขยะ) เขียนแล้วอ่านบัฟเฟอร์ตรวจสอบซ้ำทุกบล็อก N -c
ตามที่ระบุโดย หาก-c
ตั้งค่าต่ำเกินไปสิ่งนี้จะทำให้การbadblocks
รันของคุณใช้เวลานานกว่าปกติมากเนื่องจากการเข้าคิวและประมวลผลคำขอ IO แยกต่างหากเกิดขึ้นเหนือศีรษะและดิสก์อาจกำหนดค่าใช้จ่ายเพิ่มเติมตามคำขอ หาก-c
ตั้งค่าไว้สูงเกินไปbadblocks
อาจมีหน่วยความจำไม่เพียงพอ หากสิ่งนี้เกิดขึ้นbadblocks
จะล้มเหลวอย่างรวดเร็วหลังจากเริ่มต้น ข้อควรพิจารณาเพิ่มเติมที่นี่รวมถึงการbadblocks
รันแบบขนาน: หากคุณกำลังทำงานbadblocks
เทียบกับหลายพาร์ติชันบนดิสก์เดียวกัน (ความคิดที่ไม่ดี) หรือกับหลาย ๆ ดิสก์ผ่านช่องทาง IO เดียวกันคุณอาจต้องการปรับแต่ง-c
บางสิ่งที่สูงพอสมควรเนื่องจากหน่วยความจำพร้อมใช้งานเพื่อbadblocks
ให้การทำงานแบบขนานไม่ต่อสู้เพื่อแบนด์วิดท์ IO และสามารถขนานในวิธีที่มีสติ
คำถามที่ 2:
ตรงกันข้ามกับคำตอบอื่น ๆ ที่บ่งบอกว่าการ-w
ทดสอบโหมดการเขียนนั้นไม่น่าเชื่อถือมากกว่าหรือน้อยกว่าการทดสอบการอ่าน - เขียนแบบไม่ทำลาย แต่มันรวดเร็วเป็นสองเท่าด้วยค่าใช้จ่ายในการทำลายข้อมูลทั้งหมดของคุณ ฉันจะอธิบายว่าทำไม:
ในโหมดbadblocks
ไม่ทำลายให้ทำดังนี้
- อ่านข้อมูลที่มีอยู่แล้วตรวจสอบมัน (อ่านอีกครั้งถ้าจำเป็น) และเก็บไว้ในหน่วยความจำ
- เขียนรูปแบบที่กำหนดไว้ล่วงหน้า (แทนที่ด้วย
-p
ตัวเลือก แต่มักจะไม่จำเป็น) ไปยังบล็อก
- อ่านบล็อกกลับโดยตรวจสอบว่าข้อมูลการอ่านเหมือนกับรูปแบบ
- เขียนข้อมูลต้นฉบับกลับสู่ดิสก์
- ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ แต่มันอาจจะอ่านและตรวจสอบอีกครั้งว่าข้อมูลต้นฉบับถูกเขียนเรียบร้อยแล้วและยังตรวจสอบกับสิ่งเดียวกัน
ใน-w
โหมดทำลาย ( ) badblocks
จะทำตามขั้นตอนที่ 2 และ 3 ด้านบนเท่านั้น ซึ่งหมายความว่าจำนวนการดำเนินการอ่าน / เขียนที่จำเป็นในการตรวจสอบความถูกต้องของข้อมูลจะลดลงครึ่งหนึ่ง หากบล็อกไม่ดีข้อมูลจะผิดพลาดในโหมดใดโหมดหนึ่ง แน่นอนถ้าคุณสนใจข้อมูลที่เก็บไว้ในไดรฟ์ของคุณคุณควรใช้โหมดที่ไม่ทำลายเช่นเดียวกับที่-w
จะลบข้อมูลทั้งหมดและปล่อยbadblocks
รูปแบบการเขียนลงดิสก์แทน
ข้อแม้: หากบล็อกกำลังจะแย่ แต่ยังไม่หมดไปบางคู่การตรวจสอบการอ่าน / เขียนอาจทำงานได้และบางอย่างอาจไม่ ในกรณีนี้โหมดไม่ทำลายอาจช่วยให้คุณบ่งชี้ถึง "ความอ่อนช้อย" ของบล็อกได้อย่างน่าเชื่อถือมากขึ้นเนื่องจากมันจะทำการตรวจสอบการอ่าน / เขียนสองชุด (อาจ - ดูหัวข้อย่อยในขั้นตอนที่ 4) แม้ว่าโหมดไม่ทำลายความน่าเชื่อถือมากขึ้นในทางที่เป็นเพียงน่าเชื่อถือมากขึ้นโดยบังเอิญ วิธีที่ถูกต้องในการตรวจสอบบล็อกที่ไม่ได้เลวร้ายอย่างสมบูรณ์ แต่ไม่สามารถดำเนินการอ่าน / เขียนได้badblocks
หลายครั้งคือการใช้ข้อมูลเดียวกันหลาย ๆ ครั้งโดยใช้-p
ตัวเลือก
คำถามที่ 3:
หาก SMART กำลังจัดสรรภาคใหม่คุณควรพิจารณาเปลี่ยนไดรฟ์โดยเร็ว ไดรฟ์ที่สูญเสียเซกเตอร์ไม่กี่จะไม่สูญเสียพวกเขาเสมอไป แต่สาเหตุมักเป็นไดรฟ์ที่ใช้อย่างหนักที่ได้รับสนามแม่เหล็กอ่อนหรือล้มเหลวหัว / มอเตอร์ส่งผลให้อ่าน / เขียนที่ไม่ถูกต้องหรือล้มเหลว การตัดสินใจขั้นสุดท้ายขึ้นอยู่กับคุณแน่นอน: ขึ้นอยู่กับมูลค่าของข้อมูลบนไดรฟ์และความน่าเชื่อถือที่คุณต้องการจากระบบที่คุณใช้งานคุณอาจตัดสินใจที่จะรักษามันไว้ ฉันมีไดรฟ์บางตัวที่มีบล็อกที่ไม่ดีที่รู้จักกันซึ่งกำลังหมุนด้วยคำเตือน SMART เป็นเวลาหลายปีใน fileserver ของฉัน แต่พวกเขาก็สำรองข้อมูลตามกำหนดเวลาเพื่อที่ฉันจะสามารถจัดการกับความล้มเหลวทั้งหมดโดยไม่เจ็บปวด