วิธีการระบุและแก้ไขไฟล์ด้วยบล็อกดิสก์ที่เสียหาย / ไม่สามารถเข้าถึงได้


9

ฉันมี Macbook Pro ปลายปี 2011 ใช้งาน Mavericks 10.9.2 แต่เพียงผู้เดียว HDD เป็นไดรฟ์ 750GB จัดรูปแบบด้วย Bootcamp มันยังทำงานได้ดีพอสมควร แต่ในการใช้งานการดีแฟรกเมนต์พาสบนมันฉันพบว่ามีไฟล์จำนวนมากที่ปฏิเสธที่จะถูกย้ายโดยตัวจัดเรียงข้อมูล (iDefrag)

iDefrag รายงานรหัสข้อผิดพลาด POSIX 5 เมื่อเข้าถึงไฟล์ การเลือกแบบสุ่มและพยายามคัดลอกไฟล์ไปยังตำแหน่งอื่นในเชลล์จะรายงานข้อผิดพลาดซึ่งทำให้ฉันคิดว่าปัญหาเป็นจริงและมีดิสก์ / FS เอาต์พุตของ cp คือ:

cp: unity_nophysx.nexe: Input/output error

รหัสข้อผิดพลาด 5 คือ 'การเข้าถึงถูกปฏิเสธ' เท่าที่ฉันทราบ แต่กระบวนการจัดเรียงข้อมูลกำลังทำงานในฐานะผู้ดูแลระบบและใช้งาน cp โดยใช้ sudo บนไฟล์ที่ต้องสงสัยนั้นไม่แตกต่างกัน

Disk Utility, fsck และ Apple Hardware Test ทั้งหมดอ้างสิทธิ์ในดิสก์ ไม่มีการรายงานข้อผิดพลาดของ SMART และในขณะที่มีข้อผิดพลาดเกี่ยวกับการอนุญาตบางอย่างพวกเขาไม่ได้ร้องเรียนว่าไฟล์ iDefrag บ่นและ Disk Utility อ้างว่าได้แก้ไขโดยไม่มีการร้องเรียน

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

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


ผมแนะนำให้คุณไปอ่านรายละเอียดสวยอภิปรายที่คล้ายกันใน SuperUser: superuser.com/q/148227
แดน

ผมทดสอบโชคไม่ดีบนดิสก์ที่มีสุขภาพดี :) volitans-software.com/smart_utility.php ดูเหมือนว่าเป็นเครื่องมือที่เรียบง่ายและจริงจัง คุณอาจลองใช้และส่วนใหญ่จะตรวจสอบตัวนับ "ส่วนที่จัดสรรใหม่"
แดน

คำตอบ:


9

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

  1. ทำการสำรองข้อมูลเต็มรูปแบบของดิสก์ของคุณด้วยTime MachineหรือCarbon Copy Cloner

    ตรวจสอบข้อมูลสำรองนี้

  2. เรียกใช้งานหนักและมีความเสี่ยงต่อไปนี้ (ในกรณีที่คุณมีบล็อกเสียนอกคำสั่งโครงสร้างระบบแฟ้มของคุณ) (ตรวจสอบให้แน่ใจว่ามีการอ้างอิง {} เพื่อให้ชื่อไฟล์ที่มีช่องว่างทำงาน):

    find / -type f -print -exec dd if="{}" of=/dev/null bs=1m \;
    

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

เมื่อ hiting ไฟล์แรกที่มีบล็อกเสียนี้findจะทำให้เกิดเคอร์เนลเพื่อเข้าสู่ระบบread errorใน/var/log/system.logและมันอาจจะช้าลงหรือนำระบบของคุณต้องหยุดชะงักทั้งหมด สิ่งนี้ส่วนใหญ่จะขึ้นอยู่กับความจุของฮาร์ดไดรฟ์เพื่อย้ายบล็อกที่ไม่ดีที่พบในพูลภายในของมันซึ่งมีไว้สำหรับงานแก้ไขตามปกตินี้ findแฟ้มนี้มีบล็อกเสียจะเป็นชื่อสุดท้ายที่พิมพ์โดย

เขียนชื่อไฟล์นี้ลงบนกระดาษ! สมมติว่าชื่อไฟล์นี้คือ:

/.DocumentRevisions-V100/.cs/ChunkStorage/0/0/0/9

ณ จุดนี้คุณอาจจะมีความเป็นไปได้ที่จะฆ่าfindได้อย่างรวดเร็วโดย hiting +ctrl Cหากการฆ่ามันล้มเหลวเพียงแค่ใช้ Mac ของคุณผิดพลาด

