วิธีแก้ไข Bad Sector ของฮาร์ดไดรฟ์


17

ฉันพยายามแก้ไขฮาร์ดไดรฟ์ของฉันโดยใช้ Ubuntu แต่ฉันพบข้อผิดพลาดและไม่ทราบวิธีดำเนินการต่อ ฉันต้องแก้ไขเซกเตอร์ที่ไม่ดีของฉัน

fsck /dev/sdb  
fsck from util-linux 2.20.1  
e2fsck 1.42.5 (29-Jul-2012)  
fsck.ext2: Permission denied while trying to open /dev/sdb  
You must have r/w access to the filesystem or be root  

1
ข้อความที่คุณวางดูเหมือนจะไม่เกี่ยวข้องกับคำถามของคุณคุณช่วยอธิบายได้ไหม?
thomasrutter

คำตอบ:


22

ภาคที่ไม่ดีในไดรฟ์เป็นสัญญาณของความเสียหายถาวรให้ไดรฟ์ หากคุณไม่มีเหตุผลที่จะเชื่อว่าไดรฟ์ของคุณทำเครื่องหมายว่าส่วนเหล่านี้ไม่ถูกต้องคุณจะไม่สามารถ "แก้ไข" ได้

หมายความว่าส่วนหนึ่งของไดรฟ์ของคุณเสียหายจนไม่สามารถอ่านและ / หรือเขียนได้อย่างน่าเชื่อถือ

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

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

ตอนนี้สำหรับข้อความแสดงข้อผิดพลาดที่คุณได้วางไว้ในคำถามของคุณ (เช่นที่ฉันเขียนนี้) ข้อผิดพลาดนั้นไม่เกี่ยวข้องกับเซ็กเตอร์ที่ไม่ดี หมายความว่าคุณไม่สามารถเข้าถึงไดรฟ์ ความเป็นอยู่sudoสามารถทำให้คุณเข้าถึงได้ดังนั้น:

sudo fsck /dev/sdb

แต่นี้ยังคงอาจจะไม่ได้สิ่งที่คุณต้องการเพราะ dev / sdb / หมายถึงไดรฟ์ทั้งหมดในขณะที่fsckถูกออกแบบมาเพื่อการทำงานในระบบไฟล์ซึ่งมักจะมี ( แต่ไม่เสมอและคุณอาจจะมีข้อยกเว้นที่นี่) วางไว้ในพาร์ทิชัน หากข้างต้นไม่ได้ผลคุณอาจต้องการทำเช่นนี้กับพาร์ติชันที่ 1 ของไดรฟ์นั้นแทน:

sudo fsck /dev/sdb1

คุณสามารถรับรายการพาร์ติชั่นต่อไดรฟ์ด้วย:

sudo fdisk -l

7
อาจเป็นเพียงบล็อกที่ไม่ดี ไม่สามารถอ่านข้อมูลได้ทั้งหมด หลังจากทำการแมปใหม่บล็อกไดรฟ์น่าจะดีสำหรับอีกสามปี ดังนั้นประสบการณ์ของฉันไป
Zan Lynx

HDD ที่มีเซกเตอร์เสียนั้นมีโอกาสมากที่จะล้มเหลวในเวลาใด ๆ มากกว่าฮาร์ดไดรฟ์ที่ไม่เคยมีเซกเตอร์เสีย ประสบการณ์ของคุณมีไดรฟ์กี่ตัว ฉันจะยังคงเรียกมันว่าเป็นการพนันที่ใหญ่กว่า
thomasrutter

มีโอกาสมากขึ้น? แน่ใจ แต่มันจะไม่ถึงวาระทันที มากขึ้นอยู่กับสาเหตุที่บล็อกนั้นเสีย อย่างที่ฉันบอกไปฉันมีไดรฟ์ที่ทำการแมปบล็อกที่ไม่ดีอย่างช้า ๆ ตลอดช่วงอายุของพวกเขาและค่อยๆทำงานต่อไป
Zan Lynx

