ไม่สามารถเขียนค่าศูนย์ไปยังส่วนที่ไม่ดี / ฮาร์ดดิสก์ไม่นับส่วนที่จัดสรรใหม่


10

ฉันมีไดรฟ์ที่รายงานว่าส่วนที่ค้างอยู่ปัจจุบันคือ "45" ฉันได้ใช้badblocksเพื่อแจ้งภาคและผมได้พยายามที่จะเขียนเลขศูนย์พวกเขาพร้อมด้วยDD

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

อย่างไรก็ตามในดิสก์นี้ทั้ง Reallocated_Sector_Ct และ Reallocated_Event_Count ค่าดิบคือ 0 และddล้มเหลวด้วยข้อผิดพลาด I / O เมื่อฉันพยายามเขียนเลขศูนย์ไปยังเซกเตอร์เสีย ddทำงานได้ดี แต่เมื่อฉันเขียนถึงภาคที่ดี

# dd if=/dev/zero of=/dev/sdb bs=512 count=1 seek=217152
dd: error writing ‘/dev/sdb’: Input/output error

นี่หมายความว่าไดรฟ์ของฉันในบางวิธีไม่มีส่วนสำรองที่จะใช้สำหรับการจัดสรรใหม่หรือไม่? ไดรฟ์ของฉันเป็นเพียงคนทั่วไปที่น่ากลัว? (ไดรฟ์ไม่ได้เป็นของฉันจริง ๆ ฉันกำลังช่วยเพื่อนออกพวกเขาอาจเพิ่งได้ไดรฟ์ราคาถูกหรืออะไรซักอย่าง)

ในกรณีที่มีความเกี่ยวข้องนี่คือผลลัพธ์ของsmartctl -i :

