- Lệnh dd dùng trong linux là một câu lệnh được dùng khá thường xuyên và được sử dụng trong các trường hợp sau
- Sao lưu và hồi phục toàn bộ dữ liệu ổ cứng hoặc một partition
- Chuyển đổi định dạng dữ liệu từ ASCII sang EBCDIC hoặc ngược lại
- Sao lưu lại MBR tỏng máy
- Chuyển đổi chữ thường sang chữ hoa
- Tạo một file ISO
- Tạo một file với kích cỡ cố định
a) Cấu trúc
#dd if=<địa chỉ đầu vào> of=<địa chỉ đầu ra> option
trong đó - if= địa chỉ nguồn của dữ liệu nó sẽ bắt đầu đọc - of= viết đầu ra của file - option: các tùy chọn cho câu lệnh b) các option
bs=Bytes
: quá trình đọc và ghi bao nhiêu byte một lần đọccbs=bytes
: Chuyển đổi bao nhiêu byte một lầncount=blocks
: thực hiện bao nhiêu block trong quá trình thực thi câu lệnhif
chỉ đường dẫ n đọc đầu vàoof
chỉ đường dẫn ghi đầu raibs=bytes
chỉ ra số byte một lần đọcobs=bytes
Chỉ ra số byte một lần ghiskip=blocks
Bỏ qua bao nhiêu block đầu vàoconv=Convs
Chỉ ra tác vụ cụ thể của câu lệnh, Các tùy chọn được ghi dưới đâyascii
: Chuyển đổi từ mã EBCDIC sang ASCIIebcdic
: chuyển đổi từ mã ASCII sang EBCDIClcase
Chuyển đổi từ chữ thường lên hết thành chứ hoaucase
Chuyển đổi từ chữ hoa sang chữ thườngnocreat
Không tạo ra file đầu ranoerror
tiếp tục sao chép dữ liệu khi đầu vào bị lỗisync
Đồng bộ dữ liệu với ổ đang sau chép sang
- Note: Một số trường biểu diễn cho số lượng byte
- c = 1 byte
- w = 2 byte
- b = 512 byte
- kB = 1000 byte
- K = 1024 byte
- MB = 1000000 byte
- M = 1024*1024 byte
- GB = (1000* 1000 *1000) byte
- G = (1024 * 1024 * 1024) byte
a) sao lưu - phục hồi toàn bộ ổ cứng hoặc phân vùng trong ổ cứng
- Sao lưu toàn bộ dữ liệu ổ cứng sang ổ cứng khác
#dd if=/dev/sda of=/dev/sdb conv=noerror, sync
dd: writing to ‘/dev/sdb’: No space left on device
10485761+0 records in
10485760+0 records out
5368709120 bytes (5,4 GB) copied, 84,5401 s, 63,5 MB/s
Câu lệnh trên dùng để sao lưu toàn bộ dữ liệu của ổ sda sang ổ sdb với tùy chọn trong trườn conv=noerrom.sync với ý nghĩa vẫn tiếp tục sao lưu nếu dữ liệu đầu vào bị lỗi và tự động đồng bộ ới dữ liệu sdb
- Tạo một file ảnh cho ổ sda1. phương pháp này nhanh hơn di chuyển dữ liệu
dd if=/dev/sda1 of=/root/sda1.anh
2097152+0 records in
2097152+0 records out
1073741824 bytes (1,1 GB) copied, 5,98179 s, 180 MB/s
- Nếu muốn nén ảnh file và bạn có thể sử dụng lệnh dưới
dd if=/dev/sda1 | grip > /root/sda1.anh.gz
- Sao lưu dữ liệu từ môt phân vùng này đến một phân vùng khác
dd if=/dev/sda2 of=/dev/sdb2 bs=512 conv=noerror, sync
4+0 records in
3+0 records out
1536 bytes (1,5 kB) copied, 0,00299414 s, 513 kB/s
Đối với câu lệnh trên thì bs=512 có ý nghĩa mỗi làn độc ghi nó sẽ đọc 512 byte
- Phục hồi dữ liệu
dd if=/root/sda1.anh of=/dev/sda1
2097152+0 records in
2097152+0 records out
1073741824 bytes (1,1 GB) copied, 10,7888 s, 99,5 MB/s
b) sao lưu phục hồi MBR
- Việc sao lưu lại MBR là việc làm cần thiết đối với hệ điều hành linux. nó đề phòng cho việc virut có thể vào được vùng MBR.
- Sao lưu MBR
dd if=/dev/sda1 of=/root/mbr.txt bs=512 conunt=1
- Phục hồi lại MBR
dd if=/root/mbr.txt of=/dev/sda1
C) chuyển đổi chữ thường thành chữ in hoa
- Chuyển đổi chữ thường thành chữ in hoa
dd if =/root/test.doc of=/root/test1.doc conv=ucase
- Chuyển đổi chữ hoa thàn chữ thường
dd if=/root/test.doc of=/root/test1.doc conv=scase,sycn
d) Tạo một file có dung lượng cố định
- Ví dụ tạo một file có kích thước 100M
dd if=/dev/zero of=/root/file1 bs=100M count=1