it isn't immediately doomed- คุณไม่มีทางรู้หรือรับรองได้ว่า ในบางกรณีมันอาจจะเป็น So much depends on why that block went bad- มันเป็นไปไม่ได้ที่จะหาสาเหตุได้อย่างน่าเชื่อถือโดยไม่ต้องเปิดมันและทำลายมันอย่างมีประสิทธิภาพ อย่างที่ฉันบอกไปว่ามันเป็นความเสี่ยงที่เพิ่มขึ้นเสมอ หากคุณพอใจกับความเสี่ยงดังกล่าวฉันก็ไม่มีปัญหา เวลาส่วนใหญ่อาจถึง> 90% ของเวลาไดรฟ์จะไม่ล้มเหลวอย่างรวดเร็วหลังจากพบเซกเตอร์เสียและในบางกรณีอาจใช้เวลานานหลายปี เก็บสำรองข้อมูลที่ดีและความล้มเหลวในอนาคตจะไม่ทำร้ายมาก
thomasrutter

1
กล่าวว่า "ดิสก์ถูกเมาท์" และไม่ทำอะไรเลย
Dims

21

กล่าวโดยย่อ : บูตระบบช่วยเหลือและใช้แบดบล็อค :

badblocks -svn /dev/sda

เพื่อให้ตัวควบคุมฮาร์ดดิสก์แทนที่บล็อกเสียด้วยบล็อกสำรอง

ผมได้ตอบคำถามเดียวกันในรายละเอียดที่นี่


4
คุณอาจต้องการใช้สิ่งนี้โดยทางอ้อมกับ-cตัวเลือกของ fsck AFAIK ที่ใช้badblocksสแตนด์อโลนจะไม่เปลี่ยนพฤติกรรมของสิ่งใดมันจะรายงานเฉพาะที่บล็อกที่ไม่ดีอยู่ แน่นอนว่าเฟิร์มแวร์ของไดรฟ์นั้นอาจปรับเปลี่ยนพฤติกรรมของมันได้อย่างชัดเจนเมื่อวางในลักษณะรูปแบบการใช้งานbadblocksแต่แน่นอนว่าสิ่งนี้จะขึ้นอยู่กับไดรฟ์
อะมี

