在 Linux 系统下克隆 SD 卡或 NAND 存储设备(如嵌入式设备的闪存),通常可以使用 dd 命令或其他工具。以下是详细步骤和注意事项:
dd 命令(基础方法)dd 是 Linux 下最常用的克隆工具,但需谨慎操作(避免写错目标设备)。
插入 SD 卡/NAND 设备
将源设备(要克隆的 SD 卡/NAND)和目标设备(空白的 SD 卡/NAND)插入 Linux 主机。
确认设备标识符
使用 lsblk 或 fdisk -l 确认设备路径(如 /dev/sdX 或 /dev/mmcblkX)。
例如:
sudo sync
ddrescue(处理坏块或错误)如果源设备有坏块或读取困难,可以用 ddrescue(需安装):
sudo apt install gddrescue # Debian/Ubuntusudo ddrescue -v -r 3 /dev/sdX /dev/sdY mapfile.log
-r 3: 重试 3 次读取坏块。
mapfile.log: 保存克隆日志。
cat 命令(替代 dd)如果 dd 不可用,可以用 cat 直接复制数据流:
sudo cat /dev/sdX > /dev/sdY
操作后同样需要 sync。
适合不熟悉命令行的用户:
安装 GNOME Disks:
sudo apt install gnome-disk-utility # Debian/Ubuntu
打开应用,选择源设备,点击齿轮图标 → Create Disk Image 备份为镜像文件。
插入目标设备,选择 Restore Disk Image 将镜像写入目标设备。
如果不需要直接克隆到物理设备,可以先备份为镜像文件:
sudo dd if=/dev/sdX of=backup.img bs=4M status=progress
之后可将镜像写入其他设备:
sudo dd if=backup.img of=/dev/sdY bs=4M status=progress
目标设备容量
目标设备必须等于或大于源设备容量。
数据安全
操作前确保目标设备无重要数据(克隆过程会覆盖所有数据)。
仔细检查 if(输入)和 of(输出)参数,避免误操作。
NAND 设备的特殊处理
部分嵌入式设备的 NAND 可能需要专用工具(如 nanddump 和 nandwrite):
sudo parted /dev/sdY resizepart 1 100% # 扩展分区sudo resize2fs /dev/sdY1 # 调整文件系统(ext4)
比较源设备和目标设备的哈希值:
sudo fdisk -l /dev/sdYsudo fsck /dev/sdY1
通过以上方法,你可以安全地克隆 SD 卡或 NAND 设备。务必谨慎操作,避免选错设备路径!
sudo fdisk -l
源设备可能是 /dev/sdb,目标设备可能是 /dev/sdc。
卸载设备
确保所有分区未被挂载:
sudo umount /dev/sdX* # 替换为实际设备标识符
执行克隆
使用 dd 克隆整个设备(包括分区表和所有数据):
sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress
if=/dev/sdX: 输入设备(源设备,如 SD 卡)。
of=/dev/sdY: 输出设备(目标设备)。
bs=4M: 块大小(提高速度)。
status=progress: 显示进度(仅限较新版本 dd)。
同步并检查
克隆完成后,强制写入缓存:
sudo nanddump -f backup.img /dev/mtd0 # 备份sudo nandwrite -p /dev/mtd0 backup.img # 写入
克隆后扩展分区(可选)
如果目标设备比源设备大,可能需要调整分区大小:
sudo sha256sum /dev/sdXsudo sha256sum /dev/sdY
检查目标设备文件系统和分区表:
sudo fdisk -l /dev/sdYsudo fsck /dev/sdY1通过以上方法,你可以安全地克隆 SD 卡或 NAND 设备。务必谨慎操作,避免选错设备路径!
上一篇:SD卡解密方法
电话:176-6539-0767
Q Q:135-0379-986
邮箱:1350379986@qq.com
地址:深圳市南山区后海大道1021号C座