lưu dữ liệu từ một ổ đĩa bị lỗi


12

Ổ cứng gắn ngoài 3½ "dường như có nguy cơ bị hỏng - nó phát ra tiếng kêu khi không hoạt động .

Tôi đã có được một ổ đĩa thay thế và muốn biết chiến lược tốt nhất để lấy dữ liệu ra khỏi ổ đĩa đáng ngờ với cơ hội tốt nhất là tiết kiệm càng nhiều càng tốt.

Có một số thư mục quan trọng hơn những thư mục khác. Tuy nhiên, tôi đoán rằng việc chọn và chọn thư mục sẽ làm giảm cơ hội lưu toàn bộ nội dung của tôi. Tôi cũng sẽ phải gắn kết nó, kết xuất một danh sách tập tin và sau đó ngắt kết nối nó để có thể ưu tiên hiệu quả các thư mục. Thêm vào thực tế là tốn thời gian để làm điều này, tôi đang nghiêng về phương pháp này.

Tôi đã xem xét chỉ sử dụng dd, nhưng tôi không chắc nó sẽ xử lý các lỗi đọc hoặc các vấn đề khác có thể chỉ ngăn một số phần nhất định của dữ liệu được giải cứu hoặc có thể khắc phục bằng một số lần thử lại, nhưng không nhiều vấn đề như vậy gây nguy hiểm cho các bộ phận khác của ổ đĩa được lưu. Tôi đoán lý tưởng là nó sẽ thực hiện một lần duy nhất để có được càng nhiều càng tốt và sau đó quay lại để thử lại bất cứ điều gì bị bỏ lỡ do lỗi.

Có thể sao chép chậm hơn - ví dụ như tạm dừng mỗi x MB / GB - sẽ tốt hơn là chỉ chạy toàn bộ thao tác nghiêng, chẳng hạn để tránh mọi vấn đề quá nóng?

Đối với đám đông "nơi dự phòng của bạn": đây thực sự là ổ đĩa sao lưu của tôi, nhưng nó cũng chứa một số thứ không quan trọng và cồng kềnh, như âm nhạc, không phải là bản sao lưu, tức là không sao lưu.

Các ổ đĩa đã không thể hiện bất kỳ dấu hiệu thất bại rõ ràng nào ngoài âm thanh hơi đáng ngại này. Tôi đã phải fsck một vài lỗi gần đây - inode mồ côi, số lượng khối / inodes miễn phí không chính xác, sự khác biệt bitmap inode, không có thời gian trên các nút bị xóa; khoảng 20 lỗi trong tất cả.

Hệ thống tập tin của phân vùng là ext3.


đăng chéo trên Askubfoxsuperuser
trực quan

Câu trả lời:


9

Bạn có thể sử dụng ddrescuehoặc dd_rescuehoặc myrescueđể clone đĩa thất bại, mà không hủy trên bất kỳ lĩnh vực không đọc được. (MyresTHER ít cấu hình hơn nhưng có chiến lược mặc định tốt hơn vì nó cố gắng bỏ qua các vùng không thể đọc được.) Điều này sẽ sao chép mọi thứ kể cả không gian trống và sẽ không cho phép bạn đặt ưu tiên. Tuy nhiên, cách tiếp cận cấp thấp như vậy có lợi thế hơn các công cụ cấp hệ thống tệp: nếu thư mục không thể đọc được, bạn vẫn có thể khôi phục các tệp chứa trong đó bằng cách tìm kiếm hình ảnh thô bằng các công cụ như foremost,magicrescue , photorecbao gồm trong testdisk vv


Các liên kết cho magicrescuedường như bị phá vỡ; ý bạn là itu.dk/~jobr/magicresTHER thay vào đó?
Landroni

@landroni Vâng, tôi đoán sinh viên này đã tốt nghiệp, cảm ơn.
Gilles 'SO- ngừng trở nên xấu xa'

"MyresTHER [..] có chiến lược mặc định tốt hơn" Bạn có xem xét việc đăng một ddrescueví dụ được định cấu hình với myrescuemặc định không? Cảm ơn!
Landroni

1
Cho ddrescue/ dd_rescuebạn thực hiện lần đầu tiên với kích thước khối lớn và thay đổi thành nhỏ hơn trong các lần sau (ví dụ: giảm một nửa kích thước mỗi lần). Điều này tất nhiên yêu cầu bạn sử dụng một logfile (xem trang man).
peterph

Một cách khó hiểu, trên các hệ thống dựa trên Debian, lệnh ddrescuexuất phát từ gói gddrescue; dd_rescuetừ gói ddrescue; và myrescuetừ gói myrescue.
Landroni

8

Không có cách nào để biết tốt nhất các tùy chọn của bạn mà không biết chính xác điều gì đang xảy ra với ổ đĩa. Nếu đó là một sự cố cơ học, việc tránh làm nóng nó có thể giúp ích, nhưng nếu đó là do lỗi trong dữ liệu servo, thì nhiệt độ có thể không thành vấn đề.

Tôi sẽ ngay lập tức bắt đầu sao chép dữ liệu duy nhất vào ổ đĩa mới bằng rsync . rsyncsẽ cho phép bạn tạm dừng, tiếp tục và khởi động lại khi cần thiết cho đến khi bạn tắt tất cả dữ liệu.

Sau đó, tôi sẽ chạy một dữ liệu chà trên ổ đĩa. Tôi giả sử từext3 hệ thống tập tin mà bạn đang chạy Linux, vì vậy hãy thử điều này:

# umount /dev/sdX
# badblocks -n /dev/sdX

(Ngắt kết nối ổ đĩa trước là điều quan trọng.)

Điều này sẽ đọc mọi khu vực từ đĩa và ghi lại mà không thay đổi. Điều đó sẽ buộc phần mềm điều khiển ổ đĩa phải kiểm tra mọi lỗi của khu vực và để ánh xạ lại bất kỳ thành phần xấu nào mà nó tìm thấy. Đây là phần quan trọng nhất trong những gì chương trình SpinRite đắt tiền làm. Bước tới đó chỉ khi badblocksthất bại và bạn vẫn chưa nhận được tất cả dữ liệu duy nhất trên ổ đĩa: SpinRite cố gắng nhiều hơn badblocksthế.


2

Nếu đĩa bị chết, trước tiên hãy đảm bảo bạn tạo bản sao tốt nhất có thể (xem câu trả lời của Gilles) và chỉ sau đó tiến hành chơi với ổ đĩa. Bằng cách đó, bạn sẽ luôn có ít nhất một số dữ liệu, trong trường hợp xảy ra sự cố (điều này thường xảy ra với phần cứng bị lỗi).

Nếu bạn sử dụng ddrescue(hoặc dd_rescue, tôi không chắc chắn về những người khác), bạn luôn có thể tạo một bản sao của dữ liệu được sao chép một phần và logfile liên quan và cố gắng cải thiện nó bằng cách chạy ddrescuelại sau khi làm điều gì đó được cho là để sửa ổ đĩa. Nó sẽ cố gắng đọc các phần còn thiếu trong khi để các phần được nhân bản tốt không bị ảnh hưởng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.