Liên hệProfile
Danh mục

Mục Lục

    ddrescue Linux là gì? Cách phục dữ liệu ổ cứng lỗi bằng ddrescue

    Nguyễn Hưng

    Ngày đăng:

    24/02/2026

    Cập nhật lần cuối:

    24/02/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    24/02/2026

    Cập nhật lần cuối:

    24/02/2026

    Mục lục

    ddrescue là lệnh chuyên dụng được sử dụng để lấy lại dữ liệu, dùng để sao chép dữ liệu từ ổ đĩa, phân vùng hoặc thiết bị lưu trữ đang bị lỗi sang một thiết bị khác theo cách an toàn và tối ưu nhất có thể. Trong bài viết này, mình sẽ được hướng dẫn chi tiết cách cài đặt và sử dụng ddrescue để cứu dữ liệu một cách an toàn và chuyên nghiệp.

    Những điểm chính

    • Định nghĩa ddrescue Linux: Hiểu rõ ddrescue là công cụ chuyên dùng để cứu dữ liệu từ các thiết bị lưu trữ bị lỗi, hoạt động an toàn và tối ưu hơn lệnh dd.
    • Các tính năng chính: Nắm được các tính năng vượt trội như tự động bỏ qua lỗi, sử dụng mapfile để tiếp tục, thuật toán quét đa tầng và khả năng hợp nhất bản sao.
    • Cách cài đặt: Biết cách cài đặt ddrescue nhanh chóng trên các bản phân phối Linux phổ biến và lưu ý về tên gói (gddrescue).
    • Các ví dụ sử dụng thực tế: Thành thạo quy trình cứu dữ liệu qua 2 bước: sao lưu nhanh dữ liệu tốt trước, sau đó đọc lại vùng bị lỗi.
    • Hướng dẫn khôi phục dữ liệu: Học được cách mount file ảnh đĩa (.img) đã cứu để truy cập và sao chép lại các file quan trọng.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề thực tế như sự khác biệt giữa ddddrescue, khi nào nên dùng các tùy chọn -n, -r, -d và khả năng hợp nhất từ nhiều nguồn.

    ddrescue Linux là gì?

    Lệnh ddrescue trong Linux là công cụ chuyên dùng để khôi phục dữ liệu, cho phép sao chép dữ liệu từ ổ đĩa, phân vùng hoặc thiết bị lưu trữ đang lỗi sang một thiết bị khác một cách an toàn và tối ưu nhất có thể. Lệnh này sẽ tự động bỏ qua các vùng đọc lỗi, ưu tiên chép hết phần dữ liệu còn tốt và dùng file nhật ký để có thể tiếp tục thử đọc lại các vùng hỏng nhiều lần ở các lần chạy sau, nhờ đó giảm tối đa khả năng mất dữ liệu.

    Lệnh ddrescue trong Linux là công cụ chuyên dùng để khôi phục dữ liệu.
    Lệnh ddrescue trong Linux là công cụ chuyên dùng để khôi phục dữ liệu.

    Cú pháp của lệnh ddrescue trong Linux như sau:

    ddrescue [options] infile outfile [mapfile]

    Trong đó:

    • infile: Là thiết bị nguồn bị lỗi.
    • outfile: Là nơi lưu dữ liệu.
    • mapfile: File ghi nhật ký tiến trình.
    Cú pháp, các tham số, tùy chọn, và mô tả ngắn cách sử dụng lệnh ddrescue
    Cú pháp, các tham số, tùy chọn, và mô tả ngắn cách sử dụng lệnh ddrescue

    Các tính năng chính của ddrescue Linux

    Các tính năng nổi bật của ddrescue đó là:

    • Tự động bỏ qua lỗi: ddrescue sẽ tự động nhảy qua các bad sector để tránh làm treo hệ thống, đồng thời ưu tiên sao chép vùng dữ liệu tốt trước.
    • Cơ chế Mapfile: Lệnh này sẽ ghi lại trạng thái của từng sector vào một file log, cho phép người dùng tạm dừng và tiếp tục quá trình cứu dữ liệu bất cứ lúc nào mà không cần chạy lại từ đầu.
    • Thuật toán quét đa tầng: Lệnh sẽ sao chép nhanh dữ liệu tốt trước, sau đó quay lại đọc kỹ dữ liệu lỗi sau và thử lại nhiều lần để khôi phục dữ liệu tối đa.
    • Đọc ngược hướng: ddrescue hỗ trợ tính năng đọc dữ liệu từ cuối ổ đĩa ngược về đầu, rất hữu ích trong trường hợp đầu đọc của ổ cứng gặp khó khăn ở các sector đầu tiên.
    • Hợp nhất bản sao: ddrescue cho phép kết hợp dữ liệu từ nhiều lần đọc khác nhau vào một file ảnh duy nhất để lấp đầy các khoảng trống dữ liệu bị thiếu.
    • Hoạt động tự động: Công cụ chạy hoàn toàn tự động trên dòng lệnh, không yêu cầu sự can thiệp hay giám sát liên tục của người dùng khi gặp lỗi đọc/ghi.
    Các tính năng chính của ddrescue Linux
    Các tính năng chính của ddrescue Linux

    Cách cài đặt ddrescue chi tiết

    Trên hầu hết các bản phân phối Linux, bạn có thể cài đặt nhanh chóng với các lệnh tương ứng như sau:

    Trên Ubuntu/Debian:

    sudo apt install gddrescue

    Trên Arch/Manjaro:

    sudo pacman -S gnu-ddrescue

    Fedora/RHEL:

    sudo dnf install ddrescue

    Lưu ý

    Tên gói cài đặt thường là gddrescue hoặc gnu-ddrescue, do đó bạn tránh nhầm lẫn với một công cụ cũ tên là dd_rescue vì cách hoạt động của chúng hoàn toàn khác nhau.
    Kiểm tra phiên bản hiện tại của ddrescue
    Hiển thị số phiên bản chương trình

    Các ví dụ sử dụng lệnh ddrescue thực tế

    Giả sử bạn có một chiếc USB chứa dữ liệu quan trọng nhưng bị lỗi và không thể copy file, khi đó bạn hãy thực hiện khôi phục lại dữ liệu với 2 bước sau:

    Bước 1: Sao lưu nhanh dữ liệu tốt

    Trước hết, bạn hãy chạy ddrescue để sao lưu toàn bộ vùng không bị lỗi sang một file .img:

    sudo ddrescue -f -n /dev/sda13 /mnt/usb.img /mnt/usb.log

    Giải thích câu lệnh:

    • -f: Cho phép ghi đè file image.
    • -n: Chỉ đọc vùng sạch, bỏ qua lỗi.
    • /dev/sdb: Thiết bị nguồn (USB).
    • /mnt/backup/usb.img: File ảnh đích để lưu dữ liệu.
    • /mnt/backup/usb.log: File ghi nhật ký (mapfile) quá trình cứu dữ liệu.
    Sao lưu toàn bộ vùng không bị lỗi
    Sao lưu toàn bộ vùng không bị lỗi

    Lưu ý: File .log có vai trò quan trọng, giúp bạn tiếp tục khôi phục sau này mà không cần làm lại từ đầu.

    Bước 2: Đọc lại vùng bị lỗi

    Sau khi đã lưu xong phần dữ liệu tốt, bạn thực hiện lệnh sau để đọc các sector đã bị bỏ qua ở bước trước.

    sudo ddrescue -d -r3 /dev/sdb /mnt/usb.img /mnt/usb.log

    Giải thích câu lệnh:

    • -d: Đọc thiết bị trực tiếp và bỏ qua cache
    • -r3: thử lại 3 lần các sector lỗi
    Đọc lại vùng bị lỗi
    Đọc lại vùng bị lỗi

    Lưu ý: Bạn sử dụng lại chính xác file usb.log ở bước 1. Ddrescue sẽ đọc file này, biết được chỗ nào chưa đọc được và chỉ tập trung xử lý đúng những chỗ đó, không đọc lại từ đầu.

    Hướng dẫn khôi phục dữ liệu từ file Image

    Sau khi lấy lại dữ liệu, bạn sẽ có một file usb.img. Đây là bản sao hoàn chỉnh nhất của chiếc USB lỗi. Để lấy dữ liệu ra, bạn không cần giải nén mà hãy mount như một ổ đĩa ảo:

    Bước 1: Bạn tạo thư mục để mount:

    sudo mkdir /mnt/image

    Bước 2: Tiếp theo, bạn mount file ảnh đĩa:

    sudo mount -o loop,ro /mnt/backup/usb.img /mnt/image

    Tham số ro có nghĩa là Read-Only, giúp bảo vệ file image không bị ghi đè nhầm.

    Câu hỏi thường gặp

    Khác biệt chính giữa dd và ddrescue là gì?

    – dd thường được dùng để sao chép block dữ liệu và sẽ dừng hoặc chậm lại rất nhiều khi gặp sector lỗi. Trong khi đó, ddrescue được thiết kế riêng cho việc lấy lại dữ liệu, lệnh sẽ tự động bỏ qua bad sector, ghi log chi tiết vào mapfile và đọc lại nhiều lần vùng lỗi ở các lần chạy sau. Ngoài ra, ddrescue ưu tiên sao chép nhanh toàn bộ vùng còn tốt trước, giúp bạn lấy được nhiều dữ liệu nhất có thể trước khi ổ đĩa bị lỗi hoàn toàn

    Khi nào nên dùng tham số -n, -r và -d?

    -n phù hợp cho pass đầu tiên, khi bạn chỉ muốn sao chép thật nhanh toàn bộ vùng đọc tốt và bỏ qua vùng lỗi để giảm áp lực lên ổ đĩa đang sắp chết.​
    -r dùng cho các pass sau, cho phép thử lại vùng lỗi một số lần có giới hạn (ví dụ -r3) để tìm thêm dữ liệu mà không phải đọc lại thiết bị quá mức.​
    -d bật chế độ đọc trực tiếp từ thiết bị, bỏ qua cache kernel; phù hợp khi thiết bị có hành vi bất thường, nhưng nên dùng cẩn trọng vì có thể khiến lỗi I/O lộ rõ hơn.​

    Có thể kết hợp nhiều nguồn khác nhau để khôi phục một image hoàn chỉnh không?

    Câu trả lời là có, ddrescue hỗ trợ tự động hợp nhất backup. Nếu bạn có nhiều bản đĩa/đĩa quang/bản clone cùng nội dung nhưng hỏng ở các vị trí khác nhau, bạn có thể chạy ddrescue tuần tự trên từng bản với cùng một file output và cùng mapfile. Khi đó, mỗi lần chạy mới chỉ đọc những block còn thiếu hoặc hỏng trong image đích, nhờ vậy tăng cơ hội thu được một bản image hoàn chỉnh dù không có nguồn nào còn nguyên 100%.​

    GNU ddrescue là công cụ dòng lệnh chuyên dụng cho việc cứu dữ liệu, cho phép bạn sao chép tối đa phần dữ liệu còn đọc được từ ổ đĩa, phân vùng hoặc USB đang gặp lỗi sang một thiết bị khác một cách an toàn và có kiểm soát. Nhờ cơ chế mapfile, thuật toán quét nhiều pha và khả năng tự động bỏ qua rồi thử đọc lại các bad sector, ddrescue giúp bạn tạo ra một bản image an toàn để thao tác, qua đó gia tăng đáng kể khả năng khôi phục dữ liệu trong khi vẫn giảm thiểu rủi ro làm thiết bị gốc hư hỏng nặng thêm.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn dùng timeout để chạy lệnh có giới hạn trong Linux chi tiết
    Hướng dẫn dùng timeout để chạy lệnh có giới hạn trong Linux chi tiết

    Timeout là một lệnh trong Linux dùng để chạy chương trình với giới hạn thời gian thực thi. Nếu chương trình vẫn chạy sau thời gian giới hạn, timeout sẽ tự động chấm dứt tiến trình đó. Trong bài viết dưới đây, mình sẽ hướng dẫn các bạn chi tiết cách sử dụng lệnh timeout…

    24/02/2026

    Hướng dẫn 5 cách tạo mật khẩu ngẫu nhiên trong Linux nhanh chóng và đơn giản
    Hướng dẫn 5 cách tạo mật khẩu ngẫu nhiên trong Linux nhanh chóng và đơn giản

    Trong quá trình vận hành hệ thống Linux, việc thiết lập mật khẩu mạnh là bước quan trọng nhất để đảm bảo an toàn thông tin. Thông qua các công cụ dòng lệnh để tạo mật khẩu ngẫu nhiên không chỉ giúp tăng cường lớp bảo mật mà còn hỗ trợ quản trị viên tiết…

    24/02/2026

    Hướng dẫn 5 cách khắc phục lỗi E: Unable to locate package Ubuntu nhanh chóng và hiệu quả
    Hướng dẫn 5 cách khắc phục lỗi E: Unable to locate package Ubuntu nhanh chóng và hiệu quả

    Lỗi “E: Unable to locate package Ubuntu” nghĩa là APT không tìm thấy gói có tên “Ubuntu” trong các kho phần mềm đang được cấu hình trên hệ thống, nên không thể cài đặt gói đó. Tròng bài viết này, mình sẽ cùng bạn tìm hiểu nguyên nhân và hướng dẫn bạn cách khắc phục…

    24/02/2026

    Hướng dẫn giải nén định dạng .bz2 nhanh chóng và chi tiết
    Hướng dẫn giải nén định dạng .bz2 nhanh chóng và chi tiết

    .bz2 là định dạng nén dữ liệu bằng thuật toán bzip2, được thiết kế để nén một file đơn lẻ với tỷ lệ nén cao và thường dùng trên các hệ điều hành Unix/Linux cho mã nguồn, file log. Trong bài viết này, mình sẽ hướng dẫn bạn cách dùng lệnh giải nén định dạng…

    24/02/2026

    linux

    lenh

    text