เมื่อรีบูตเครื่อง Mac ของคุณให้ตรวจสอบไฟล์ที่มีบล็อกเสีย:

dd if='/.DocumentRevisions-V100/.cs/ChunkStorage/0/0/0/9' of=/dev/null bs=1m

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

  • หากคำสั่งไม่ยุติคุณจะไม่สามารถฆ่าได้ตามปกติข้อมูลของคุณจะสูญหายและคุณจะต้องทำ Mac ของคุณอีกครั้ง

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

เคอร์เนลจะไม่ส่งข้อผิดพลาดการอ่านบนบล็อกที่คุณไม่เคยอ่าน


อ้านี่เป็นเคล็ดลับที่ฉันคาดหวัง ผ่านครั้งแรกกับสคริปต์ find / dd แตะที่ไฟล์ / บล็อกทั้งหมดบนดิสก์และแน่ใจว่าฉันพบไฟล์จำนวนมากซึ่งให้ "ข้อผิดพลาด Input / output" และฉันสามารถส่งออกบันทึกของคำสั่งไปยังไฟล์และ จากนั้น grep เพื่อค้นหาไฟล์ที่ดัฟฟ์ ดูเหมือนว่าคำสั่ง dd นั้นไม่เพียงพอที่จะเรียกการแก้ไขอัตโนมัติใด ๆ (ฉันไม่รู้ด้วยซ้ำว่า OS X ทำอย่างนั้น) แต่อย่างน้อยมันก็ให้วิธีที่เชื่อถือได้ในการระบุไฟล์
MrCranky

ในทางบวกเมื่อระบบปฏิบัติการพยายามอ่านจากไฟล์ที่มีบล็อกที่ไม่ดีเหล่านี้มันจะไม่ผิดพลาดหรือวางสายอย่างน่ากลัว ฉันเห็นMay 10 20:42:15 ICE kernel[0]: disk0s2: I/O error.ป๊อปอัปในบันทึก แต่ไม่มีเงื่อนงำว่าไฟล์ใดเปิดขึ้นมา แต่คำสั่งก็ยังดำเนินต่อไปอย่างมีความสุข
MrCranky

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

อืมใช่ฉันเดาเอาว่า: dd เป็นเพียงเครื่องมือโง่ที่จะรีมข้อมูลทั้งหมดจากไฟล์เดียวและวางไว้ที่อื่น (ในกรณีของเราไปในอากาศ) สิ่งที่สำคัญจริงๆก็คือทุก ๆ บล็อคที่เกี่ยวข้องกับไฟล์นั้นถูกอ่าน สิ่งที่ฉันไม่ได้รับคือสิ่งที่คุณคาดหวังว่า OS X จะทำในกรณีนั้น เห็นได้ชัดว่าเคอร์เนลไม่สามารถอ่านบล็อคที่ไม่ดีเหล่านี้ได้ แต่คุณคิดว่าดิสก์สามารถทำได้และอาจแก้ไขได้? หากไม่สามารถนำข้อมูลออกจากบล็อกเสียเดิมได้มันจะย้ายไปที่อื่นอย่างไร
MrCranky

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

5

