ddrescue ช้ามากบนฮาร์ดไดรฟ์ USB


9

ฉันกู้คืน HDD จากแล็ปท็อปของฉันที่ตายไปแล้ว (ไม่สามารถบู๊ตได้เลย Disk Utility รายงานว่าไม่มีปัญหา แต่ไม่ติดตั้งดิสก์) ฉันต่อ HDD ผ่านอะแดปเตอร์ USB แล้ว ทำงานddrescueอย่างนั้น:

sudo ddrescue -v -n /dev/disk1s2 "/Volumes/Original HD/image.dmg" ddrescue.log

ไม่มีข้อผิดพลาด แต่ความเร็วในการอ่านเฉลี่ยลดลงเหลือ 50KB / s เริ่มต้นที่ประมาณ 2MB / s ขนาดของพาร์ติชันคือ 300GB จนถึงตอนนี้ฉันสามารถกู้คืนได้ 160GB ฉันกำลังกู้คืนไปยังพาร์ติชัน HFS + บน MacBook ของฉัน

อะไรคือสาเหตุของอัตราการถ่ายโอนที่ช้าและวิธีเพิ่มอัตรา

คำตอบ:


8

นี่น่าจะเป็นวิธีการที่ddrescue& การถ่ายโอน USB ทำงานภายใต้ OSX จากหัวข้อนี้หัวข้อ: เรื่อง: [Bug-ddrescue] ddrescue 10x ชะลอตัวภายใต้ OSX

เมื่อทำงานกับฮาร์ดไดรฟ์ที่ทำงานได้อย่างสมบูรณ์ภายใต้ linux จะทำงานด้วยความเร็ว i / o เต็ม เมื่อคอมไพล์ภายใต้ osx พร้อมกับแฟล็กการคอมไพล์เริ่มต้นมันจะช้าลงขนาดบางครั้งก็คลานไปที่ Kb / s ปัญหายังคงมีอยู่หากไฟล์เอาต์พุตคือ / dev / null

หัวข้อเดียวกันนั้นก็มีการตอบสนองนี้

จากประสบการณ์ของฉันและการทดสอบบน OS X การเข้าถึงอุปกรณ์อักขระดิบ/dev/rdisk…จะดีกว่าเสมอ ความเร็วในการถ่ายโอนสามารถเพิ่มได้อีกด้วยการตั้งค่า Copy Block Size ที่ใหญ่กว่า ขนาดของ 512KiB ( ddrescue -c 1Ki) ให้ผลลัพธ์ที่ดีที่สุดแก่ฉันในกรณีส่วนใหญ่

และ: อุปกรณ์อักขระดิบ OS X มีขนาดที่กำหนดดังนั้นจึงสามารถใช้งานได้ง่ายแม้ในการเรียกใช้ครั้งแรก (อย่างน้อยในตอนนี้หมายเหตุเกี่ยวกับอุปกรณ์ดิบในเอกสารที่มีอยู่สำหรับddrescueไม่ได้ใช้กับ OS X)

ฉันไม่คิดว่านี่เป็นข้อผิดพลาดddrescueเนื่องจากยูทิลิตี้อื่นเช่นddหรือcatแสดงพฤติกรรมเดียวกันใน OS X

การเข้าถึงอุปกรณ์ / dev / disk … block ให้ความเร็วค่อนข้างช้าโดยไม่ขึ้นกับขนาดบล็อกที่ใช้ ความเร็วในการอ่านของ a / dev / rdisk …อุปกรณ์อักขระ raw ในอีกทางหนึ่งนั้นขึ้นอยู่กับขนาดของ Copy Block ที่เลือก:

  • 512 ไบต์ ( ddrescue -c 1ค่าเริ่มต้นในdd) ช้าที่สุด
  • ตั้งค่าเป็น 4096 Byte ( ddrescue -c 8, dd bs=4K) ให้ความเร็วช้าเท่ากับการเข้าถึง / dev / disk ...
  • ค่าเริ่มต้นของ ddrecue คือ 128 ภาค (= 64KiB ddrescue -c 128,, dd bs=64K) ให้ผลลัพธ์ที่ดีพอสมควร
  • การคูณที่เพิ่มขึ้น (มากถึงddrescue -c 1Ki/ dd bs=512K) ให้ความเร็วสูงสุด (ส่วนใหญ่เร็วกว่า 8-12 เท่า/dev/disk…)
  • การเพิ่มขึ้นข้างต้นนั้นไม่ได้เพิ่มความเร็วในการถ่ายโอนใด ๆ เพิ่มเติมในการทดสอบของฉัน บางครั้งมันก็ลดลง

