Lệnh dd trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh dd mạnh mẽ trong Linux để tạo ảnh sao lưu của các thiết bị lưu trữ, chẳng hạn như ổ USB, và khôi phục chúng. Lab bao gồm cú pháp và các tùy chọn của lệnh dd, cũng như các ví dụ thực tế về việc tạo và khôi phục ảnh sao lưu. Lab này là một phần của bộ kỹ năng Tiện ích Disk and File System, rất cần thiết cho các systemadmin và người dùng thành thạo cần thực hiện các tác vụ thao tác dữ liệu cấp thấp.

Lab bắt đầu bằng cách giải thích cú pháp và các tùy chọn của lệnh dd, bao gồm cách chỉ định các tập tin hoặc thiết bị đầu vào và đầu ra, đặt kích thước khối và kiểm soát các cập nhật trạng thái trong quá trình sao chép. Sau đó, nó trình bày cách tạo ảnh sao lưu của ổ USB và khôi phục ảnh đó vào một ổ USB khác. Lab giả định rằng bạn có các quyền cần thiết để truy cập các thiết bị lưu trữ trên hệ thống của mình.

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 cả việc tạo ảnh sao lưu của các thiết bị lưu trữ.

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

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

Đây là ý nghĩa của từng phần của lệnh:

  • if=<input_file>: Chỉ định tập tin hoặc thiết bị đầu vào.
  • of=<output_file>: Chỉ định tập tin 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, chẳng hạn như conv=notrunc để không cắt ngắn tập tin đầ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 tin /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 hoạt động 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 rằng 1 GB dữ liệu đã được sao chép từ thiết bị đầu vào sang tập tin đầu ra và hoạt động 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.

Đầu tiên, hãy xác định thiết bị ổ USB. Bạn có thể sử dụng lệnh lsblk để liệt kê tất cả các thiết bị khối được kết nối với hệ thống của bạn:

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 tạo một ảnh sao lưu của ổ USB:

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

Lệnh này tạo một tập tin ảnh sao lưu có tên là usb_backup.img trong thư mục ~/project. 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 hoạt động sao chép.

Ví dụ đầu ra:

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

Đầu ra cho thấy rằng 4.1 GB dữ liệu đã được sao chép từ ổ USB sang tập tin ảnh sao lưu và hoạt động sao chép mất 180 giây với tốc độ truyền 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 mà chúng ta đã 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 tin 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 và status=progress hiển thị tiến trình của hoạt động khôi phục.

Ví dụ đầu ra:

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

Đầu ra cho thấy rằng 4.1 GB dữ liệu đã được sao chép từ tập tin ảnh sao lưu vào ổ USB và hoạt động khôi phục mất 180 giây với tốc độ truyền 22,7 MB/s.

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

Tóm tắt

Trong lab này, bạn đã học cú pháp và các tùy chọn của lệnh dd trong Linux, đây là một công cụ mạnh mẽ để thao tác dữ liệu cấp thấp và tạo ảnh sao lưu của các thiết bị lưu trữ. Bạn đã khám phá cấu trúc lệnh cơ bản, bao gồm if (tập tin đầu vào), of (tập tin đầu ra) và các tùy chọn khác nhau như bs (kích thước khối), count (số lượng khối), conv (chuyển đổi dữ liệu) và status (hiển thị tiến trình). Sau đó, bạn đã học cách tạo ảnh sao lưu của ổ USB bằng cách xác định thiết bị và sử dụng lệnh dd để sao chép dữ liệu vào một tập tin ảnh. Cuối cùng, bạn đã khám phá cách khôi phục ảnh sao lưu vào ổ USB, đảm bảo rằng dữ liệu được sao chép chính xác.

400+ câu lệnh phổ biến trong Linux