Làm thế nào để tạo ra disk image bằng lệnh dd? Làm thế nào thực hiện cloning đĩa từ một đĩa live CD Linux cho mục đích sao lưu hoặc phục hồi? Bạn có thể dễ dàng sử dụng lệnh dd để làm cho image của một phân vùng hoặc các ổ đĩa cứng đầy đủ. Một dd image là gì? Disk cloning chỉ là một quá trình đơn thuần tạo ra một image của toàn bộ đĩa. Điều này có thể hữu ích cho việc sao chép đĩa, sao lưu, phục hồi và nhiều hơn nữa. Lệnh dd rất dễ dàng để sử dụng. Cảnh báo: Bạn phải rất cẩn thận khi sử dụng lệnh dd; nó có thể phá hủy dữ liệu. Nhớ thứ tự các tập tin đầu vào (if=) và tập tin đầu ra (of =). Làm thế nào để clone toàn bộ đĩa cứng Cú pháp là: Mã: dd if=/dev/input/DEVICE-HERE of=/dev/OUTPUT/DEVICE-HERE bs=64K conv=noerror,sync Để clone /dev/sdc (250G) đến /dev/sdd (250G) trong Linux, hãy nhập: Mã: dd if=/dev/sdc of=/dev/sdd bs=64K conv=noerror,sync Để clone /dev/ada0 (250G) đến /dev/adb0 (250G) trong FreeBSD, hãy nhập: Mã: dd if=/dev/ada0 of=/dev/adb0 bs=64K conv=noerror,sync Giải thích if = /dev/file: Đầu vào thiết bị/tập tin. of = /dev/file: Đầu ra thiết bị/tập tin. bs = 64k: Đặt kích thước khối tới 64k. Bạn có thể sử dụng 128k hoặc bất kỳ giá trị khác. conv = noerror: Cho phép dd để tiếp tục hoạt động, bỏ qua tất cả các lỗi đọc dữ liệu. sync: Thêm khối đầu vào với zero nếu có bất kỳ lỗi đọc dữ liệu, vì vậy hiệu số dữ liệu ở trong đồng bộ. Làm thế nào để clone một phân vùng Để clone /dev/sdc1 đến /dev/sdd1, hãy nhập: Mã: dd if=/dev/sdc1 of=/dev/sdd1 bs=128K conv=noerror,sync Ví dụ kết quả đầu ra: Mã: 15874+0 records in 15873+0 records out 1040252928 bytes transferred in 3.805977 secs (273320858 bytes/sec) dd make disk image Bạn có thể khởi động từ live cd. Khi khởi động, đảm bảo không phân vùng nào được gắn kết từ nguồn ổ đĩa cứng. Bạn có thể lưu trữ disk image trên một ổ đĩa USB bên ngoài. Cú pháp như sau: Mã: dd if=/dev/INPUT/DEVICE-NAME-HERE conv=sync,noerror bs=64K | gzip -c > /path/to/my-disk.image.gz Trong ví dụ này, tạo disk image cho /dev/da0 có nghĩa là cloning /dev/da0 và lưu trong thư mục hiện hành: Mã: dd if=/dev/da0 conv=sync,noerror bs=128K | gzip -c > centos-core-7.gz Ví dụ kết quả đầu ra: Mã: 29184+0 records in 29184+0 records out 30601641984 bytes transferred in 2149.222297 secs (14238472 bytes/sec) Lệnh trên sẽ clone toàn bộ đĩa cứng, bao gồm MBR, bootloader, tất cả các phân vùng, UUIDs, và dữ liệu. Làm thế nào để khôi phục hệ thống (dd image) Cú pháp là: Mã: gunzip -c IMAGE.HERE-GZ | dd of=/dev/OUTPUT/DEVICE-HERE Ví dụ: Mã: gunzip -c centos-core-7.gz | dd of=/dev/da0