Khôi phục dữ liệu trên Linux bằng ddrescue

Khoi Phuc Du Lieu Tren Linux Bang Ddrescue



ddrescue là một công cụ được sử dụng để khôi phục dữ liệu từ một tệp hoặc một thiết bị khối như ổ cứng, SSD, đĩa RAM, CD, DVD và thiết bị lưu trữ USB. Nó sao chép dữ liệu từ thiết bị khối này sang thiết bị khối khác, để lại các khối dữ liệu bị hỏng và chỉ di chuyển những khối dữ liệu tốt. ddrescue là một công cụ khôi phục mạnh mẽ hoàn toàn tự động vì nó không yêu cầu bất kỳ sự can thiệp nào trong quá trình khôi phục. Hơn nữa, nó có thể được dừng lại và tiếp tục lại bất cứ lúc nào nhờ vào tập tin bản đồ ddrescue . Các tính năng chính khác của ddrescue được liệt kê dưới đây:
  • Nó không ghi đè lên dữ liệu đã khôi phục nhưng lấp đầy các khoảng trống trong trường hợp khôi phục lặp lại. Tuy nhiên, nó có thể bị cắt ngắn nếu công cụ được hướng dẫn thực hiện điều đó một cách rõ ràng.
  • Khôi phục dữ liệu vào một tệp từ nhiều tệp hoặc khối.
  • Hỗ trợ nhiều loại giao diện thiết bị như ổ đĩa SATA, ATA, SCSI, MFM, đĩa mềm và thẻ SD.

Trong hướng dẫn này, tôi sẽ khám phá công cụ khôi phục dữ liệu cực kỳ hữu ích này. Tôi cũng sẽ thảo luận về quá trình cài đặt và cách sử dụng nó để khôi phục thiết bị khối hoặc phân vùng.

Ghi chú: Tôi đang sử dụng bản phân phối Linux (Ubuntu 22.04) để xem hướng dẫn trong hướng dẫn này. Quá trình cài đặt tiện ích ddrescue có thể khác nhau nhưng các hướng dẫn sẽ giống nhau trên tất cả các bản phân phối Linux.







Cài đặt ddrescue

Để cài đặt ddrescue trên Linux, đặc biệt Ubuntu và hương vị của nó hoặc Dựa trên Debian bản phân phối, sử dụng:



sudo đúng cách cài đặt giải cứu

Để cài đặt nó trên REHL , Fedora , Và CentOS , trước tiên hãy kích hoạt ẤM (Gói bổ sung dành cho Enterprise Linux).



sudo cài đặt ngon quá phát hành ấm áp

Lệnh trên dành cho các phiên bản mới hơn của bản phân phối tương ứng.





Sau đó thực hiện lệnh sau để cài đặt ddrescue:

sudo cài đặt ngon quá giải cứu

Đối với các bản phân phối Linux dựa trên Arch như Arch-Linux Manjaro , hãy sử dụng lệnh dưới đây để cài đặt tiện ích khôi phục ddrescue.



sudo Pacman -S giải cứu

Vì tôi đang sử dụng Ubuntu 22.04 nên tôi sẽ sử dụng trình quản lý gói APT để cài đặt nó.

Hiểu khái niệm cơ bản

Trước khi sử dụng công cụ ddrescue để khôi phục dữ liệu, tôi khuyên những người dùng mới làm quen với quy trình khôi phục nên hiểu một số quy ước đặt tên của Linux.

Linux nhận dạng các khối (thiết bị) là các tập tin và đặt chúng vào /dev danh mục. Để liệt kê các tập tin trong thư mục /dev, hãy sử dụng lệnh ls /dev yêu cầu.

Các ổ cứng (khối lưu trữ) được biểu diễn bằng sd tiếp theo là bảng chữ cái; trong trường hợp có nhiều thiết bị lưu trữ, các tệp sẽ được biểu diễn dưới dạng /dev/sd Một, /dev/sd b, và như thế.

Nếu thiết bị lưu trữ có phân vùng , khi đó chúng sẽ được biểu thị bằng một số có tên tệp ổ đĩa tương ứng, chẳng hạn như /dev/sda 1 , /dev/sda 2 , và như thế.

Để liệt kê tất cả các khối và các thiết bị được kết nối khác với hệ thống, hãy sử dụng khối danh sách lsblk yêu cầu:

lsblk

