Đã xóa 512 byte đầu tiên của đĩa; Làm thế nào tôi có thể khôi phục dữ liệu của mình?


12

Tôi đã vô tình viết một nhị phân 512 byte vào đĩa USB sai ddvà thiết bị không hiển thị bất kỳ phân vùng nào fdisknữa.

Tôi nghĩ rằng tất cả dữ liệu đã biến mất, nhưng dd if=/dev/sdx | stringscho thấy rằng dữ liệu dường như vẫn còn ở đó, vì ddmay mắn thay đã giới hạn ở 512 byte đầu tiên. Có cách nào để phục hồi nó ?

Đĩa có hai phân vùng: một ext4 (~ 4GB) và 16GB còn lại được định dạng là NTFS.

Câu trả lời:


13

Nó phụ thuộc vào chính xác những gì đã có trước đó, nhưng nó có thể dễ dàng (-ish) để phục hồi từ điều này.

  1. Sử dụng ddđể tạo hình ảnh đầy đủ của ổ USB của bạn trên một vị trí an toàn.

  2. Sử dụng ddđể tạo hình ảnh đầy đủ của ổ USB của bạn trên một vị trí an toàn.

  3. Vâng, xin vui lòng giữ một hình ảnh đầy đủ. Hoạt động phục hồi dữ liệu thường có thể gây ra thiệt hại nhiều hơn mong đợi.

  4. Cố gắng nhớ cách bố trí phân vùng trên ổ USB đó. Viết nó xuống . Nó có thể hữu ích nếu bạn có nhật ký hệ thống từ khi đĩa đó (trước khi bị rối) được phát hiện bởi nhân Linux - thông thường nó sẽ in ra một số dữ liệu về các phân vùng được phát hiện.

  5. Sử dụng fdisk để tạo lại MBR với cùng bảng phân vùng. Không định dạng và / hoặc fsck bất kỳ phân vùng .

  6. Cố gắng gắn kết các phân vùng của bạn với tùy chọn chỉ đọc ( -o ro) mount.

  7. Nếu thành công, hãy thử sao chép tất cả các tệp vào vị trí an toàn và xem thiết bị đầu cuối của bạn và ghi nhật ký lỗi I / O - cách điển hình cho các lỗi ranh giới phân vùng được thể hiện là thông qua truy cập ngoài giới hạn trên thiết bị bên dưới.

  8. Nếu sao chép thất bại, khôi phục lại hình ảnh và quay lại bước 4.

  9. Tôi đã đề cập đến việc có một hình ảnh đầy đủ của ổ USB trước khi làm bất cứ điều gì khác?

PS: Bạn cũng có thể muốn xem qua các công cụ như TestDisk , cố gắng tự động hóa quá trình khôi phục. Nhưng bạn vẫn nên có được một hình ảnh đầy đủ đầu tiên.

PS2: Nếu bạn cảm thấy đủ thoải mái, bạn cũng có thể thử nghiệm một chút. Nếu bạn có thể đưa ra một giả định hợp lý cho điểm bắt đầu của phân vùng đầu tiên, thì bạn có thể sử dụngtune2fs -l để có được kích thước chính xác của phân vùng thứ nhất, điều này sẽ cho phép bạn săn bắt đầu phân vùng thứ hai.


# 1: dd if=/dev/sdx of=backup.imgphải không?
edmz

@ mù: Vâng. Bạn có thể muốn đặt một bs=...tùy chọn để tăng kích thước khối và tăng tốc lên một chút.
thkala

Một blockize tốt để sử dụng là bs=64K. TestDisk chắc chắn đáng để thử, và nó có thể hoạt động trên các tệp hình ảnh đĩa cũng như trên các đĩa thực tế. Chúc may mắn!
PM 2Ring

Chạy cat /dev/sdx >backup.imgsẽ nhanh hơn ddtrong nhiều trường hợp và chắc chắn không chậm hơn trong trường hợp này.
roaima

6

Để khôi phục ext4phân vùng và dữ liệu của nó, tôi nghĩ về việc tạo một phân vùng ext4 trên toàn đĩa. Điều này cho phép tôi có quyền truy cập vào dữ liệu và truy xuất thông tin về phân vùng với tune2fs -l, như được đề xuất bởi @thkala. Thông tin này có vẻ rất khả thi và, do đó, không thay đổi.

Rất thú vị, gparted phần nào có thể tìm ra kích thước phân vùng thực tế như hóa ra từ cảnh báo này cho thấy:

10,96 GiB của không gian chưa phân bổ trong phân vùng. Để phát triển hệ thống tệp để điền vào phân vùng, chọn phân vùng và chọn mục menu:

bởi vì 11GiB gần như là kích thước của phân vùng NTFS.

nhập mô tả hình ảnh ở đây

Lưu ý không gian chưa sử dụng rằng, IIRC, đó là không gian mà ext4 vẫn còn trống. Các unallocated GParted nhận dường như là phân vùng NTFS; Bây giờ, làm thế nào tôi có thể khôi phục lại cái đó , có thể bằng cách tìm ra nơi phân vùng đầu tiên kết thúc, tức là tổng số byte của nó?


Cuối cùng TestDisk đã xử lý dễ dàng.


Thông minh. Xin vui lòng bạn chấp nhận câu trả lời của riêng bạn để rõ ràng bạn có một giải pháp chấp nhận được cho câu hỏi của bạn.
roaima

@roaina Có Tôi sẽ hết hạn khi thời hạn mở tối thiểu hai ngày.
edmz
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.