วิธีบอก rsync ให้ข้ามไฟล์ในบล็อกฮาร์ดไดรฟ์ที่เสียหายแทนที่จะติดขัดในการพยายามอ่าน


13

ฉันพยายามกู้คืนไฟล์จากดิสก์ที่มีข้อผิดพลาดของฮาร์ดแวร์

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

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

ดังนั้นฉันจึงลอง rsync และดูเหมือนว่าจะใช้งานได้; แต่มันจะใช้ตลอดไปเมื่อฉันตีบล็อกที่ไม่ดี

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

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

นี่คือสิ่งที่ฉันใช้เป็นคำสั่ง; โปรดให้คำแนะนำหากมีวิธีใดที่จะลดความพยายามในไฟล์ดังนั้นฉันสามารถ rsync เพื่อพยายามอ่านบล็อกที่เสียหาย

rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup

ขอบคุณล่วงหน้า.


3
หากไดรฟ์มีเซกเตอร์เสียหายคุณควรลองอิมเมจไดรฟ์ด้วยวิธีที่ดีกว่าdd_rescueมันมีคุณสมบัติขั้นสูงเพื่อรับมือกับเซกเตอร์เสีย
jmreicha

ฉันคิดว่า @jmreicha มีความคิดที่ถูกต้อง แต่ในอนาคตหากคุณมีคำถามทางเทคนิค rsync gurus ที่เป็นมิตรนั้นมีอยู่ในรายการ rsync: list.samba.org/mailman/listinfo/rsync
Joe

คำตอบ:


10

คำตอบสั้น ๆ : rsyncมันไม่ใช่เครื่องมือที่เหมาะสมที่จะใช้ในกรณีนี้การใช้งานอาจเป็นอันตรายได้
ใช้ddrescueแทน (ดีกว่าdd_rescue) มันสามารถทำสิ่งที่คุณขอ


หากดิสก์ได้รับความเสียหายทางกายภาพมีความเป็นไปได้ที่จะก่ออิฐด้วยความพยายามที่จะซ่อมแซม

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

ในกรณีนี้ขั้นตอนที่ปลอดภัยที่สุดที่ฉันพบคือ

  1. เพื่อสร้างภาพอิมเมจบนดิสก์อื่นที่ไม่เสียหาย
  2. เพื่อสร้างสำเนาของภาพนั้น
  3. ในการทำงานในการคัดลอกในการแก้ไขปัญหาระบบแฟ้มและเพื่อช่วยเหลือไฟล์

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

ฉันขอแนะนำให้คุณใช้ddrescueเพื่อทำอิมเมจดิสก์ดิบข้อบกพร่องที่มีอยู่เพราะมันทำงานได้ดีแม้ในกรณีที่เกิดข้อผิดพลาดในการอ่าน


ด้วยวิธีการทำ ddrescue

คุณสามารถใช้งานddrescueได้ตามที่คุณต้องการใช้rsyncข้ามเซกเตอร์ที่เสียหายโดยไม่ต้องลองใหม่หรือแยกไฟล์เหล่านั้นคัดลอกข้อมูลให้ได้มากที่สุด
คำสั่งนี้อยู่ที่นี่ด้านล่าง (แทนที่จะ/dev/hda1ใส่อุปกรณ์ของคุณ):

ddrescue --no-split /dev/hda1 imagefile logfile

หลังจากนั้นคุณทำข้อแรกนี้ (ข้อที่เร็วกว่า ) คุณสามารถลองปรับแก้ให้พยายามเข้าใช้ 3 ครั้งในกรณีที่เกิดข้อผิดพลาด

ddrescue --direct --max-retries=3 /dev/hda1 imagefile logfile 

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

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

อ้างอิง:


แท้จริง dd_rescue เป็นวิธีที่จะไป ฉันมีมันในคำตอบเดิมของฉัน 2 ปีที่ผ่านมา; แต่ด้วยเหตุผลบางคนตัดสินใจว่าฉันไม่สามารถตอบคำถามของฉันเอง :) ขอบคุณสำหรับการตอบกลับและรายละเอียดที่ดี
เลิศ

@newbiez: แต่ฉันมีปัญหาดิสก์ร้ายแรงกับHDDหลักของฉันเกือบอิฐ... ดังนั้นฉันได้พบกับddrescueเพื่อน :-) เกี่ยวกับคำตอบของคุณเพียงคำเดียว: แปลก ... โพสต์อีกครั้งและถ้ามีคนพยายามที่จะปิดอีกครั้ง ฉันจะโหวตให้เปิดใหม่อีกครั้ง (ฉันไม่เคยใช้พลังใหม่นั้น: D)
Hastur

1
ตัวเลือก --no-split ถูกลบออกใน ddrescue รุ่นใหม่ ใช้ - ไม่มีการขูดแทน ดูlists.gnu.org/archive/html/bug-ddrescue/2015-09/msg00001.html
Grmpfhmbl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.