Lệnh ddrescue có thể khôi phục toàn bộ khối (chứa MBR & phân vùng) hoặc một phân vùng. Mặt khác, nếu bạn chỉ cần khôi phục các tệp cụ thể từ một phân vùng cụ thể thì tốt hơn là nên khôi phục phân vùng đó thay vì toàn bộ khối.

Những cân nhắc quan trọng

Trước khi sử dụng tiện ích ddrescue, cần cân nhắc một số điểm chính:

  • Đừng cố gắng khôi phục khối được gắn, khối không được ở chế độ chỉ đọc.
  • Đừng cố gắng sửa chữa một khối có lỗi I/O.
  • Hệ thống có thể thay đổi tên thiết bị đầu vào và đầu ra khi khởi động lại. Đảm bảo tên thiết bị là chính xác trước khi bắt đầu quá trình sao chép.
  • Nếu bạn đang sử dụng một khối riêng làm thiết bị đầu ra thì mọi dữ liệu trên thiết bị sẽ bị ghi đè.

Sử dụng ddrescue

Sau khi cài đặt tiện ích ddrescue và hiểu các quy ước đặt tên, bước tiếp theo là xác định đĩa bị lỗi và khôi phục nó bằng công cụ ddrescue.

Khôi phục khối bị hỏng

Ví dụ đầu tiên sẽ bao gồm quá trình khôi phục toàn bộ khối. Đầu tiên, liệt kê các khối bằng cách sử dụng lsblk yêu cầu:

lsblk -O TÊN, KÍCH THƯỚC, FSTYPE

Các -O cờ được sử dụng để chỉ định loại thông tin (trường) mà lệnh sẽ xuất ra. Tôi đã đề cập đến TÊN , KÍCH CỠ , Và FSTYPE hoặc loại hệ thống tập tin.

Bây giờ, bạn có thể xác định khối mục tiêu, phân vùng và vị trí để lưu tệp hình ảnh đã giải cứu.

Một điều quan trọng khác cần lưu ý là trên Linux, tên khối được gán động khi khởi động và sau khi khởi động lại, tên của các khối có thể thay đổi. Vì vậy, hãy cẩn thận khi ghi lại tên khối.

Bây giờ, hãy sử dụng cú pháp sau để giải cứu khối dưới dạng tệp hình ảnh có tệp nhật ký trong thư mục gốc.

sudo giải cứu -d -rX / nhà phát triển / [ khối ] [ con đường / tên ] .img [ logfile_name ] .log

Ghi chú: Thay thế [khối] , [đường dẫn/tên] của tập tin hình ảnh và [logfile_name] với những cái tên ưa thích cho phù hợp.

Trong ví dụ này, tôi đang khôi phục /dev/sda trong thư mục gốc có tên file ảnh recovery.img . Tệp nhật ký còn được gọi là tệp bản đồ là điều cần thiết nếu bạn muốn tiếp tục quá trình khôi phục bất kỳ lúc nào.

sudo giải cứu -d -r2 / nhà phát triển / sda2 recovery.img recovery.log

Hai cờ quan trọng được sử dụng trong lệnh trên.

d -gián tiếp Được sử dụng để yêu cầu công cụ truy cập trực tiếp vào đĩa mà bỏ qua bộ đệm kernel
rX –thử lại In được sử dụng để yêu cầu công cụ thử lại khu vực xấu X số lần

Khi thực hiện lệnh trên, bạn sẽ thấy hai tệp xuất hiện trong trình duyệt tệp có tên recovery.img recovery.log .

Thời gian phục hồi phụ thuộc vào kích thước của khối đầu vào và mức độ hư hỏng. Nếu bạn đang khôi phục một khối lớn, tôi khuyên bạn nên có tệp nhật ký vì có thể mất vài giờ hoặc thậm chí vài ngày để hoàn tất quy trình.

Đầu ra của lệnh trên được đưa ra dưới đây:

Trong hình ảnh đầu ra, ipos là vị trí đầu vào của tệp đầu vào từ nơi bắt đầu sao chép và vết loét là vị trí đầu ra trên tệp đầu ra nơi dữ liệu đang được ghi.

Các chưa thử là kích thước của khối không chờ được thử. Các giải cứu cho biết kích thước của khối được khôi phục thành công. Các pct được giải cứu cho biết sự phục hồi dữ liệu thành công theo tỷ lệ phần trăm. Các điều khoản, không cắt tỉa , không bị loại bỏ , khu vực xấu , Và khu vực xấu là tự giải thích. Tuy nhiên, đọc lỗi thuật ngữ chỉ số lần đọc không thành công.