รีบูทในโหมดผู้ใช้คนเดียวโดยกดเครื่องหมายCommand+ ค้างไว้ในSระหว่างการบู๊ต เมื่อคุณเห็นพรอมต์ (ควรมีลักษณะroot #หรือสิ่งที่คล้าย), พิมพ์และกดfsck -f Returnนี่เป็นเครื่องมือตรวจสอบความสอดคล้องของระบบไฟล์ใน Mac และช่วยให้คุณค้นหาและซ่อมแซมข้อผิดพลาดกับระบบไฟล์เริ่มต้น เรียกใช้คำสั่งนี้จนกว่าคุณจะไม่เห็น**The volume [volume name] was modified.**หรือเครื่องมือล้มเหลวสามครั้งติดต่อกัน

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

สำหรับข้อมูลเพิ่มเติมที่คุณสามารถค้นหาหน้าคู่มือ fsck ที่นี่


ที่น่าสนใจ แต่ดูเหมือน fsck มากถึงแม้จะมี -f และในโหมดผู้ใช้คนเดียวก็ทำในสิ่งที่ Disk Utility ทำ เช่นเดียวกับ Disk Utility พบว่าไม่มีอะไรและคิดว่าดิสก์นั้นใช้ได้ ฉันคิดว่ามันกำลังสแกนเร็กคอร์ดระบบไฟล์ แต่ฉันคิดว่าปัญหาของฉันอยู่ที่ระดับบล็อก - นั่นคือระบบไฟล์มีโครงสร้างที่ดี แต่ไม่สามารถเข้าถึงข้อมูลจริงภายในไฟล์เมื่อมาถึงการอ่าน / คัดลอก / จัดเรียงข้อมูลพวกเขา
MrCranky

1
→ MrCranky: ถูกต้อง! fsck& Disk Utilityกำลังตรวจสอบความสมบูรณ์ของโครงสร้างระบบไฟล์ พวกเขาอ่านบล็อกดิสก์ที่จัดสรรให้กับโครงสร้างระบบไฟล์ พวกเขาไม่ได้ทำเพื่อตรวจสอบความสมบูรณ์ของการบล็อกข้อมูล ดังนั้นพวกเขาจึงสามารถเรียกใช้บนดิสก์ที่มีบล็อกที่ล้มเหลวโดยไม่มีข้อผิดพลาดในการอ่านเพิ่มขึ้น หากคุณต้องการตรวจสอบดิสก์ของคุณแม้บล็อกที่อาจผิดปกติ แต่ยังไม่ได้ใช้งานจริงให้ใช้เครื่องมือพื้นฐานdd if=/dev/disk0 of=/dev/null ibs=1kและภายในหน้าต่างเชลล์อื่นที่ทำงานtail -f /var/log/system.logอยู่ นี่คือฟรีสุดขีดและจะไม่ซ่อนข้อผิดพลาดใด ๆ
แดน

2

ฉันอยากจะแนะนำ DiskWarrior เพื่อสร้างแคตตาล็อกดิสก์และสำหรับสแกนหาไฟล์ที่อาจได้รับความเสียหาย

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


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

-1 ไม่เพียง แต่เป็นคำตอบ แต่เป็นการผสมผสานระหว่างความคิดเห็นและคำตอบ
bot47

2

จากคำตอบของ Buscar คุณสามารถทำสิ่งนี้ได้โดยอัตโนมัติโดยใช้บรรทัดคำสั่งที่ค่อนข้างหนัก

sudo find / -type f -print0  | xargs -0 -I{} dd if='{}' of=/dev/null bs=1m 2>&1 | grep 'error' >>badfiles.txt  & 
  • sudo: โหมดผู้ดูแลระบบ
  • find -print0: พา ธ สัมบูรณ์
  • xargs -0 -I {}: ทดแทน {} ในคำสั่งถัดไป
  • dd 2> & 1: เปลี่ยนเส้นทางข้อผิดพลาด std เป็น stdout
  • pipe stdout เป็น grep กำลังมองหาข้อผิดพลาดเกี่ยวกับสตริง
  • ผนวกผลลัพธ์ไปยังไฟล์รายการ ( หมายเหตุ : ควรอยู่ในสื่อบันทึกภายนอกหากคุณเชื่อว่าไดรฟ์ภายในของคุณไม่แน่นอน)

1

อย่างที่คุณพูดมันไม่ได้ชัดเจนว่าไฟล์เหล่านั้นเสียหายอย่างน้อยที่สุด Mac ของคุณก็ไม่คิดเช่นนั้น

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

ความจริงที่ว่าคุณไม่สามารถเข้าถึงหรือย้ายพวกเขาไม่ได้หมายความว่าพวกเขาได้รับความเสียหาย

โดยปกติแล้ว Mac นั้นดีในการดูแลพวกมันเอง

การใช้การบำรุงรักษาของ Apple ทำได้โดย: เปิดเทอร์มินัลแล้วพิมพ์:

sudo periodic daily weekly monthly 

ตามด้วย Return ป้อนรหัสผ่านผู้ดูแลระบบของคุณและ OS X จะดูแลทุกอย่างให้คุณ

ดูในคอนโซลสำหรับรายงานเหล่านั้นหากคุณสนใจ

ในขณะที่อยู่ในคอนโซลค้นหา (ค้นหา) สำหรับข้อผิดพลาดของ I / O ใด ๆ ที่จะระบุว่าดิสก์ของคุณกำลังเริ่มมีปัญหาเพื่อชมดิสก์ยูทิลิตี้และการค้นพบ fsck

ในบางครั้งฉันใช้เครื่องมือฟรีที่เรียกว่าOnyXสำหรับงานบำรุงรักษาเพิ่มเติม มันทำโดยฝรั่งเศสและเป็นอาหารที่ยอดเยี่ยม :)

