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

    smartctl là gì? Cách sử dụng smartctl trong Linux để kiểm tra sức khỏe ổ cứng
    smartctl là gì? Cách sử dụng smartctl trong Linux để kiểm tra sức khỏe ổ cứng

    smartctl là một tiện ích dòng lệnh giúp quản lý và giám sát hệ thống S.M.A.R.T., từ đó theo dõi chi tiết sức khỏe ổ cứng HDD/SSD trong môi trường máy chủ lẫn máy trạm cá nhân. Trong bài viết này, bạn sẽ tìm hiểu cách cài đặt, sử dụng các lệnh smartctl quan trọng…

    14/04/2026

    cryptsetup là gì? Cách mã hóa phân vùng với cryptsetup (LUKS) trên Linux
    cryptsetup là gì? Cách mã hóa phân vùng với cryptsetup (LUKS) trên Linux

    cryptsetup là tiện ích dòng lệnh nguồn mở trong Linux dùng để quản lý mã hóa đĩa dựa trên dm-crypt và chuẩn LUKS, hỗ trợ tạo volume an toàn với nhiều khóa và tương thích cao. Bài viết này hướng dẫn toàn diện về cryptsetup từ cài đặt, quy trình mã hóa, quản lý key…

    14/04/2026

    Aureport là gì? Hướng dẫn sử dụng lệnh aureport trên Linux
    Aureport là gì? Hướng dẫn sử dụng lệnh aureport trên Linux

    Aureport là công cụ dòng lệnh mạnh mẽ trong hệ thống auditd Linux, chuyên tạo báo cáo thống kê tóm tắt từ các tệp nhật ký kiểm toán. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng aureport để giám sát bảo mật và phân tích hoạt động hệ thống hiệu quả. Những…

    09/04/2026

    Auditctl là gì? Hướng dẫn sử dụng lệnh auditctl trong Linux để quản lý hệ thống Audit
    Auditctl là gì? Hướng dẫn sử dụng lệnh auditctl trong Linux để quản lý hệ thống Audit

    Auditctl là công cụ dòng lệnh quan trọng trong Linux, cho phép quản trị viên thiết lập và quản lý các quy tắc giám sát (audit) trực tiếp trên kernel. Thông qua auditctl, bạn có thể theo dõi chi tiết các hoạt động như truy cập file, thực thi syscall hay hành vi người dùng…

    09/04/2026

    linux

    lenh

    text