Các thời gian chạy hiển thị thời gian công cụ cần để hoàn thành quá trình, trong khi thời gian còn lại là thời gian còn lại để hoàn tất quá trình khôi phục. Đầu ra trên hiển thị thời gian còn lại là 0 vì quá trình đã kết thúc, hãy đọc kết quả đầu ra trong hình ảnh sau đây về một quá trình chưa hoàn thành.

Hãy xem những gì chúng tôi nhận được trong tệp nhật ký; để mở tệp nhật ký đã tạo, hãy sử dụng phục hồi vim.log yêu cầu.

Các tình trạng hiện tại là + có nghĩa là quá trình đã kết thúc, trong khi hiện tại_pos là vị trí trên khối.

Danh sách các trạng thái hiện tại được đưa ra trong bảng sau:

? Sao chép
* Cắt tỉa
/ Loại bỏ
Đang thử lại
F Điền vào các khối được chỉ định
G Tạo tệp nhật ký
+ Quá trình đã kết thúc

Bên dưới tệp nhật ký này có các chỉ báo trạng thái của các khối được giải cứu trước đó dưới dạng các ký tự được liệt kê bên dưới:

? Khối chưa được thử
* Khối không được cắt tỉa bị lỗi
/ Khối bị lỗi không bị loại bỏ
Chặn lỗi bad-sector
+ Khối hoàn thiện

Khôi phục tệp hình ảnh thành một khối mới

Khi bạn đã hoàn tất quá trình khôi phục và có tệp hình ảnh. Bây giờ bạn có thể muốn nó chuyển sang ổ đĩa mới từ một ổ đĩa bị hỏng. Để di chuyển tệp hình ảnh sang một khối mới, trước tiên, hãy kết nối khối đó với hệ thống rồi xác định tên khối bằng cách sử dụng lsblk yêu cầu.

Hãy giả sử nó là /dev/sdb , sử dụng lệnh sau để sao chép hình ảnh sang một khối mới.

sudo giải cứu -f recovery.img / nhà phát triển / logfile sdb.log

Các -f cờ được sử dụng để ghi đè lên khối mới nếu có bất kỳ dữ liệu nào. Hãy nhớ rằng tên của tệp nhật ký phải khác để tách biệt với tệp nhật ký được lưu trữ trước đó.

Hoạt động trên cũng có thể được thực hiện bằng cách sử dụng đ , một lệnh mạnh mẽ khác được sử dụng để sao chép các tập tin.

sudo đ nếu như =recovery.img của = / nhà phát triển / sdb

Trước khi thực hiện khôi phục, hãy nhớ rằng khối mới phải đủ lớn để giữ toàn bộ khối đã khôi phục; ví dụ: nếu khối khôi phục là 5GB thì khối mới phải lớn hơn 5GB.

Nếu tệp hình ảnh được khôi phục hiển thị nhiều lỗi thì chúng có thể được sửa chữa bằng cách sử dụng chết tiệt lệnh trên Linux ở một mức độ nào đó. Khi sử dụng Windows, bạn có thể sử dụng CHKDSK hoặc SFC lệnh để thực hiện việc này. Tuy nhiên, khả năng phục hồi phụ thuộc vào số lượng lỗi mà tệp bị hỏng tạo ra.

Bây giờ, quá trình khôi phục và phục hồi đã hoàn tất. Một điều quan trọng khác cần lưu ý là bạn có thể khôi phục khối bị hỏng trực tiếp trên khối khác, thay vì tạo tệp hình ảnh rồi sao chép nó sang khối mới. Chà, trong phần tiếp theo, tôi sẽ trình bày chi tiết về quá trình này.

Khôi phục khối sang khối khác

Để khôi phục trực tiếp một khối sang một khối mới, trước tiên hãy kết nối khối đó với hệ thống và sử dụng lại lsblk lệnh xác định tên khối. Tên khối sai có thể làm rối loạn toàn bộ quá trình và bạn có thể mất dữ liệu.

Sau khi xác định khối nguồn và khối đích, sử dụng lệnh sau để khôi phục khối:

sudo giải cứu -d -f -r2 / nhà phát triển / [ nguồn ] / nhà phát triển / [ điểm đến ] sao lưu.log

Hãy giả sử /dev/sdb là khối đích, vì vậy để sao chép /dev/sda thư mục sang khối mới sử dụng:

sudo giải cứu -d -f -r2 / nhà phát triển / sda / nhà phát triển / sao lưu sdb.log

Một lần nữa, hãy xem những cân nhắc quan trọng được đề cập trong các phần trước trước khi thử quá trình này.

