ทำเครื่องหมายเซกเตอร์เสียบนฮาร์ดไดรฟ์โดยไม่ต้องจัดรูปแบบ


22

ฉันสังเกตเห็นว่าในเซิร์ฟเวอร์ Ubuntu ที่บ้านฉันมีไดรฟ์หนึ่งตัวที่อ่านได้อย่างเดียว การขุดฉันพบว่าสิ่งนี้สามารถเกิดขึ้นได้เมื่อฮาร์ดไดรฟ์มีข้อผิดพลาด ฉันใช้แบดบล็อคเพื่อตรวจสอบข้อผิดพลาดและแน่นอนว่าฉันมีเซกเตอร์ที่เสียหายบางส่วน

ในกรณีส่วนใหญ่แนวทางปฏิบัติที่สมเหตุสมผลเพียงอย่างเดียวคือพยายามสำรองข้อมูลเอา HDD ออกและซื้อใหม่ อย่างไรก็ตามเซิร์ฟเวอร์นี้ไม่มีสิ่งใดที่ฉันไม่ได้สำรองไว้ในหลาย ๆ ที่และฉันต้องการใช้จนกว่ามันจะตาย ฉันใช้สำหรับการสตรีมเพลงและใช้งานสคริปต์ง่ายๆ ไม่ว่าในกรณีใดมันจะยุ่งยากมากในการติดตั้งใหม่ทุกอย่าง

มีวิธีการทำเครื่องหมายบล็อกที่ไม่ดีเหล่านี้โดยไม่จัดรูปแบบ hdd หรือไม่?

คำตอบ:


29

ฉันถือว่าคุณกำลังพูดถึงบล็อกที่ไม่ดีทางกายภาพบนดิสก์และไม่เกี่ยวกับระบบไฟล์ที่เสียหาย

ในการตรวจสอบสภาพทางกายภาพของดิสก์คุณควรทำการติดตั้ง smartmontools

sudo apt-get install smartmontools

สิ่งนี้ทำงานได้เนื่องจากดิสก์ที่ทันสมัยทั้งหมดบันทึกสถานะสุขภาพของตนโดยใช้ระบบที่เรียกว่าSMART

ใช้smartctrlคำสั่งเพื่ออ่านสถานะนี้ ตัวอย่างเช่นการอ่านคุณสมบัติทั้งหมดจากการเรียกดิสก์ครั้งแรก

sudo smartctl --all /dev/sda

ระวังการพูดคุยเกี่ยวกับสถานะสุขภาพโดยรวม เมื่อสิ่งนี้บ่งชี้ข้อผิดพลาดเป็นไปได้มากว่าดิสก์จะล้มเหลวในไม่ช้า

SMART overall-health self-assessment test result: PASSED

บรรทัดอื่น ๆ ที่คุณต้องการตรวจสอบคือจำนวนภาคที่ค้างอยู่และส่วนที่จัดสรรใหม่

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2

รายการที่ปันส่วนมักจะอยู่ในเขตข้อมูลดิบจำนวนของเซกเตอร์เสียที่ดิสก์แลกเปลี่ยนสำหรับรายการสำรองที่ใช้งานได้ รอดำเนินการคือส่วนที่อาจถูกจัดสรรใหม่ในกรณีที่การเขียนครั้งถัดไปล้มเหลว

คุณสามารถเรียกใช้การทดสอบตัวเองของดิสก์เมื่อรุ่นของคุณรองรับ

sudo smartctl -t long /dev/sda

หากต้องการบังคับการตรวจสอบทุกภาคส่วนให้ใช้badblocksในโหมดที่เขียนข้อมูล ระวังว่าถึงแม้ว่าโดยทั่วไปแล้วมันจะปลอดภัยในการทำงาน แต่มันจะเพิ่มภาระให้กับดิสก์ของคุณซึ่งอาจทำให้พวกเขาล้มเหลว สำรองข้อมูลของคุณไว้เสมอ

sudo badblocks -svvn -c 262144 /dev/sda

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


2
อะไรคืออิทธิพลของ-cหรือจำนวนบล็อกที่ถูกทดสอบในเวลาหรือในคำอื่น ๆ ทำไมคุณถึงมีค่ามากเมื่อเทียบกับค่าเริ่มต้น 64
greole

4
ขนาดบล็อกเริ่มต้นที่ 1024 ไบต์คูณด้วยค่าเริ่มต้นของ 64 บล็อกในแต่ละครั้งจะนำไปสู่การประมวลผลเฉพาะ 64k ในแต่ละคำขอ ด้วยดิสก์ที่ทันสมัยที่มีปริมาณงานสูงถึง 150 MiB / s นี่เป็นการแนะนำค่าใช้จ่ายมากกว่าที่ฉันรู้สึกสบายใจ ฉันต้องการให้โอกาสแก่ไดรฟ์ในการประมวลผลข้อมูลอย่างมีประสิทธิภาพสูงสุดโดยไม่ต้องรอข้อมูลบนรถบัส
user228505

Says: / dev / sda เห็นได้ชัดว่ามีการใช้งานโดยระบบ ไม่ปลอดภัยที่จะเรียกใช้ badblock!
Dims

1
@Dims มันบอกให้คุณไม่เรียกใช้สิ่งนี้บนดิสก์ที่เมาท์ ถอนติดตั้งดิสก์ก่อน ในกรณีของคุณอาจเป็นไดรฟ์ระบบของคุณ ดังนั้นให้บูตระบบกู้ภัยก่อน
228505

2
@Dims มีตัวเลือกบังคับหากคุณต้องการเรียกใช้ ie sudo badblocks -svvn -c 262144 / dev / sda
ADR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.