คำถามที่ 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 ของฉัน แต่พวกเขาก็สำรองข้อมูลตามกำหนดเวลาเพื่อที่ฉันจะสามารถจัดการกับความล้มเหลวทั้งหมดโดยไม่เจ็บปวด