Model Family:     Western Digital Caviar Green (AF)
Device Model:     WDC WD15EARS-00Z5B1
Serial Number:    WD-WMAVU3027748
LU WWN Device Id: 5 0014ee 25998d213
Firmware Version: 80.00A80
User Capacity:    1,500,301,910,016 bytes [1.50 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Fri Oct 18 17:47:29 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

อัปเดต:
ฉันได้เรียกใช้shredบนดิสก์ซึ่งทำให้ Current_Pending_Sector เป็นศูนย์ อย่างไรก็ตาม Reallocated_Sector_Ct และ Reallocated_Event_Count ยังคงเป็นศูนย์และตอนนี้ dd สามารถเขียนข้อมูลไปยังเซกเตอร์ที่ไม่สามารถทำได้ก่อนหน้านี้ นี่ทำให้ฉันมีคำถามอื่น ๆ :

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

  • เหตุใดที่ทำให้ชิ้นส่วนถูกจัดสรรใหม่และไม่ใช่ dd ข้อเท็จจริงที่ว่า shred เขียนข้อมูลแบบสุ่มแทนที่จะเป็นเพียงแค่ศูนย์สร้างความแตกต่างหรือไม่?


ค่า SMART อื่น ๆ เป็นอย่างไร? เป็นUncorrectable Sector Countมากกว่าศูนย์?
Synetech

Offline_Uncorrectable ซึ่งฉันสมมติว่าเป็นสิ่งเดียวกันมีค่าดิบเท่ากับ 25
MetaNova

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

ขอบคุณสำหรับคำตอบของคุณ คำถามหลักของฉันอาจจะต้องเป็นเพราะเหตุใดจึงไม่สามารถจัดสรรภาคเหล่านั้นใหม่ได้ ไม่ควรที่จะตรวจสอบว่าเซกเตอร์ไม่ดีหลีกเลี่ยงพวกมันให้กลายเป็นโมฆะจัดสรรใหม่และดำเนินการต่อหรือไม่ ฉันไม่ได้กังวลเกี่ยวกับข้อมูลใด ๆ บนดิสก์เพราะมันถูกกำจัดไปนานแล้ว เพื่อนของฉันไม่อยากมีที่ทับกระดาษ 1.5TB ถ้าพวกเขาสามารถหลีกเลี่ยงได้
MetaNova

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

คำตอบ:


9

ไดรฟ์ WD15EARS (และไดรฟ์อื่น ๆ ที่เพิ่งผลิตล่าสุด) ใช้รูปแบบขั้นสูงซึ่งหมายความว่าขนาดเซกเตอร์กายภาพที่แท้จริงของไดรฟ์นี้คือ 4 KiB และขนาดเซกเตอร์ 512 ไบต์ดั้งเดิมนั้นเพิ่งถูกจำลอง ด้วยเหตุนี้ถ้าเซกเตอร์กายภาพ 4 KiB เดียวไม่ดีเซ็กเตอร์ที่สอดคล้องกันทั้งหมด 8 ไบต์ที่มีขนาด 512 ไบต์จะไม่สามารถอ่านได้ในคราวเดียว

( Sector Size: 512 bytes logical/physicalเอาต์พุตจากsmartctlไม่ถูกต้องเนื่องจากไดรฟ์ WD15EARS บางตัวรายงานขนาดเซกเตอร์กายภาพผิด  - ดูเหมือนว่าไดรฟ์ของคุณมีรุ่นเฟิร์มแวร์ซึ่งแตกในแง่นั้น)

นอกจากนี้เมื่อมีการเขียนเซกเตอร์ 512- ไบต์ที่จำลองไว้แล้วไดรฟ์รูปแบบขั้นสูงจำเป็นต้องอ่านเซกเตอร์กายภาพทั้ง 4 KiB จริง ๆ เปลี่ยนส่วนที่เกี่ยวข้อง 512 ไบต์ของมันจากนั้นเขียนเซกเตอร์กายภาพทั้งหมดลงในสื่อ หากสื่อดีการดำเนินการอ่าน - แก้ไข - เขียนนี้จะทำให้เกิดการชะลอตัวอย่างมีนัยสำคัญเมื่อเทียบกับไดรฟ์ที่มีเซกเตอร์ฟิสิคัลจริงขนาด 512 ไบต์ อย่างไรก็ตามหากเซกเตอร์กายภาพ 4 KiB ไม่ดีและไม่สามารถอ่านได้การดำเนินการเขียนใด ๆ ที่ไม่ได้เขียนเซกเตอร์ใหม่ทั้งหมดจะล้มเหลว ด้วยเหตุนี้คุณจึงไม่สามารถบังคับจัดสรรภาคส่วนใหม่ให้กับไดรฟ์ดังกล่าวที่ใช้ddด้วยbs=512 count=1 - คุณต้องใช้อย่างน้อยที่สุดbs=512 count=8และตรวจสอบให้แน่ใจว่าหมายเลขภาคในseek= ตัวเลือกมีค่าเท่ากับ 8 (ซึ่งถือว่าว่าไม่ได้ติดตั้งจัมเปอร์“ Windows XP Compatible” ไว้มิฉะนั้นจะต้องคำนึงถึงการจัดตำแหน่งออฟเซ็ตที่เพิ่มโดยจัมเปอร์นี้ด้วย)

อีกเหตุผลที่บังคับให้จัดสรรใหม่ด้วยddอาจล้มเหลวก็คือโดยค่าเริ่มต้น Linux ใช้แคชในชั้นเลเยอร์บล็อกเพื่อเข้าถึงอุปกรณ์บล็อกและสิ่งนี้อาจทำให้การดำเนินการอ่าน - แก้ไข - เขียนในซอฟต์แวร์ซึ่งจะล้มเหลวเมื่อพบเซกเตอร์ที่อ่านไม่ได้ คุณสามารถเพิ่มoflag=directตัวเลือกในการข้ามแคชนี้สำหรับอุปกรณ์ที่ระบุโดยof=...(นอกจากนี้ยังมีiflag=directตัวเลือกซึ่งใช้กับอุปกรณ์อินพุต)


ขอบคุณขอบคุณขอบคุณนี่เป็นประโยชน์มาก ฉันอ่านฉลากบนไดรฟ์และมีข้อความว่า "ฟอร์แมตล่วงหน้า" ฉันรู้ว่านั่นหมายถึงอะไรในตอนนี้ ... คุณมีความคิดเกี่ยวกับไดรฟ์ที่ไม่ได้รายงานภาคที่จัดสรรใหม่หรือไม่?
MetaNova

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

สำหรับผู้ที่ไม่สนใจข้อมูลใด ๆ บนดิสก์และไม่ต้องการค้นหารายการเซ็กเตอร์หรือทำคณิตศาสตร์นับเซกเตอร์เพียงแค่ดิสก์ทั้งหมดที่มีขนาดบล็อกเป็น 4KiB หลายเท่าเช่น 16MiB จากนั้นใช้ขนาดบล็อก 4KiB สำหรับส่วนสุดท้ายของดิสก์ที่เล็กกว่าขนาดบล็อกที่เลือกไว้ก่อนหน้านี้
BeowulfNode42

0

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

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