OnyX เป็นยูทิลิตี้มัลติฟังก์ชั่นสำหรับ OS X ซึ่งช่วยให้คุณตรวจสอบดิสก์เริ่มต้นและโครงสร้างของไฟล์ระบบเพื่อใช้งานเบ็ดเตล็ดของการบำรุงรักษาระบบเพื่อกำหนดค่าพารามิเตอร์ที่ซ่อนอยู่บางส่วนของ Finder, Dock, QuickTime, Safari, Mail, iTunes หน้าต่างเข้าสู่ระบบสปอตไลท์และแอปพลิเคชั่นมากมายของ Apple เพื่อลบแคชเพื่อลบไฟล์และโฟลเดอร์จำนวนหนึ่งที่อาจยุ่งยากและอื่น ๆ อีกมากมาย

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


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

บนนิล - มันอีกครั้งจะทำน้อยกว่า Disk Utility ไม่ - ตรวจสอบสถานะ SMART ของดิสก์แล้วทำงานสไตล์ fsck วินิจฉัย (ซึ่งในขณะที่เราได้สร้างคิดว่ามีอะไรผิดปกติ)
MrCranky

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

0

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

 man dd

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ dd รวมถึงการใช้และไวยากรณ์ที่เหมาะสม


โหวตอีกครั้งสำหรับโพสต์ของ Matt บูตโหมดผู้ใช้คนเดียวและเรียกใช้

 fsck -fy 

ซ้ำแล้วซ้ำอีกจนกระทั่ง fsck หยุดการรายงานข้อผิดพลาด


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


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


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

@MrCranky: ฉันเชื่อว่าคุณอ้างถึงบางสิ่งที่โพสต์ก่อนที่จะอัปเดตคำถามของคุณ ฉันกำลังตอกย้ำแนวคิด fsck สำหรับสิ่งใดก็ตามที่พบหน้านี้เพื่อค้นหาวิธีการแก้ไขอาการที่คล้ายกัน เกี่ยวกับสิ่งที่ฉันโพสต์เกี่ยวกับความล้มเหลวของ HDD มันไม่เคยเจ็บที่จะครอบคลุมอีกครั้งสำหรับคนอื่น ๆ และไม่จำเป็นต้องเป็นการส่วนตัว ฉันเห็นส่วนแบ่งที่ยุติธรรมของความล้มเหลวของฮาร์ดไดรฟ์ บ่อยครั้งที่ไม่มีข้อบ่งชี้ของความล้มเหลวแม้แต่กับเทคโนโลยี SMART จนกว่าคุณจะไม่สามารถเข้าถึงข้อมูลได้อีกต่อไป หากคุณสนใจข้อมูลฉันขอแนะนำให้คุณรับไดรฟ์ใหม่และสำรองข้อมูลของคุณ
chillin

แน่นอนว่าฉันไม่เห็นด้วยกับคำแนะนำสำหรับการสำรองข้อมูล แต่จิตวิญญาณของรูปแบบคำถาม & คำตอบคือการตอบคำถามที่ถูกวางไม่ใช่คำถามทั่วไป "ฉันจะแก้ไขดิสก์ที่เสียหาย" ได้อย่างไร (ซึ่งมีอยู่มากมาย) ก่อนที่ฉันจะแก้ไขเพื่อเพิ่มfsckในรายการ "สิ่งต่าง ๆ ที่คิดว่าดิสก์นั้นดี" ฉันจะตอบคำตอบที่กล่าวถึงการfsckลดความมีประโยชน์ fsckและ Disk Utility ทำหน้าที่เดียวกันมากและนั่นคือการทำงานกับโครงสร้างระบบไฟล์ไม่ใช่ระดับบล็อก ฉันพยายามระบุให้ชัดเจนว่านี่เป็นปัญหาบล็อกไม่ใช่ปัญหาของระบบไฟล์
MrCranky

0

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

ตัวอย่าง:

dd if=/path/to/damaged/file of=/Volumes/USB\ Disk/file bs=512 conv=noerror,sync

เมื่อใช้บล็อกขนาด 512 ไบต์จำนวนสูงสุดของบล็อกที่สามารถอ่านได้จะถูกกู้คืน

การกู้คืนอาจใช้เวลานานเนื่องจากเคอร์เนลจะปิดกั้นการอ่านแต่ละครั้งที่ล้มเหลว

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