dd常用参数
if:就是input file,也可以是某设备文件 of:就是output file,也支持是设备文件 bs:规划的一个block大小,若未指定则默认为512byte count:指定bs的数量 skip=n,指 if 后面的原文件跳过 n bytes 再开始读取; seek=n,指 of 后面的目标文件跳过 n bytes 再开始写入; oflag=direct,真实磁盘io
测试硬盘读写速度
- 测试磁盘的IO写速度
~# time dd if=/dev/zero of=1.db bs=8k count=30000
30000+0 records in
30000+0 records out
245760000 bytes (246 MB) copied, 0.731931 s, 336 MB/s
real 0m0.735s
user 0m0.001s
sys 0m0.151s
- 测试磁盘的IO读速度
~# dd if=test.dbf bs=8k count=300000 of=/dev/null
30000+0 records in
30000+0 records out
245760000 bytes (246 MB) copied, 0.0342157 s, 7.2 GB/s
dd备份磁盘
- 查看磁盘信息
root@aikeru:~# fdisk -u -l /dev/sdb
Disk /dev/sdb: 50 MiB, 52428800 bytes, 102400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C94E55EA-A4D2-4E78-9D73-46CBAE7A03EF
Device Start End Sectors Size Type
/dev/sdb1 2048 32767 30720 15M EFI System
/dev/sdb2 32768 94207 61440 30M Linux filesystem
/dev/sdb3 94208 102366 8159 4M BIOS boot
-
备份为文件
-
count=fdisk命令中最大的end数+1
dd bs=512 count=102367 if=/dev/sdb of=./nas.img
- 备份到远程主机
dd bs=512 count=102367 if=/dev/sdb | ssh 192.168.2.2 "of=./nas.img"
- 添加硬盘不重启
partprobe
for i in `seq 0 32`; do echo "- - -" > /sys/class/scsi_host/host$i/scan;done
- 还原
dd bs=512 count=102367 if=./nas.img of=/dev/sdc
dd克隆硬盘
- 本地克隆
dd bs=512 count=102367 if=/dev/sdb of=/dev/sdc
- 远程克隆
dd bs=512 count=102367 if=/dev/sdb | ssh 192.168.2.2 "of=./dev/sdc"
dd添加swap分区
dd if=/dev/zero of=/swapfile bs=1M count=4000
mkswap /swapfile
chmod 600 /swapfile
swapon /swapfile