วิธีการคัดลอกพาร์ติชั่น NTFS (WinXP) จากดิสก์ที่เสียหายไปยังพาร์ติชั่นใหม่


10

ฉันต้องโคลนพาร์ติชั่น NTFS จากฮาร์ดดิสก์ที่เสียหายใกล้ถึงฮาร์ดไดรฟ์ (SCSI หากมีปัญหา) กับพาร์ติชันใหม่ (SATA)

ฉันได้ติดตั้งยูทิลิตี Boot CD ของ Hiren รุ่นล่าสุดลงในแท่ง USB แล้วและลองใช้ GParted ซึ่งบอกฉันว่ามันไม่สามารถคัดลอก / วางพาร์ติชันได้เนื่องจากมันเสียหายและ "ตั้งค่าสถานะ" โดย Windows เพื่อเรียกใช้ CHKDSK ฉันทำตามคำแนะนำคำเตือนและพยายามซ่อมแซมโดยใช้CHKDSK /f(ใช้เวลา 9 ชั่วโมงและออกด้วยข้อผิดพลาดหลังจาก "เฟส 3") และโปรแกรม Linux ฉันจำไม่ได้ตอนนี้โดยไม่ประสบความสำเร็จ

ฉันพยายามโคลนโดยใช้ Clonezilla และมันก็ล้มเหลวเช่นกันด้วยเหตุผลเดียวกัน ใน HBCD มี dd_rescue แต่มันล้มเหลวอีกครั้งเพราะหา "ntfs.something" ไม่ได้

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

ดังนั้นฉันควรทำอย่างไร


ข้อความแสดงข้อผิดพลาดถูกส่งคืนCHKDSK /fหลังจาก "เฟส 3" คืออะไร

คำตอบ:


5

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

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

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

นั่นคือเหตุผลที่ในประสบการณ์ของผมddrescueอยู่ไกลกว่าในกรณีที่มีปัญหากว่าด้วยdd เก็บบันทึกเกี่ยวกับสิ่งที่ได้ทำและรีสตาร์ทโดยใช้ข้อมูลนั้นซึ่งเป็นคุณลักษณะที่ไม่สามารถใช้งานได้ นอกจากนี้ยังฉลาดในการอ่านบล็อกเริ่มต้นจากจุดสิ้นสุดหากพบปัญหาพื้นที่ มันจะมาถึงเร็วกว่ามากในสถานะการคัดลอกรูปภาพที่คุณสามารถใช้เป็นพื้นฐานสำหรับการตรวจสอบระบบไฟล์ (และคุณสามารถดำเนินการต่อเพื่อคัดลอกต้นฉบับ) คุณสามารถทำอะไรแบบนั้นได้ก็ต่อเมื่อคุณเต็มใจที่จะใช้เวลามากในการคำนวณค่าชดเชยด้วยมือconv=noerrorddrescueddddrescueddrescuedd

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


1
มีประโยชน์มาก! คุณสามารถเพิ่มตัวอย่างบรรทัดคำสั่งที่แน่นอนของddrescueในการดำเนินการคล้ายกับddตัวอย่างในคำตอบอื่น ๆ ?
landroni

2
@landroni ที่ฉันสามารถทำได้ (พื้นddrescue /dev/sdX driveimage logfile) แต่คุณจริงๆควรจะใช้เวลาความพยายามในการอ่านddrescueเอกสาร หากระบบของคุณเสียมีเหตุผลมากมายที่จะอ่านคู่มือก่อนที่จะทำให้สิ่งต่าง ๆ แย่ลง
Anthon

ตอนนี้ฉันกำลังดูหน้าคน แต่ตัวเลือกบางอย่างมีความลับ สิ่งที่จะเป็นอนุรักษ์นิยมมากที่สุดddrescueเทียบเท่าdd if=/dev/olddisk of=/dev/newdisk bs=4k conv=noerror,sync? โปรดจำไว้ว่ามันจะทำงานบนดิสก์ที่เสียหาย (และกำลังจะตาย) และ "การพยายามอย่างหนักเพื่อช่วยเหลือข้อมูลในกรณีที่เกิดข้อผิดพลาดในการอ่าน" ไม่ใช่ตัวเลือกจริงๆ ขอบคุณ!
landroni

@landroni พร้อมตัวเลือกที่ระบุไว้ในความคิดเห็นก่อนหน้าของฉันแต่ละส่วนในบล็อกนั้นจะถูกลองเพียงครั้งเดียว วิธีเดียวที่ฉันรู้ว่าคุณสามารถปรับปรุงได้คือถ้าคุณรู้ว่าพื้นที่ใดบ้างที่ใช้ได้แน่นอนและใช้-iและ-sกู้คืนพื้นที่เหล่านั้น
Anthon

ครั้งสุดท้ายที่ฉันลองddrescue /dev/sr0 driveimage.iso(บนแผ่นซีดีมีรอยขีดข่วน) โปรแกรมพยายามอ่านเซกเตอร์เสียจำนวนมากอีกครั้ง ฉันอาจจะผิด แต่ฉันจะใจจดใจจ่อเกี่ยวกับการทำงานddrescueโดยไม่มีตัวเลือกอื่น ๆ จำกัด ในดิสก์ที่กำลังจะตาย
landroni

