1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux中dd命令写入数据 Linux中dd命令的用法

linux中dd命令写入数据 Linux中dd命令的用法

时间:2022-06-14 00:02:26

相关推荐

linux中dd命令写入数据 Linux中dd命令的用法

dd命令: convert and copy a file

用法:ddif=/PATH/FROM/SRCof=/PATH/TO/DEST

bs=#:blocksize,复制单元大小

count=#:复制多少个bs

of=file写到所命名的文件而不是到标准输出

if=file从所命名文件读取而不是从标准输入

bs=size指定块大小(既是ibs也是obs)

ibs=size一次读size个byte

obs=size一次写size个byte

cbs=size一次转化size个byte

skip=blocks从开头忽略blocks个ibs大小的块

seek=blocks从开头忽略blocks个obs大小的块

count=n只拷贝n个记录

用指定的参数转换文件:conv=conversion[,conversion...]

转换参数:ascii转换EBCDIC为ASCII

ebcdic转换ASCII为EBCDIC

block转换一行数据为长度为cbs的记录,不足部分用空格填充。

unblock替代cbs长度的每一行尾的空格为新行

lcase把大写字符转换为小写字符

ucase把小写字符转换为大写字符

nocreat不创建输出文件

noerror出错时不停止

notrunc不截断输出文件

sync把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

备份:ddif=/dev/sdxof=/dev/sdy

将本地的/dev/sdx整盘备份到/dev/sdyddif=/dev/sdxof=/path/to/image

将/dev/sdx全盘数据备份到指定路径的image文件ddif=/dev/sdx|gzip>/path/to/image.gz

备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径。

恢复:ddif=/path/to/imageof=/dev/sdx

将备份文件恢复到指定盘gzip-dc/path/to/image.gz|ddof=/dev/sdx

将压缩的备份文件恢复到指定盘。

拷贝内存资料到硬盘:ddif=/dev/memof=/root/mem.binbs=1024

将内存里的数据拷贝到root目录下的mem.bin文件。

从光盘拷贝iso镜像:ddif=/dev/cdromof=/root/cd.iso

拷贝光盘数据到root文件夹下,并保存为cd.iso文件。

销毁磁盘数据:ddif=/dev/urandomof=/dev/sda1

利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/ sda1将无法挂载,创建和拷贝操作无法执行。

得到最恰当的block size:ddif=/dev/zerobs=1024count=1000000

of=/root/1Gb.file

ddif=/dev/zerobs=2048count=500000

of=/root/1Gb.file

ddif=/dev/zerobs=4096count=250000

of=/root/1Gb.file

通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小:

测试硬盘读写速度:ddif=/dev/zeroof=/root/1Gb.filebs=1024count=1000000

ddif=/root/1Gb.filebs=64k|ddof=/dev/null

通过上两个命令输出的执行时间,可以计算出测试硬盘的写/读/速度。

修复硬盘:ddif=/dev/sdaof=/dev/sda

当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生,且这个过程是安全高效的。

示例:

1.备份MBR:[root@anonymous~]#ddif=/dev/sda1of=/tmp/mbr.bakbs=512

count=11+0recordsin

1+0recordsout

512bytes(512B)copied,0.000160395s,3.2MB/s

2.有一个大于2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?[root@anonymous~]#ddif=fileAof=fileBbs=1count=128skip=63seek=31conv=notrunc

128+0recordsin

128+0recordsout

128bytes(128B)copied,0.000421017s,304kB/s

3.创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

[root@anonymous~]#ddif=/dev/zeroof=testbs=1Mcount=2048

2048+0recordsin

2048+0recordsout

2147483648bytes(2.1GB)copied,121.521s,17.7MB/s

[root@anonymous~]#mkfs.ext4-b2048-L'TEST'-m1test

mke2fs1.41.12(17-May-)

testisnotablockspecialdevice.

Proceedanyway?(y,n)y

Filesystemlabel=TEST

OStype:Linux

Blocksize=2048(log=1)

Fragmentsize=2048(log=1)

Stride=0blocks,Stripewidth=0blocks

131072inodes,1048576blocks

10485blocks(1.00%)reservedforthesuperuser

Firstdatablock=0

Maximumfilesystemblocks=537919488

64blockgroups

16384blockspergroup,16384fragmentspergroup

2048inodespergroup

Superblockbackupsstoredonblocks:

16384,49152,81920,114688,147456,409600,442368,802816

Writinginodetables:done

Creatingjournal(32768blocks):done

Writingsuperblocksandfilesystemaccountinginformation:done

Thisfilesystemwillbeautomaticallycheckedevery35mountsor

180days,whichevercomesfirst.Usetune2fs-cor-itooverride.

[root@anonymous~]#tune2fs-oacltest

tune2fs1.41.12(17-May-)

[root@anonymous~]#echo'/root/test/mnt/testext4defaults00'>>/etc/fstab

[root@anonymous~]#echo'/root/test/mnt/testext4defaults,loop00'>>/etc/fstab

[root@anonymous~]#mount-a

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。