1
ในฐานะผู้ใช้ใหม่คุณต้องได้รับ "ชื่อเสียง" ก่อนที่จะได้รับอนุญาตให้ทำกิจกรรมบางอย่างบนไซต์นี้ ดังนั้นจึงเป็นไปไม่ได้ที่จะทำซ้ำสิ่งนี้ ยังคงเป็นคำถามที่สมควรได้รับคำตอบ เนื่องจากบล็อกที่ไม่ดีเป็นปัญหาของฟิสิคัลดิสก์ (ตรวจสอบค่า SMART ระบบไฟล์จะไม่ได้รับผลกระทบโดยตรงมันอาจได้รับความเสียหายเนื่องจากข้อมูลสูญหายดังนั้นการทำ fsck จึงเป็นความคิดที่ดีเช่นเดียวกับคำถามดั้งเดิมเกี่ยวกับวิธีการ "ซ่อมแซม" บล็อกที่ไม่ดีนี่คือคำตอบ
user228505

@ ในกรณีที่เอกสารระบุว่าพฤติกรรมจะเปลี่ยนแปลงที่นี่: "เรียกใช้ sudo badblocks -n บนชื่ออุปกรณ์เพื่อเรียกใช้ด้วยตัวเองและรายงาน badblocks ในเทอร์มินัลของคุณคุณสามารถใช้ตัวเลือก -w เพื่อใช้การทดสอบโหมดการเขียน แต่อย่าใช้ตัวเลือก -n และ -w ร่วมกันเนื่องจากเป็นเอกสิทธิ์เฉพาะบุคคลคุณไม่ควรใช้ตัวเลือก -w บนไดรฟ์ข้อมูลที่มีข้อมูลเนื่องจากจะลบทุกอย่างที่สะอาดใช้ที่ช้ากว่า -n ตัวเลือกเนื่องจากมันจะเก็บรักษาข้อมูลของคุณในกรณีนี้ตัวเลือก -w นั้นใช้ได้กับไดรฟ์ที่คุณไม่ต้องกังวลเกี่ยวกับการลบ "
Webwoman

13

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

ตอนนี้เลื่อนไปข้างหน้า 20 ปีหรือมากกว่านั้นและผู้ผลิตฮาร์ดดิสก์ซ่อนความจริงที่ว่าดิสก์ใหม่มีบล็อคที่ไม่ดีกับเฟิร์มแวร์เมื่อคุณซื้อดิสก์ใหม่มันจะมีบล็อคที่น่าจะเป็นทั้งหมดอยู่แล้ว แมปพวกเขาออกจากชุดกระบอกสูบสำรองที่มี แต่สิ่งนี้จะเกิดขึ้นเฉพาะเมื่อมีการดำเนินการเขียนที่เซกเตอร์นั้นและอัลกอริธึม ECC ตรวจจับความล้มเหลวของบิตจากนั้นจะแมปบล็อกนั้นออก ดังนั้นการย้อนกลับไปยังจุดที่คุณสามารถบังคับให้ไดรฟ์ทำการแมปแบดบล็อคโดยใช้ DD เช่น / [แก้ไข: ตัวอย่างต่อไปนี้ได้รับการแก้ไขเพื่อป้องกันการทำลายไดรฟ์โดยไม่ตั้งใจ: ลบอักขระตัวแทนแทนที่ X]

dd if=/dev/zero of=/dev/sdX bs=1M 

เห็นได้ชัดว่าการเปลี่ยนแปลงของ = target เพื่อสะท้อนถึงไดรฟ์ที่คุณต้องการให้เป็นศูนย์นี่เป็นวิธีที่เร็วที่สุดในการแมปข้อบกพร่องของไดรฟ์ใหม่อีกทั้งยังเป็นวิธีที่เร็วที่สุดในการทิ้งขยะทั้งหมดในการติดตั้ง Linux จากนั้นตรวจสอบอีกครั้งก่อนที่คุณจะกดปุ่ม Enter คุณสามารถเพิ่มขนาดของขนาดบล็อกในคำสั่ง dd เพื่อปรับให้เหมาะสมการอ่าน / เขียนและอาจทำให้สิ่งต่าง ๆ เร็วขึ้น แต่มีผลตอบแทนลดลงหลังจากจุด ฉันพบว่าระหว่าง 1M ถึง 8M นั้นดีที่สุดสำหรับฉัน

คุณจะได้ DD ที่เขียนแค่เซกเตอร์หนึ่งเซ็กเตอร์ที่แย่ ... เพื่อให้แมปใหม่ดังนั้นคุณไม่จำเป็นต้องสำรองข้อมูลไดรฟ์ของคุณ แต่นั่นคือกาต้มน้ำปลาและรูเล็ตรัสเซียต่าง ๆ ถ้าคุณไม่รู้แน่ชัด คุณกำลังทำอะไรอยู่

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

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

ฉันได้รับการฟื้นฟูหลายร้อยไดรฟ์เช่นนี้และพวกเขาอาศัยอยู่เป็นเวลาหลายปีหลังจากนั้นเซกเตอร์ที่ไม่ดีไม่จำเป็นต้องตายจากการขับรถ


ฉันเคยใช้วิธีนี้มาก่อน แต่ไม่เคยรู้เลยว่าทำไมมันถึงใช้ได้ จากไดรฟ์ส่วนใหญ่ที่มีอยู่จำนวนหนึ่งใช้เวลานานหลายปีหลังจากที่เช็ดไดรฟ์ตามที่กำหนด
MER

Ack !! สำหรับมือใหม่โปรดอย่าคัดลอกและวางสายนั้น เปลือกของคุณจะขยายสัญลักษณ์ '?' ด้วยชื่ออุปกรณ์จริงใน / dev หากคุณควรกด Enter โดยไม่ตั้งใจก่อนที่จะเปลี่ยน? คุณอาจล้างข้อมูลไดรฟ์ผิด หากคุณมีอุปกรณ์มากกว่า 1 ตัว dd อาจเกิดข้อผิดพลาด แต่ฉันไม่ต้องการทดสอบในเครื่องของฉัน
TiberiusKirk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.