ก่อนอื่นอย่าทำอะไรเพิ่มเติมบนดิสก์ (อย่างน้อยไม่เคยเขียนลงไป) ดิสก์ที่ไม่ได้รับการยอมรับ (ตรงข้ามกับ "การได้รับการยอมรับและพบว่าว่างเปล่าหรือมีข้อมูลที่อ่านไม่ได้") ดูเหมือนจะระบุว่าดิสก์เสียหายทั้งหมดซึ่งchkdsk
ไม่เคยทำหรือสิ่งผิดปกติกับตารางพาร์ติชันหรือรูปทรงเรขาคณิตของดิสก์ หรือวิธีจัดการกล่องหุ้ม USB ความล้มเหลวของฮาร์ดแวร์ก็เป็นไปได้
สิ่งนี้สามารถและจะเกิดขึ้นเมื่อกล่องหุ้ม USB พยายามต่อรองระหว่างดิสก์และคอมพิวเตอร์ที่เชื่อมต่ออยู่ ดังนั้นสิ่งแรกที่ต้องทำคือถ่ายภาพดิสก์บนดิสก์ (ใหญ่ขึ้นอย่างเห็นได้ชัด) ในระดับใกล้เคียงที่สุดเท่าที่จะเป็นไปได้โดยใช้dd
ภายใต้ Linux จากนั้นคุณสามารถเล่นซอกับการคัดลอกภาพไปยังเนื้อหาในหัวใจของคุณโดยไม่ต้องเสี่ยงกับความเสียหายต่อดิสก์จริง
อัปเดต: การจดจำอุปกรณ์ใน Linux
เรามีเอนทิตีไม่น้อยกว่าสามรายการใน "ดิสก์ภายนอก" ของเรา ฮาร์ดแวร์กล่องหุ้ม USB แสดงเป็นอุปกรณ์บล็อก ฟิสิคัลดิสก์ภายในกล่องหุ้ม อุปกรณ์ทางกายภาพคือลำดับของส่วน LBA ตั้งแต่แรกถึงสุดท้าย และในที่สุดก็เป็นศูนย์หรือมากกว่าพาร์ทิชันข้อมูลโฮสติ้งระบบไฟล์ หากต้องการ "ยอมรับ" และแสดงในเดสก์ท็อปลิงก์ทั้งหมดของเครือข่ายจะต้องใช้งานได้ แต่ในการถ่ายภาพอุปกรณ์ทางกายภาพคุณต้องการเพียงสองอย่างแรก หากคุณเสียบอุปกรณ์และเรียกใช้บรรทัดคำสั่งdmesg
(ในฐานะรูท) คุณควรเห็นสิ่งนี้:
[4984939.028491] usb 8-6: new high speed USB device using ehci_hcd and address 3
[4984939.166658] usb 8-6: configuration #1 chosen from 1 choice
[4984939.170660] scsi7 : SCSI emulation for USB Mass Storage devices
[4984939.172003] usb-storage: device found at 3
[4984939.172005] usb-storage: waiting for device to settle before scanning
... ซึ่งสิ่งที่แนบมาได้รับการยอมรับแล้วระบุตัวเองและเนื้อหาของมัน:
[4984939.170660] usb 8-6: New USB device found, idVendor=1058, idProduct=1021
[4984939.170660] usb 8-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[4984939.170660] usb 8-6: Product: Ext HDD 1021
[4984939.170660] usb 8-6: Manufacturer: Western Digital
[4984939.170660] usb 8-6: SerialNumber: 574D43305431303831303734
[4984944.400970] usb-storage: device scan complete
ถัดไปคุณจะเห็นคนขับรถแจ้งของเรขาคณิตของธรรมชาติและโดยปริยายโหนดอุปกรณ์ของที่นี่sdd
(สำหรับ SCSI ดิสก์สี่ตั้งแต่sda
, sdb
และsdc
ถูกนำตัวแล้ว):
[4984944.404739] scsi 7:0:0:0: Direct-Access WD Ext HDD 1021 2021 PQ: 0 ANSI: 4
[4984944.404739] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
[4984944.407367] sd 7:0:0:0: [sdd] Write Protect is off
[4984944.407369] sd 7:0:0:0: [sdd] Mode Sense: 17 00 10 08
[4984944.407371] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[4984944.408741] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
จากนั้นเคอร์เนลจะรับรู้ว่ามีพาร์ติชั่น (หากคุณไม่เห็นสิ่งนี้พาร์ติชั่นไม่มีหรือไม่ถูกต้อง):
[4984944.411497] sdd: sdd1
ตอนนี้ Linux มีทุกสิ่งที่ต้องการและรายงานสิ่งที่แนบมาสำเร็จ:
[4984944.416739] sd 7:0:0:0: [sdd] Attached SCSI disk
[4984944.416739] sd 7:0:0:0: Attached scsi generic sg4 type 0
ดังนั้นการค้นหาพาร์ติชั่นข้อมูลจึงเริ่มต้นขึ้นเช่นเรามีsdd1
แต่มีอะไรบ้าง และคำตอบคือ:
[4984997.498613] NTFS driver 2.1.29 [Flags: R/W MODULE].
[4984997.554613] NTFS volume version 3.1.
[4984997.568859] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean. Mounting read-only. Mount in Windows.
[4985390.027808] NTFS-fs error (device sdd1): ntfs_remount(): Volume has errors and is read-only. Cannot remount read-write.
[4985442.423299] NTFS volume version 3.1.
[4985442.425032] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean. Mounting read-only. Mount in Windows.
ด้านบนนี้เป็นเมานต์ "ดี" แต่เพียงแค่รู้ว่าอุปกรณ์sdd
หรือsdc
หรือsdb
ช่วยให้ผมที่จะทำสำเนาไบนารี (สมมติว่าผมมีพื้นที่เพียงพอฟรีบน/mnt/backupdisk
): แฟ้มใส่/dev/sdd
, ไฟล์ที่ส่งออกDiskImage.raw
, บล็อกขนาด 1 MB :
# dd if=/dev/sdd of=/mnt/backupdisk/DiskImage.raw bs=1M
โปรดทราบว่าไฟล์อินพุตนั้นเป็น/dev/sdd
และไม่ใช่ /dev/sdd1
(หรือหมายเลขอื่นใด) ตอนนี้ถ้าฉันต้องการฉันสามารถหาออฟเซ็ตของพาร์ติชันข้อมูลภายในDiskImage.raw
และติดตั้งด้วยความช่วยเหลือของอุปกรณ์วนรอบ ที่นี่คุณจะพบรายละเอียดที่สกปรก
ความพยายามกู้คืนแรก
สิ่งที่สองที่ต้องทำคือการวางฟิสิคัลดิสก์ลงในกล่องหุ้มอื่นดังนั้นจึงมั่นใจได้ว่ากล่องหุ้มนั้นดีและมีโอกาสที่กล่องหุ้มใหม่จะตีความดิสก์ได้อย่างถูกต้อง หากดิสก์ปรากฏขึ้นอีกครั้งอาจเป็นกล่องหุ้มก่อนหน้านี้ที่ใช้งานไม่ได้ ในกรณีที่สำรองข้อมูลเนื้อหาทั้งหมดของไดรฟ์ที่เพิ่งค้นพบใหม่ให้ตรวจสอบการสำรองข้อมูลให้เป็นศูนย์ดิสก์ด้วยยูทิลิตี้การเขียนทับดิสก์เพื่อให้เป็นไปอย่างสมบูรณ์เป็นใบ้ (คุณไม่สามารถมีสองอุปกรณ์ที่มีความคิดเห็นต่าง ๆ โดยเริ่มต้นจาก Windows และกู้คืนข้อมูล มันเป็นภาพที่โชคดี แต่ฉันเห็นมันเกิดขึ้น และความพยายามไม่แพงเกินไปสิ่งที่แนบมาที่ดีจะเกิดขึ้นประมาณ US $ 19,99
ในกรณีที่กล่องหุ้มดั้งเดิมไม่ดีคุณจะไม่สามารถฟอร์แมตดิสก์ได้หรือไม่สามารถเข้าถึงดิสก์ได้ คุณสามารถลองใช้กล่องหุ้มใหม่และถ้าใช้งานได้ให้เปลี่ยนกล่องหุ้มเดิมหรือใช้ใหม่ (แต่ก็คุ้มค่าถ้ากล่องใหม่นี้ค่อนข้างดีกว่า US $ 19.99 El Cheapo)
การกู้คืนอย่างมืออาชีพ
บริการกู้คืนมืออาชีพที่คุณสามารถหาได้ด้วย Google วิธีที่ไม่ซื่อสัตย์เกินไปเกี่ยวกับการส่งผ่านดิสก์ทางกายภาพและ - ในกรณีที่คุณได้รับ "ใช่ไม่มีความเสียหายของฮาร์ดแวร์และเราสามารถกู้คืนข้อมูลทั้งหมดของคุณในราคาเพียง US $ $$$ $ $$!" คำตอบ - ถ้าอย่างนั้นคุณก็รู้ว่าข้อมูลยังคงอยู่ ดังนั้นคุณสามารถลองทำด้วยตัวเองได้ฟรีจากข้อมูลสำรองที่คุณถ่ายและจ่ายเฉพาะค่าวินิจฉัยและดิสก์ S&H หากคุณล้มเหลวตัวเลือกในการไอแป้งที่ร้องขอจะยังคงอยู่ที่นั่น หากมีคือความเสียหายของฮาร์ดแวร์บริการระดับมืออาชีพเป็นพื้นของคุณเพียงตัวเลือก มีเคล็ดลับของลัทธิวูดูหลายอย่างที่จะ (ชั่วคราว) ฟื้นฟูดิสก์ "ที่ตายแล้ว" ซึ่งมักจะนานพอที่จะกู้คืนข้อมูลที่สำคัญที่สุดอย่างน้อยที่สุดไม่มีใครรับประกันว่าจะสามารถทำงานได้ทุกครั้ง (ให้ความร้อนกับดิสก์ทำให้มันเย็นลง "หมุน" มัน - ฉันเห็นด้วยซ้ำแม้จะแนะนำให้เคาะอย่างรุนแรงกับพื้นผิวแข็ง) พวกเขาทั้งหมดจะได้รับความเสียหายมากขึ้นเช่นคุณต้องแน่ใจว่าใช้เคล็ดลับเดียวที่จะใช้งานได้เป็นครั้งแรกหรือคุณจะฆ่าดิสก์ตลอดไป ฉันเพิ่งเพิ่มนี้จะอธิบายว่าทำไมคุณจะเห็นเรื่องราวความสำเร็จเกี่ยวกับดิสก์ฟื้นขึ้นมานั่นเป็นเรื่องราวดังกล่าว แต่ถ้าคุณต้องการที่จะ (ส่วนใหญ่) แน่ใจว่ามันจะเกิดขึ้นกับคุณดี - จ้างมืออาชีพ
หากคุณแน่ใจว่าฮาร์ดแวร์เป็นปกติ - ดิสก์หมุนไม่มีเสียงไม่มีเสียงแปลก ๆ หรือเสียงกระหึ่มไม่มีการปรับเทียบซ้ำซ้อนแบบ clickety-clackety - จากนั้น "ทั้งหมด" ที่เกิดขึ้นคือทำให้chkdsk
ข้อมูลบางอย่างยุ่งเหยิง
การกู้คืน DIY
การกู้คืน "บ้าน" มักจะเป็นเช่นนี้ (โดยพื้นฐานแล้วเป็นสิ่งเดียวกันกับที่คนทำโปรจะทำเมื่อความเสียหายของฮาร์ดแวร์ได้รับส่วนลด) โดยใช้สำเนาอิมเมจของดิสก์:
ตรวจสอบว่าภาคแรกของภาพดิสก์เป็นตารางพาร์ทิชันที่ถูกต้อง หากไม่ใช่ให้สแกนอิมเมจดิสก์เพื่อค้นหาพาร์ติชันตารางที่ถูกต้องหรือบูต NTFS หรือ FAT32 ที่รู้จักซึ่งขึ้นอยู่กับ FS ที่อยู่บนยูนิต ในแบบที่คุณควรหาบางสิ่งบางอย่างภายในไม่กี่เมกะไบต์แรก
หากพบตารางพาร์ติชันให้ตรวจสอบว่าพาร์ติชันข้อมูลอยู่ที่ใดที่ตารางพาร์ติชันระบุว่าควรเป็น หากไม่เป็นเช่นนั้นนี่เป็นข่าวดีมาก: อาจเป็นเพราะตารางพาร์ทิชันนั้นผิดทั้งหมด การแก้ไขเป็นเรื่องง่าย (ตัวแก้ไขพาร์ติชัน Linux หลายตัวจะทำเช่นนั้น) และดิสก์อาจถูกคาดหวังให้กู้คืนได้ 100% เพื่อความปลอดภัยให้ลองติดตั้งพาร์ติชันข้อมูลใน Linux ด้วยอุปกรณ์วนซ้ำในโหมดอ่านอย่างเดียวเพื่อดูว่าสามารถอ่านได้หรือไม่ ถ้าเป็นเช่นนั้นการยืนยันการทำพาร์ทิชันจะได้รับการยืนยันและดิสก์อาจจะถูกประกาศออกมาเพื่อให้มั่นใจและสามารถทำการกู้คืนได้อย่างสมบูรณ์ หากไม่ใช่อาจเป็นไปได้ว่าพาร์ติชันนั้นถูกต้องและพาร์ทิชันข้อมูล (ส่วนหนึ่ง) ถูกเขียนใหม่ นี้ไม่ดี; ดูด้านล่างภายใต้
หากตรวจพบและตรวจสอบแล้วให้ตรวจสอบกับรูปทรงเรขาคณิตของไดรฟ์และหากไม่ตรงกันก็เป็นสิ่งที่ดีเช่นกันเนื่องจากคุณอาจพบสาเหตุของปัญหา คุณสามารถบังคับฟิสิคัลเรขาคณิตให้กับเคอร์เนล (และไปที่ Linux boot ) ดูว่ารูปทรงเรขาคณิตใหม่นำไปสู่ดิสก์ที่เป็นที่รู้จักใน Linux หรือไม่ หากเป็นเช่นนั้นให้สำรองข้อมูลตรวจสอบว่าการสำรองข้อมูลนั้นถูกต้องและเป็นศูนย์ของดิสก์ด้วยdd
(ศูนย์รวมสองถึงเมกะไบต์ไปยังsd
อุปกรณ์ที่เหมาะสมเท่านั้น) ปิดเครื่องคอมพิวเตอร์ (ไม่เพียง แต่รีบูตเครื่อง OK มันเป็นเรื่องหวาดระแวง แต่มีค่าใช้จ่ายเพียงเล็กน้อยและอาจทำอะไรบางอย่างได้สำเร็จ) จากนั้นบูต Windows ขึ้นมาและจัดรูปแบบดิสก์ clueless ตอนนี้ลงในสิ่งที่คิดว่าเป็นรูปแบบที่ดีที่สุด สิ่งนี้ทำให้มั่นใจได้ว่าไม่มีข้อขัดแย้งกับ Windows กู้คืนข้อมูลบนดิสก์ สนุก.
หากเคล็ดลับรูปทรงเรขาคณิตไม่ทำงานหรือไม่พบพาร์ติชันหรือเมื่อพบว่าว่างเปล่าสิ่งต่าง ๆ ก็จะบูด คุณต้องการเครื่องมือการกู้คืนบางอย่างที่สามารถสแกนภาพดิสก์ในการค้นหาพื้นที่ข้อมูล (MFT ฯลฯ ) ของข้อมูลที่สูญหาย และเมื่อพบแล้วให้ตีความมันเพื่อรับข้อมูล นี่เป็นงานที่ยากและไม่สามารถเป็นไปโดยอัตโนมัติได้ทั้งหมด ในระดับต่ำและสิ้นหวังยิ่งขึ้นสิ่งนี้เกี่ยวข้องกับการสแกนหาลายเซ็นของแต่ละไฟล์โดยหวังว่าไฟล์เหล่านั้นจะอยู่ในบล็อกที่ต่อเนื่องกันในดิสก์ การดำเนินการเช่นนี้ฉันยินดีที่จะออกไปหามืออาชีพ ฉันทำมันหลายครั้งประสบความสำเร็จเสมอกับดิสก์ FAT เก่า ฉันทำอีกครั้งประสบความสำเร็จประมาณ 50% โดยมีดิสก์ FAT32 ที่ใหม่และใหญ่กว่าและมีการแยกส่วนมากขึ้น ฉันพยายาม สองสามครั้งด้วยผลลัพธ์ที่ไม่ดี (แต่ฉันมีการสำรองข้อมูลเต็มรูปแบบและไม่ได้มอบทุกอย่างให้ฉัน) ในระบบไฟล์ NTFS และ ext4 ที่ซับซ้อนยิ่งขึ้น
การกู้คืนด้วยตนเองจาก Linux
ตกลงดังนั้นคุณพยายามติดตั้งพาร์ติชันใน Linux และรับข้อผิดพลาด ( สังเกตว่า /dev/sdc
และ เป็นสิ่งที่แตกต่าง - รูปภาพอ้างอิงถึง )/dev/sdcN
/dev/sdc
# mount -t ntfs /dev/sdc1 /mnt/recovery
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 1024 usa_ofs: 0 usa_count: 65535: Invalid argument
Record 1 has no FILE magic (0x0)
Failed to open inode $MFTMirr: Input/output error
... นี่ดูเหมือนจะบ่งบอกว่าพาร์ติชั่นในขณะที่ระบบเชื่อว่ามันผิดหรือได้รับความเสียหาย ลองตรวจสอบตัวเลือกแรกก่อน:
# fdisk /dev/sdc
คุณได้รับสิ่งนี้:
Disk /dev/sdc: 1000.2 GB, 1000204885504 bytes
1 heads, 63 sectors/track, 31008335 cylinders, total 1953525167 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9d2b7596
Device Boot Start End Blocks Id System
/dev/sdc1 63 1953520127 976760032+ 7 HPFS/NTFS/exFAT
ขั้นตอนต่อไปคือการตรวจสอบการเริ่มพาร์ติชั่นจริง โดยการค้นหาไฟล์ภาพ (หรือ/dev/sdc
) เราจะค้นหาลายเซ็น NTFS:
00000000:EB 52 90 4E 54 46 53 20 -20 20 20 00 02 08 00 00 .R.NTFS ........
00000010:00 00 00 00 00 F8 00 00 -3F 00 FF 00 3F 00 00 00 ........?...?...
00000020:00 00 00 00 80 00 80 00 -4A F5 7F 00 00 00 00 00 ........J.......
# dd if=/dev/sdc bs=512 count=1 skip=63 2>/dev/null | hexdump -C | head -n 1
... กับข้อมูลดังกล่าวข้างต้นที่เราคาดหวังบูต NTFS จะเป็นที่ภาค 63 skip
ที่ว่าทำไมเราชุด นอกจากนี้เราจะลองกับทุกเซกเตอร์ในเมกะไบต์แรก (พูด) ...
# dd if=/dev/sdc bs=512 count=2000000 2>/dev/null | hexdump -C | grep "00:EB 52 90 4E 54 46 53"
... เพียงเพื่อให้แน่ใจว่ามีบูตเซกเตอร์เดียวเท่านั้น (ฉันเกิดสิ่งนี้กับฉันบนดิสก์ FAT32 แต่ยังคงอยู่ ) และไม่มีข้อผิดพลาดในการอ่านที่ใดก็ได้
ผลลัพธ์ของคุณ
00007e00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
เป็นสิ่งที่เราคาดหวัง: ภาค 63 ให้การชดเชย 63 × 512 = 32256 = 7e00 เลขฐานสิบหก บูต NTFS มีและตารางพาร์ทิชันที่ดูเหมือนจะเป็นที่ถูกต้อง
ดังนั้นตอนนี้เราสามารถคัดลอกก้อนข้อมูลขนาดใหญ่/dev/sdc1
ไปพูด/tmp/mydisk.img
และพยายามแก้ไขจาก Linux สิ่งนี้จะไม่สร้างความเสียหายกับฟิสิคัลดิสก์ซึ่งจะยังคงมีอยู่ไม่เปลี่ยนแปลงสำหรับความพยายามอื่น ๆ และเนื่องจากตอนนี้เรารู้ว่า PT ถูกต้องแล้วเราสามารถใช้/dev/sdc1
สำหรับการคัดลอกและสร้างความบันเทิงที่เราไม่เคยทำได้มาก่อน:
# dd if=/dev/sdc1 of=/tmp/mydisk.img bs=1G count=10
...after copying 10 gigabytes...
# ntfsfix /tmp/mydisk.img
หาก NTFSfix ใช้งานไม่ได้แสดงว่าเรากำลังมีปัญหา มีสาธารณูปโภคที่แม่นยำมากกว่าที่สามารถลองได้ และหากคุณต้องการกู้คืนไฟล์ภาพ JPEG และระบบไฟล์ไม่ได้แยกส่วนสิ่งนี้สามารถทำได้โดยอัตโนมัติโดยค้นหาส่วนหัวของ JPEG กันเกือบไปสำหรับเอกสาร PDF, TIFF และ Office ยกเว้นว่าฉันไม่รู้จักวิธีการรับรู้พวกเขา (สำหรับ JPEGs ฉันจะ :-)) เป็นตัวเลือกสุดท้ายฉันพบคนเหล่านี้ - ฉันไม่รู้พวกเขาไม่เกี่ยวข้องกับพวกเขาและจะไม่ยอมรับการตำหนิใด ๆ อย่างไรก็ตามเมื่อสิ่งเหล่านี้ไปราคาก็สมเหตุสมผลมาก