3

มีปัญหาเดียวกัน: ดิสก์ที่กำลังจะตาย
ด้วยพาร์ติชัน NTFS ที่ฉันต้องการช่วยเหลือก่อนและแก้ไขหลังจาก
(ก่อนที่ดิสก์จะหายไปทั้งหมด)

สามารถแก้ไขได้ด้วยntfsclone :

  1. เชื่อมต่อทั้งสองดิสก์ - เก่าและใหม่
  2. บูตด้วย Live-Linux จาก USB
    (สามารถใช้Parted Magicสำหรับสิ่งนั้นได้เช่นกัน)
  3. สร้างพาร์ติชันที่ใหญ่พอบนดิสก์ใหม่
    (ใช้gpartedสำหรับสิ่งนั้น)
  4. หมายเหตุชื่อของพาร์ติชันตามที่มีชื่อในgparted
    ( /dev/sdaX, /dev/sdbX)
  5. เปิดหน้าต่างเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้: (แทนที่และด้วยชื่อจากขั้นตอน '4' - ) ntfscloneจะบ่นเกี่ยวกับคุณที่มองเห็นความไม่สอดคล้องกัน แต่ควรทำสำเนาพาร์ติชันต่อไป
    ntfsclone --force --ignore-fs-check --rescue --overwrite NEW-part OLD-part
    NEW-partOLD-part/dev/sd...

-- เมื่อทำเสร็จแล้ว --

  1. ปิดเครื่องพีซี
  2. ตัดการเชื่อมต่อดิสก์ที่ผิดปกติ
    (คุณต้องการใช้ให้น้อยที่สุดตอนนี้)
  3. บูตพีซีอีกครั้งไม่ว่าจะเป็น Windows หรือ Linux
    และลองแก้ไขพาร์ติชันบนดิสก์ใหม่

แก้ไข:

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

(การแก้ไขพาวเวอร์ซัพพลายจะไม่กู้คืนข้อมูลที่หายไป แต่จะป้องกันไม่ให้คุณสูญเสียข้อมูลมากขึ้น)


1

ฉันจะพยายามซ่อมแซมดิสก์ด้วยHDAT (ฟรีแวร์) หรืออาจเป็นSpinrite (เชิงพาณิชย์) ฉันใช้เครื่องมือทั้งสองนี้เพื่อกู้คืนดิสก์ที่ล้มเหลวและทั้งคู่ทำงานได้ดีในอดีต

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


0

ฉันรู้สึกว่าคำถามนี้ควรมีตัวอย่างการทำงานดังนั้นนี่คือวิธีที่ฉันใช้ddrescue

0) ติดตั้งไดรฟ์เปลี่ยนขนาด (และยี่ห้อ) ที่เหมือนกันภายใต้การรับประกันและย้ายไดรฟ์เก่าไปยังสล็อตที่สอง

1) ฉันใช้ซีดีสำหรับบูตอูบุนตู

ฉันลองใช้ตัวเลือกที่เรียบง่าย แต่มันทำให้เกิดข้อผิดพลาดและหยุดทำงาน

dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync
root@ubuntu:~# dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync
dd: error reading ‘/dev/sdb’: Input/output error
57496+0 records in
57496+0 records out
29437952 bytes (29 MB) copied, 6.02927 s, 4.9 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+1 records in
57497+0 records out
29438464 bytes (29 MB) copied, 8.86693 s, 3.3 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+2 records in
57498+0 records out
29438976 bytes (29 MB) copied, 11.7068 s, 2.5 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+3 records in
57499+0 records out

2) อ่านบทความเหล่านี้:

สังเกตหลังที่แนะนำโดยใช้-dการเข้าถึงดิสก์โดยตรง แต่ฉันไม่ได้ใช้

3) ติดตั้งวันที่

sudo apt-get install gddrescue
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install gddrescue
man ddrescue

อาจต้องการ (?)

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"

4) ในที่สุดวิ่ง (ถ้าคุณกำลังคัดลอกและวางหยุด sda เป็นไดรฟ์ใหม่ของฉัน ... สนใจและทำการบ้านของคุณ)

ddrescue -v -r3 /dev/sdb /dev/sda ~/ddrescue.log
  • -v verbose
  • -r 3 ลองใหม่
  • ไฟล์บันทึก ~ / xx ซึ่งสามารถใช้เพื่อลองใหม่ได้อย่างชัดเจน หมายเหตุนี่จะถูกเก็บไว้ในหน่วยความจำเท่านั้น แต่สามารถคัดลอกไปยังไดรฟ์ usb

เอาท์พุท:

GNU ddrescue 1.17
About to copy 1000 GBytes from /dev/sdb to /dev/sda
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors       Initial skip size: 128 sectors
Sector size: 512 Bytes

Press Ctrl-C to interrupt
rescued:    22555 MB,  errsize:    196 kB,  current rate:   91815 kB/s
   ipos:    22555 MB,   errors:       5,    average rate:   68975 kB/s
   opos:    22555 MB,    time since last successful read:       0 s
Copying non-tried blocks...

5) หน้าต่างที่ถูกบูทและเปิดใช้งานใหม่ ... tbc


0

ขอให้เป็นวันที่ดี!

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

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