นี่คือผลการวัดของฉันเองผลลัพธ์ของคุณอาจแตกต่างกันไปขึ้นอยู่กับสื่อและฮาร์ดแวร์ของ IO ที่ใช้ บางทีถ้าผู้ใช้รายอื่นจะแบ่งปันประสบการณ์ของพวกเขาเราอาจได้ภาพที่ดีขึ้นของหัวข้อ

อ้างอิง


1
การเปลี่ยนขนาดบล็อกคัดลอกไม่มีผลกับความเร็วในการถ่ายโอนในกรณีของฉัน อย่างไรก็ตามการเล่นด้วย / dev / null ฉันสามารถรับอัตราการถ่ายโอนที่ดี (มากถึง 8MB / s) โดยการตั้งตำแหน่งไฟล์อินพุตเป็น 200GB -i214748364800ฉันได้กลับมาในขณะนี้กระบวนการคืนค่าของฉันกับพารามิเตอร์เพิ่มเติม ฉันหวังว่า 0 - 160GB แรกจะไม่ได้รับผลกระทบจากสิ่งนี้
Mik

1
น่าเสียดายที่อัตราการถ่ายโอนเพิ่มขึ้นในช่วงสั้น ๆ ฉันจะพยายามเรียกใช้ddrescueจากระบบยูนิกซ์
Mik


@Mik ขอบคุณที่ให้พารามิเตอร์ที่แน่นอนที่คุณใช้ในการกู้คืนที่ตำแหน่งอื่น ไดรฟ์ต้นฉบับที่ฉันล้มเหลวที่ตำแหน่ง 121242584064 และฉันพยายามดำเนินการต่อที่ผ่านมา แต่ ddrescue กล่าวว่าข้อผิดพลาดการอ่านที่ไม่ได้จัดแนว ขนาดเซกเตอร์ถูกต้องหรือไม่ ดังนั้นการใช้ค่าของคุณฉันกลับมาที่ 200GB และไม่ส่งผลกระทบต่อค่าเริ่มต้น 0 - 160GB
โคลิน

0

ฉันไม่รู้มากเกี่ยวกับHFS+ระบบไฟล์บน MacOS แต่ฉันเพิ่งทำประสบการณ์ที่ช่วยฮาร์ดไดรฟ์ภายในขนาด 500GB (เชื่อมต่อผ่าน SATA) บนแล็ปท็อปที่ใช้ Linux Mint จาก USB Stick บันทึกภาพช่วยเหลือและบันทึกไฟล์exFatฟอร์แมตฮาร์ดไดรฟ์ USB เริ่มต้นค่อนข้างช้า (1-2MB / วินาที) แต่หลังจากประมาณ 250GB จะมีการรวบรวมข้อมูลที่ <100KB / วินาทีเท่านั้น ดูเหมือนว่าไฟล์ภาพกู้ภัยจะใหญ่ขึ้นช้าลง

จากนั้นฉันย้ายอิมเมจการช่วยเหลือและไฟล์บันทึกไปยังสถานที่ชั่วคราวอีกครั้งฟอร์แมตฮาร์ดไดรฟ์ USB ใหม่ด้วยext4ระบบไฟล์ย้ายไฟล์กลับมาและดำเนินการกระบวนการ ddrescue ต่อไป - และตอนนี้มันทำงานด้วย 1-20MB / วินาทีอีกครั้ง แต่โดยเฉลี่ยประมาณ 7MB / วินาที)!

ดูเหมือนว่าexFatจะเล่นได้ไม่ดีกับไฟล์ที่มีขนาดใหญ่มาก (หลายร้อยกิกะไบต์) อย่างที่บอกไปแล้วฉันไม่ทราบว่านี่เป็นกรณีสำหรับHFS+แต่บางทีคุณอาจต้องการที่จะให้ext4ยิง

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