วิธีตีความเอาต์พุต badblocks


43

หน้า man สำหรับ badblock ดูเหมือนจะไม่พูดถึงความหมายของตัวเลขสามตัวในผลลัพธ์โดยเฉพาะ:

ผ่านไปแล้วพบบล็อกที่ไม่ดี 7 รายการ (ข้อผิดพลาด 7/0/01)
ผ่านเสร็จพบ 120 บล็อกที่ไม่ดี (0/0/120 ข้อผิดพลาด)

ฉันเดาว่าเป็น "ข้อผิดพลาดขณะอ่าน / เขียน / เปรียบเทียบ" ใครบางคนสามารถสอนฉันได้ไหม

คำตอบ:


45

การเดาของคุณถูกต้อง

ซอร์สโค้ดมีลักษณะดังนี้:

if (v_flag)
    fprintf(stderr,
            _("Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"),
            bb_count, num_read_errors, num_write_errors, num_corruption_errors);

ดังนั้นข้อผิดพลาดในการอ่าน / เขียน / ความเสียหาย และความเสียหายหมายถึงการเปรียบเทียบกับข้อมูลที่เขียนไว้ก่อนหน้านี้:

if (t_flag) {
    /* test the comparison between all the
       blocks successfully read  */
    int i;
    for (i = 0; i < got; ++i)
        if (memcmp (blkbuf+i*block_size,
            blkbuf+blocks_at_once*block_size,
            block_size))
            bb_count += bb_output(currently_testing + i, CORRUPTION_ERROR);
}

สมบูรณ์ ค้นหาสิ่งที่ควรจะเกิดขึ้นกับฉันในแหล่งที่มา แต่อย่างใดก็ไม่ได้ ขอบคุณ :)
Tomalak

แน่นอนว่าเป็นเหตุผลที่ไม่มีข้อความข้อผิดพลาดเคอร์เนลใน(0/0/120 errors)กรณี
Tomalak

สาเหตุที่เป็นไปได้สำหรับข้อผิดพลาดความเสียหายคือมีสิ่งอื่นเขียนลงดิสก์ขณะที่badblocksกำลังทำงานซึ่งในกรณีนี้มันจะไม่เป็นข้อผิดพลาดเลย (นอกเหนือจากข้อผิดพลาดของผู้ใช้)
frostschutz

ในกรณีนี้เป็นดิสก์ต้องสงสัยที่ฉันใช้เฉพาะกับแบดบล็อก ไม่มีกระบวนการอื่นเขียนถึงมัน มีวิธีในการเห็นภาพไฟล์ที่ส่งออกด้วยรายการเซกเตอร์ที่ไม่ดีโดยไม่ต้องคำนวณตำแหน่งของตนเอง
Tomalak

-8

ไม่ถูกต้อง. หาก badblocks พูดสิ่งที่ไม่ได้เป็น "ไม่พบข้อผิดพลาด" หมายความว่า:

  • ปิดเครื่องทันที
  • รับดิสก์ทดแทน
  • อธิษฐานเผื่อ $ GOD_OF_BACKUPS ข้อมูลสำคัญปลอดภัย
  • ทำทุกสิ่งที่จำเป็นในการตั้งค่าดิสก์ใหม่และคัดลอกข้อมูลจากดิสก์เก่า

คุณอาจเลือกที่จะเก็บดิสก์ไว้รอบ ๆ เพื่อความบันเทิงหรือเป็นที่ทับกระดาษ

(ดิสก์โมเดิร์นมีชุดของถังพิเศษสำหรับแมปบล็อกที่ไม่ดีเป็นมีวิธีการผลิตดิสก์โดยที่พวกเขาไม่ได้และผู้ใช้กรีดร้องนรกเลือดเมื่อพวกเขาเห็นรายการบล็อกเสีย. ถ้าบล็อกเสียไม่แสดงขึ้นก็หมายความว่าพื้นที่นั้น ถูกใช้หมดเนื่องจากโหมดความล้มเหลวทั่วไปของดิสก์หมุนวนเพิ่มจำนวนบล็อกที่ไม่ดีเพิ่มขึ้นเป็นทวีคูณเมื่อเห็นวิธีการบางอย่างที่โดยทั่วไปแล้วดิสก์เหลือเวลาอีกไม่กี่ชั่วโมง)


10
นั่นไม่ใช่แม้แต่คำถาม
Tomalak

1
ห้ามเรียกใช้badblocksบนดิสก์ที่มีข้อมูลสำคัญอยู่ หากดิสก์มีข้อผิดพลาดbadblocksอาจทำให้เกิดความเสียหายเป็นพิเศษแม้ในโหมดการเขียนแบบไม่ทำลายหากไม่สามารถเขียนข้อมูลต้นฉบับกลับเนื่องจากข้อผิดพลาด
frostschutz

@ frostschutz การ-nทดสอบควรเป็นแบบอ่านอย่างเดียวหรือไม่
vonbrand

3
ไม่มี-nการเขียนแบบไม่ทำลาย ดังนั้นมันจึงเขียน แต่จะกู้คืนข้อมูลดั้งเดิมหลังจากการทดสอบ ซึ่งอาจล้มเหลวเนื่องจากข้อผิดพลาด สำหรับอ่านอย่างเดียวbadblocksฉันเชื่อว่าคุณไม่ได้ใช้ตัวเลือกเลย
frostschutz

ไม่ใช่คำแนะนำที่ไม่ดี แต่ไม่เหมาะกับคำถาม คุณสามารถตอบคำถามสไตล์ตอบกลับได้
neverMind9
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.