开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情
dd命令用于复制一个文件,根据输入的参数转换格式化数据
参数
- bs=bytes :一次最多复制bytes字节数据,设置读写的块大小
- cbs=bytes :一次转换bytes字节数据,
- conv=conv[,conv...] :配置转换的参数,多配置使用逗号分隔
- ibs=bytes:一次最多读bytes字节,即一个块大小,默认是512
- count=N:复制N个块,每块大小ibs
- if=file:输入文件名
- of=file:输出文件名
- iflag=flag[,falg...]:按照flags的配置模式读输入文件
- obs=bytes:一次最多写bytes字节,即一个块大小,默认 512
- oflag=flags[,flag..]:按照flags的配置模式写入文件
- seek=N:跳过输出文件开头N个块空间开始写
- skip=N:跳过输入文件N个块空间开始读
bs,cbs,ibs,obs等带数字配置项,数字后面可以跟后缀,需要数字乘以相应字符代表的数值
c =1;w=2;b=512;K=1024;kb=1000;MB=1000*1000;M=1024*1024;GB=1000*1000*1000;G=1024*1024*1024
conv的可用配置
输入输出配置列表
常用命令
检测硬盘读写速度 首先介绍两个虚拟设备、/dev/null /dev/zero
/dev/null:空洞,数据可以随意扔进去,只进不出,有多少消费多少,输入性的设备 /dev/zero:输出型的设备,可以无限输出0值,主要用它来生成一个指定大小的空文件,或者用来清空空间
测试硬盘写入:dd if=/dev/zero of=/test bs=64K count=10000 conv=fdatasync
dd if=/dev/zero of=/test bs=64K count=10000 ofalg=dsync
建议配置conv=fdatasync或者oflag,能够看出来硬盘的大数据的写入速度。默认dd是写到内存中,就退出命令,根本没写到硬盘,得到的参数也是不对的了。
创建swap分区: dd if=/dev/zero of=/swapBuf bs=1M count=1024 创建一个1g的文件、
生成swap文件:mkswap /swapBuf
改一下权限:chmod 0600 /swapBuf
开启swap: swapon /swapBuf
关闭swap: swapoff /swapBuf
free看一下swap数据,都是0 创建并开启一个swap分区,可以看下图效果
备份MBR:dd if=/dev/sda of=/mbrBak bs=512 count=1
表,2字节的签名(0x55 0xaa)。
恢复mbr:dd if=/mbrBak of=/dev/sda bs=512 count=1
仅恢复分区表:dd if=/mbrBak of=/dev/sda bs=1 count=66 seek=446 skip=446
mbr是采用mbr分区表的硬盘的第一个扇区,大小为512字节,其中446字节启动代码,64字节的硬盘分区
使用命令查看一下 hexdump -C -n 512 /dev/sda
备份磁盘:dd if=/dev/sda of=/Disk.img
恢复备份: dd if=/Disk.img of=/dev/sdb
清洗磁盘: dd if=/dev/urandom of=/dev/sdb
脑筋可清醒点,别洗自己硬盘