Lệnh dd trong linux với các ví dụ dễ hiểu

Lệnh dd trong Linux là một công cụ mạnh mẽ để sao chép và chuyển đổi dữ liệu từ một nguồn sang một đích. Nó thường được sử dụng để tạo ảnh đĩa, sao lưu dữ liệu hoặc chuyển đổi định dạng tệp một cách linh hoạt. Với dd, bạn có thể kiểm soát chính xác quá trình sao chép, từ kích thước khối đến số lượng khối được xử lý.

Lệnh dd trong linux là gì?

Lệnh command dd in linux là một công cụ dòng lệnh mạnh mẽ, thường được sử dụng để sao chép và chuyển đổi dữ liệu từ một nguồn sang một đích. Nó có thể sao chép toàn bộ ổ đĩa, tạo ảnh đĩa, hoặc chuyển đổi định dạng dữ liệu một cách linh hoạt. dd hoạt động bằng cách đọc dữ liệu theo từng khối và ghi chúng vào đích, cho phép kiểm soát chi tiết quá trình sao chép. Tuy nhiên, cần cẩn thận khi sử dụng dd vì một sai sót nhỏ có thể dẫn đến mất dữ liệu nghiêm trọng, đặc biệt khi ghi vào ổ đĩa. Hãy luôn kiểm tra kỹ các tham số trước khi thực thi lệnh để đảm bảo an toàn cho dữ liệu của bạn.

Tìm hiểu Cú pháp và Các Tùy chọn của Lệnh dd

Trong bước này, chúng ta sẽ tìm hiểu về cú pháp và các tùy chọn của lệnh dd trong Linux. Lệnh dd là một công cụ mạnh mẽ được sử dụng để thao tác dữ liệu ở cấp thấp, bao gồm tạo ảnh sao lưu của các thiết bị lưu trữ.

Đầu tiên, hãy cùng tìm hiểu cú pháp cơ bản của lệnh dd:

dd if=<input_file> of=<output_file> [options]

Dưới đây là ý nghĩa của từng phần trong lệnh:

  • if=<input_file>: Chỉ định tệp hoặc thiết bị đầu vào.
  • of=<output_file>: Chỉ định tệp hoặc thiết bị đầu ra.
  • [options]: Các tùy chọn khác nhau có thể được sử dụng để tùy chỉnh hành vi của lệnh dd.

Một số tùy chọn phổ biến cho lệnh dd bao gồm:

  • bs=<bytes>: Đặt kích thước khối tính bằng byte, mặc định là 512 byte.
  • count=<blocks>: Chỉ định số lượng khối đầu vào cần sao chép.
  • conv=<conversion>: Thực hiện các chuyển đổi khác nhau trên dữ liệu đầu vào, ví dụ conv=notrunc để không cắt ngắn tệp đầu ra.
  • status=<type>: Kiểm soát các cập nhật trạng thái được hiển thị trong quá trình sao chép, tùy chọn status=progress hiển thị tiến trình.

Ví dụ sử dụng:

sudo dd if=/dev/sdb of=/tmp/usb_backup.img bs=4M status=progress

Lệnh này tạo một ảnh sao lưu của thiết bị /dev/sdb (thường là ổ USB) và lưu trữ nó trong tệp /tmp/usb_backup.img. Tùy chọn bs=4M đặt kích thước khối thành 4 MB và status=progress hiển thị tiến trình của thao tác sao chép.

Ví dụ đầu ra:

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 60.0926 s, 17.9 MB/s

Đầu ra cho thấy 1 GB dữ liệu đã được sao chép từ thiết bị đầu vào sang tệp đầu ra, và thao tác sao chép mất 60 giây với tốc độ truyền 17.9 MB/s.

Tạo Ảnh Sao Lưu của Ổ USB

Trong bước này, chúng ta sẽ tạo ảnh sao lưu của ổ USB bằng lệnh dd quen thuộc.

Đầu tiên, hãy xác định thiết bị ổ USB của bạn bằng cách dùng lệnh lsblk nhé.

sudo lsblk

Bạn hãy tìm thiết bị tương ứng với ổ USB, thường có tên là /dev/sdb hoặc tương tự.

Bây giờ, chúng ta sẽ bắt đầu tạo ảnh sao lưu cho ổ USB của bạn ngay thôi nào.

sudo dd if=/dev/sdb of=~/project/usb_backup.img bs=4M status=progress

Lệnh này sẽ tạo ra file ảnh sao lưu tên là usb_backup.img trong thư mục ~/project.

Tùy chọn bs=4M đặt kích thước block là 4 MB, còn status=progress hiển thị tiến trình sao chép.

Ví dụ về kết quả:

4096000000 bytes (4.1 GB, 3.8 GiB) copied, 180.104 s, 22.7 MB/s

Kết quả cho thấy 4.1 GB dữ liệu đã được sao chép từ ổ USB vào file ảnh sao lưu.

Quá trình sao chép mất 180 giây với tốc độ truyền dữ liệu là 22.7 MB/s.

Khôi phục Ảnh Sao Lưu vào Ổ USB

Trong bước này, chúng ta sẽ khôi phục ảnh sao lưu của ổ USB đã tạo ở bước trước.

Đầu tiên, hãy xác định lại thiết bị ổ USB bằng lệnh lsblk:

sudo lsblk

Tìm thiết bị tương ứng với ổ USB của bạn, thường có tên là /dev/sdb hoặc tương tự.

Bây giờ, hãy khôi phục ảnh sao lưu vào ổ USB:

sudo dd if=~/project/usb_backup.img of=/dev/sdb bs=4M status=progress

Lệnh này khôi phục tệp usb_backup.img vào thiết bị ổ USB /dev/sdb.

Tùy chọn bs=4M đặt kích thước khối thành 4 MB, còn status=progress hiển thị tiến trình khôi phục.

Ví dụ về đầu ra:

4096000000 bytes (4.1 GB, 3.8 GiB) copied, 180.104 s, 22.7 MB/s

Đầu ra cho thấy 4.1 GB dữ liệu đã được sao chép từ tệp ảnh sao lưu vào ổ USB.

Quá trình khôi phục mất 180 giây với tốc độ truyền là 22.7 MB/s.

Sau khi hoàn tất, bạn có thể kiểm tra nội dung ổ USB để đảm bảo dữ liệu đã được khôi phục chính xác.

Kết luận cho linux dd command

Tóm lại, lệnh dd là một công cụ mạnh mẽ nhưng cũng tiềm ẩn rủi ro trong Linux, đòi hỏi sự cẩn trọng khi sử dụng. Hãy luôn kiểm tra kỹ các tham số trước khi thực thi để tránh mất dữ liệu không mong muốn, đặc biệt là với các ổ đĩa. Với khả năng sao chép, chuyển đổi và ghi dữ liệu ở mức thấp, linux dd command là một phần không thể thiếu trong bộ công cụ của người quản trị hệ thống. Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về cách thức hoạt động và ứng dụng của lệnh này. Hãy thử nghiệm với các tùy chọn khác nhau trên môi trường thử nghiệm để làm quen và khai thác tối đa sức mạnh của nó. Chúc bạn thành công trong việc làm chủ công cụ hữu ích này! Đừng quên sao lưu dữ liệu quan trọng trước khi thực hiện bất kỳ thao tác nào với dd nhé.

Last Updated : 16/10/2025