文件系统-5-相关工具-dd命令
基于A12+msm-5.4
一、简介
1. dd --help
Toybox 0.8.4-android 多调用二进制文件:https://landley.net/toybox(参见 toybox --help)
用法:
dd [if=FILE] [of=FILE] [ibs=N] [obs=N] [iflag=FLAGS] [oflag=FLAGS] [bs=N] [count=N] [seek=N] [skip=N] [conv=notrunc|noerror|sync|fsync] [status=noxfer|none]
作用: 复制/转换文件。
(1) 参数介绍:
if=FILE 从文件读取数据,而不是从标准输入读取数据
of=FILE 写入文件,而不是向标准输出写数据
bs=N 一次读取和写入 N 个字节
ibs=N 输入块大小
obs=N 输出块大小
count=N 仅复制 N 个输入块
skip=N 跳过 N 个输入块
seek=N 跳过 N 个输出块
iflag=FLAGS 设置输入标志
oflag=FLAGS 设置输出标志
conv=notrunc 不截断输出文件
conv=noerror 读取错误后继续执行
conv=sync 用零填充块
conv=fsync 在完成之前将数据物理写出
status=noxfer 完成后,不显示传输速率. 更高版本还有一个 progress 参数,用于实时显示进度。
status=none 完成后,不显示传输速率或输入/输出记录
FLAGS 是一个以逗号分隔的列表,包含:
count_bytes (iflag) 将 count=N 解释为字节,而不是块
seek_bytes (oflag) 将 seek=N 解释为字节,而不是块
skip_bytes (iflag) 将 skip=N 解释为字节,而不是块。
数字可以以 c (*1)、w (*2)、b (*512)、kD (*1000)、k (*1024)、MD (*1000*1000)、M (*1024*1024)、GD (*1000*1000*1000) 或 G (*1024*1024*1024) 为后缀。
(2) 核心参数:
------------------------------------------------------------------------------------ 参数 含义 ------------------------------------------------------------------------------------ if= 输入文件/设备(input file) of= 输出文件/设备(output file) bs= 块大小,读写每次的字节数(如 4k、1M、512) count= 复制的块数量 skip= 跳过输入开头的 N 个块 seek= 跳过输出开头的 N 个块 conv= 数据转换选项(见下) status= 进度显示(none/noxfer) iflag= 解释为字节(count_bytes/skip_bytes),更高版本还支持(direct/sync/nonblock) oflag= 解释为字节(seek_bytes),更高版本还支持(direct/sync/dsync) ------------------------------------------------------------------------------------
2. 注意事项
(1) if 和 of 写反会直接损坏源设备,操作磁盘/分区前务必再三确认。
(2) bs 太小(如 512B)会拖慢速度,通常用 4M 或 64M 比较合适
二、使用示例
1. 磁盘镜像读写
dd if=/dev/sda of=/backup/disk.img bs=4M //读 dd if=/backup/disk.img of=/dev/sdb bs=4M //写
2. 磁盘擦除
dd if=/dev/zero of=/dev/sda bs=4M //清零磁盘 dd if=/dev/urandom of=/dev/sda bs=4M //用随机数据擦除
3. 读写指定位置
dd if=/dev/sda of=mbr.bin bs=512 count=1 //提取前 N 个字节 dd if=/dev/sda of=part.img bs=512 skip=2 count=10 //跳过前2个块,读取后续10个块 dd if=data.bin of=/dev/sda bs=512 seek=2048 //从2048扇区之后写
4. 测试磁盘读写速度
dd if=/dev/sda of=/dev/null bs=4M //读 dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 //写
5. 大小写转换
//注:A12的此版本还不支持 dd if=input.txt of=output.txt conv=ucase //转大写 dd if=input.txt of=output.txt conv=lcase //转小写
6. 写入后验证
//验证写入后是否和源文件一致 md5sum boot.img dd if=/dev/block/bootdevice/by-name/boot bs=4M | md5sum
7. 常用测试
dd if=/dev/block/zram0 of=/dev/null bs=1M count=1024 //测试读 dd if=/dev/zero of=/tmp/dd_test.img bs=1M count=1024 //测试写
posted on 2026-05-03 11:16 Hello-World3 阅读(0) 评论(0) 收藏 举报
浙公网安备 33010602011771号