Khôi phục dữ liệu cụ thể từ các tệp hình ảnh được khôi phục

Trong nhiều trường hợp, mục đích của việc khôi phục dữ liệu là tìm các tệp cụ thể từ ổ đĩa bị hỏng. Để truy cập tệp cụ thể, bạn cần gắn tệp hình ảnh. Trên Linux, có thể khám phá tệp hình ảnh đã khôi phục bằng cách sử dụng gắn kết yêu cầu.

Trước khi gắn tệp hình ảnh, hãy tạo một thư mục hoặc thư mục mà bạn muốn trích xuất nội dung của tệp hình ảnh.

mkdir Phục hồiMount

Tiếp theo, gắn tệp hình ảnh bằng cách sử dụng:

sudo gắn kết -O phục hồi vòng lặp.img ~ / Phục hồiMount

Cờ -o biểu thị các tùy chọn, trong khi tùy chọn vòng lặp được sử dụng để coi tệp hình ảnh là một thiết bị khối.

Bây giờ bạn có quyền truy cập vào nội dung của tệp hình ảnh, như được hiển thị trong ảnh chụp màn hình sau.

Để ngắt kết nối khối, hãy sử dụng số lượng lớn yêu cầu.

sudo số lượng lớn ~ / Phục hồiMount

Các tính năng tiên tiến

Để bắt đầu khôi phục từ một điểm cụ thể, hãy sử dụng -Tôi cờ hoặc –vị trí đầu vào . Nó phải được tính bằng byte, theo mặc định là 0 byte. Điều này rất quan trọng để tiếp tục sao chép từ một điểm cụ thể. Ví dụ: nếu bạn muốn bắt đầu quá trình sao chép từ điểm 10 GB, hãy sử dụng lệnh sau.

sudo giải cứu -i10GiB / nhà phát triển / sda imagefile.img logfile.log

Để xác định kích thước tối đa của thiết bị đầu vào, -S cờ sẽ được sử dụng Các -S biểu thị kích thước và cũng có thể được sử dụng như -kích cỡ tính bằng byte. Nếu công cụ không nhận dạng được kích thước của tệp đầu vào, hãy sử dụng tùy chọn này để chỉ định kích thước đó.

sudo giải cứu -s10GiB / nhà phát triển / sda imagefile.img logfile.log

Các -hỏi Tùy chọn này có thể khá tiện dụng vì nó nhắc xác nhận các khối đầu vào và đầu ra trước khi bắt đầu quá trình sao chép. Như đã thảo luận trước đó, hệ thống tự động gán tên cho các khối và chúng thay đổi khi khởi động lại. Vì vậy, trong trường hợp đó, tùy chọn này có thể hữu ích.

sudo giải cứu --hỏi / nhà phát triển / sda imagefile.img logfile.log

Hơn nữa, một danh sách một số tùy chọn khác được đề cập dưới đây:

-R -đảo ngược Để đảo ngược hướng sao chép
-q -khá Để ngăn chặn tất cả các tin nhắn đầu ra
-TRONG –dài dòng Nói rõ hơn, tất cả các thông báo đầu ra
-P –phân bổ trước Để phân bổ trước dung lượng lưu trữ cho tệp đầu ra
-P –xem trước dữ liệu Dòng hiển thị dữ liệu mới nhất đọc mặc định là 3 dòng

ddrescue hoạt động như thế nào

ddrescue sử dụng thuật toán khôi phục mạnh mẽ được chia thành bốn giai đoạn:

1. Sao chép

2. Cắt tỉa

3. Cạo

4. Đang thử lại

Việc thực thi thuật toán ddrescue được hiển thị trong hình ảnh sau đây.

Phần kết luận

Các giải cứu là một công cụ khôi phục mạnh mẽ được sử dụng để khôi phục dữ liệu từ ổ bị hỏng hoặc bị lỗi sang ổ khác bằng cách sao chép dữ liệu. Nó có thể được cài đặt dễ dàng trên bất kỳ bản phân phối Linux nào với sự trợ giúp của trình quản lý gói mặc định. Lưu ý những cân nhắc quan trọng trước khi sử dụng công cụ này được đề cập trong hướng dẫn này. Quá trình sao chép dữ liệu rất đơn giản, unmount ổ đĩa và sử dụng lệnh ddrescue với tên ổ nguồn và tên ổ đích. Đừng quên sử dụng tệp nhật ký vì nó rất hữu ích để tiếp tục quá trình khôi phục.