dd/skip(input file)/seek(outputfile) 参数计算/十六进制等

本文介绍了Linux命令dd的使用,包括skip和seek参数在备份和写入文件时的作用。通过示例展示了如何从设备文件中提取特定区域的数据,并进行了大小转换。同时,还提到了hex dump的使用场景。

1. skip / seek  

:skip=xxx是在备份时对if 后面的部分也就是原文件跳过多少块再开始备份;seek=xxx则是在备份时对of 后面的部分也就是目标文件跳过多少块再开始写。

Example:

u-boot_params.bin is saved in MMC offset 40960, size 153600

dump it

root@localhost:/tmp# dd if=/dev/mmcblk0  of=./u-boot_params.bin  bs=1  skip=40960  count=153600
153600+0 records in
153600+0 records out
root@localhost:/tmp# du -hs  u-boot_params.bin
152.0K  u-boot-para.bin
root@localhost:/tmp#

Example 2

# dd uboot with IPL head, skip MBR from input file
 dd if=u-boot.s32 of=/dev/mmcblk0 conv=notrunc bs=256 count=1 seek=0
 dd if=u-boot.s32 of=/dev/mmcblk0 conv=notrunc bs=512 seek=1 skip=1    ### Keep MBR/partition table  
 

2. hex  

Example 


root@evm:# dd if=/dev/mmcblk0  of=./uenv.bin   skip=$((0x1e0000))  bs=1  count=$((0x2000))

3. parameter calculation


root@evb:#  dd  if=/dev/mmcblk0  of=eMMC-hex-dump   count=$((8192*1)) bs=512
root@evb:#  dd  if=/dev/mmcblk0  of=eMMC-hex-dump   count=$((8192*512))  bs=1

在Unix或Linux系统中,`dd`命令是一个非常强大且灵活的工具,主要用于复制文件和进行文件转换。该命令通常用于复制文件时进行格式转换,例如复制磁盘映像或备份文件[^1]。 ### 基本语法 `dd`命令的基本语法如下: ```bash dd if=<输入文件> of=<输出文件> [选项] ``` - `if`:指定输入文件。 - `of`:指定输出文件。 - 其他常用选项包括: - `bs`:设置块大小(例如`bs=512`)。 - `count`:指定复制的块数(例如`count=100`)。 - `skip`:跳过输入文件的块数(例如`skip=10`)。 - `seek`:跳过输出文件的块数(例如`seek=10`)。 ### 常见用法 1. **复制文件** ```bash dd if=input_file of=output_file ``` 此命令会将`input_file`的内容复制到`output_file`中。 2. **备份磁盘或分区** ```bash dd if=/dev/sda of=disk_backup.img ``` 此命令可以用于创建磁盘`/dev/sda`的完整备份。 3. **转换文件格式** ```bash dd if=input_file of=output_file conv=ucase ``` 此命令将输入文件的内容转换为大写后写入输出文件。 4. **限制块大小** ```bash dd if=input_file of=output_file bs=1M ``` 此命令使用1MB的块大小进行复制,可以提高复制效率。 5. **创建指定大小的文件** ```bash dd if=/dev/zero of=large_file bs=1M count=100 ``` 此命令会创建一个100MB大小的文件,内容全部为零。 ### 注意事项 - **谨慎使用`dd`命令**:由于`dd`命令直接操作文件和设备,因此需要特别小心,避免误操作导致数据丢失。 - **性能优化**:可以通过调整`bs`参数来优化性能,通常较大的块大小会提高复制速度。 - **错误处理**:可以使用`conv=noerror`选项忽略读取错误,或者使用`sync`选项填充空块。 ### 示例 以下是一个完整的示例,展示如何使用`dd`命令复制文件并显示进度: ```bash dd if=input_file of=output_file bs=1M status=progress ``` 此命令使用1MB的块大小进行复制,并显示进度信息。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值