Tôi có một ổ cứng với các khối hoặc khu vực xấu không đọc được do các vấn đề cơ học tiềm ẩn, chẳng hạn như đầu đĩa xấu, động cơ xấu hoặc một số vấn đề khác khiến ổ cứng đọc dữ liệu chậm và nhiều lỗi đọc. Tôi đang thấy trung bình 50 KB / giây, với một số lần đọc giảm xuống dưới 10 KB / giây và thường thì nó bị kẹt hoàn toàn trên một tệp hoặc khu vực, thường là trong một khoảng thời gian khá dài từ 2-10 phút trở lên (khi sử dụng rsync, trước khi hết thời gian).
Tốc độ dường như thay đổi một cách điên cuồng, và nó bị kẹt trên các tập tin rất nhiều, và khi cuối cùng nó bị "tháo gỡ", nó dường như chỉ tồn tại trong một vụ nổ ngắn trước khi nó bị kẹt lại. Ổ đĩa cũng rất yên tĩnh chỉ có âm thanh sao chép tập tin (thường là khi nó bị kẹt / không bật trong một thời gian ngắn, trước khi bị kẹt lại). Do đó, không có âm thanh xấu nào thường liên quan đến cái chết của ổ cứng. Có người cho rằng các vấn đề nghe có vẻ như có thể do đầu đĩa bị sai lệch, đòi hỏi phải đọc lại nhiều lần trước khi cuối cùng đọc dữ liệu thành công. Nghe có vẻ hợp lý, nhưng tôi lạc đề ...
Dù sao, vấn đề với rsync là dường như không có hỗ trợ xử lý lỗi nào. Rõ ràng, nó không có nghĩa là để sử dụng trong việc khôi phục dữ liệu từ ổ cứng không, nhưng tất cả những cái gọi là "phục hồi dữ liệu" tiện ích ra khỏi đó được dành cho việc sử dụng đó thường tập trung vào phục hồi các file bị xóa hoặc sai lầm phân vùng, chứ không phải là sao chép các tập tin ra khỏi ổ cứng. Rõ ràng, việc khôi phục tập tin đã bị xóa không phải là điều tôi cần, vì vậy có lẽ bạn có thể hiểu sự thất vọng của tôi khi không thể tìm thấy những gì tôi đang theo đuổi.
Đương nhiên, đây là nơi bạn có thể nói "Bạn nên sử dụng ddresTHER!" Chà, tất cả đều ổn và bảnh bao, nhưng tôi đã sao lưu hầu hết dữ liệu, vì vậy tôi chỉ muốn khôi phục một số tệp nhất định. Tôi không quan tâm đến việc cố gắng khôi phục toàn bộ phân vùng theo từng khối như ddresTHER. Tôi chỉ quan tâm đến việc giải cứu các tập tin và thư mục cụ thể.
Lý tưởng nhất, điều tôi muốn là một loại giao thoa giữa rsync và ddresTHER: thứ gì đó cho phép tôi chỉ định nguồn và đích là thư mục của các tệp thông thường như rsync (thay vì hai phân vùng đầy đủ như ddresTHER yêu cầu), với cách bỏ qua các tệp với lỗi trong lần chạy đầu tiên và sau đó cho phép tôi thử phục hồi các tệp đó có lỗi trong lần chạy sau (tất nhiên là có lệnh thay đổi một chút), thậm chí có thể cung cấp tùy chọn để chỉ định số lần thử lại ... giống như Làm thế nào ddresTHER hoạt động với các khối, chỉ tôi muốn một tiện ích hoạt động với các tệp / thư mục cụ thể như rsync.
Vì vậy, tôi đang mơ mộng ở đây, hoặc có một cái gì đó tồn tại có thể làm điều này? Hoặc, thậm chí có thể là một cách để làm cho rsync hoặc ddresTHER hoạt động theo cách như vậy? Tôi thực sự cởi mở với bất kỳ giải pháp nào có thể hoạt động, miễn là họ cho phép tôi chọn tệp nào tôi muốn "giải cứu" và có thể bỏ qua các tệp có lỗi trong lần chạy đầu tiên và thử lại / thử lại các lỗi đó sau.
Cho đến nay tôi đã thử rsync với các tùy chọn sau, nhưng nó thường bị kẹt trên một tệp lâu hơn thời gian chờ và lý tưởng là tôi muốn nó chuyển sang tệp tiếp theo và quay lại sau với các tệp mà nó nhận được bị mắc kẹt trên. Tôi không nghĩ rằng điều đó là có thể. Dù sao, đây là những gì tôi đã sử dụng cho đến bây giờ:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/