Linux系统下dd命令详解
简介
dd命令可以标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出,常用于刻录启动光盘、备份硬盘文件和格式化硬盘数据等操作。
参数详解
参数 解析
if=文件名 输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名 输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
ibs=bytes 一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes 一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes 同时设置读入/输出的块大小为bytes个字节。
cbs=bytes 一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks 从输入文件开头跳过blocks个块后再开始复制。
seek=blocks 从输出文件开头跳过blocks个块后再开始复制,注意通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
count=blocks 仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=conversion 用指定的参数转换文件。
ascii 转换ebcdic为ascii
ebcdic 转换ascii为ebcdic
ibm 转换ascii为alternate ebcdic
block 把每一行转换为长度为cbs,不足部分用空格填充
unblock 使每一行的长度都为cbs,不足部分用空格填充
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
swap 交换输入的每对字节
noerror 出错时不停止
notrunc 不截短输出文件
sync 将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
实例操作
1、将sda硬盘数据备份到sdb上:
dd if=/dev/sda of=/dev/sdb
2、备份硬盘引导分区表:
dd if=/dev/sda of=/mnt/sda.mbr bs=512 count=1
注意前446字节为mbr,446-512为磁盘分区表
3、刻录系统启动u盘:
dd if=/xxx_20210428.iso of=/dev/sdb1
注意如为光盘则of=/dev/cdrom,同时u盘设备要根据系统识别的设备号进行确定。
4、格式化硬盘数据:
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
dd if=dev/zero of=dev/block/by-name/isedata count=34 bs=1M
dev/null 与dev/zero区别:
dev/null, 它等价于一个只写文件,所有写入它的内容都会永远丢失,被用作系统“垃圾桶”
dev/zero, 它是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0,可以使用任何你需要的数目。一般用来初始化盘,和文件。当然,更多用来测硬盘读写速度。
原文链接:https://blog.csdn.net/Luckiers/article/details/116301609| |