使用dd命令打包jetson nano 树莓派等linux开发板SD卡中的镜像

发布时间:2023年12月24日

使用dd命令打包jetson nano SD卡中的镜像----linux

很多时候我们为了防止sd卡损坏,需要备份一个镜像,下面是使用dd命令将sd卡中的镜像一模一样的复制一份的教程

首先使用df -h命令查看挂在的u盘

image-20231224173836328

最下面的三个sdb1 sdb2 sdb3 就是需要打包的镜像的分区

sudo dd if=/dev/sdb | pv -s $(sudo blockdev --getsize64 /dev/sdb) | xz -9 > image.xz

8a713691eace5d31d984b3160f12783

  1. 将sd卡插入电脑,被虚拟机识别之后,通过lsblk命令确定sd卡的设备名称(也就是上图命令里面的sdb)
  2. 把要复制的源sd卡插到虚拟机所在的宿主机上
  3. 然后会生成源sd卡的镜像文件image.xz
  4. 最后把镜像烧录到新的sd卡里面去
  5. sdb是sd卡的设备名称
  6. 将sdb(sd卡)的镜像成 名image.xz的文件
  7. 下面这句话这句话会把sd卡(设备路径为/dev/sdX,X自行确定)这里是sdb内容拷贝为镜像,并且压缩为image.xz文件,放置在当前工作目录下
  8. dd命令会忠实地从源设备拷贝数据到目的文件或设备
  9. 然后把image.xz放到windows下,通过windows的balena etcher烧录器,把image.xz烧录到任意新卡中去
  10. balena etcher下载地址:https://etcher.balena.io/
  11. balena etcher支持xz格式的压缩镜像

可以安装pv

sudo apt install pv

这个工具是检测管道流数据的,不用pv的话,你就不知道已经传了多少数据,心情会更加煎熬

61ce50c08406d2b154f192acdc5f862

这样右下角显示百分比和剩余时间了

如何提高速度

提高 dd 命令和整个管道操作的速度可以通过以下几种方式实现:

  1. 增加 dd 的块大小dd 默认的块大小可能不是最优的。增加块大小可以减少读写操作的次数,从而提高速度。你可以尝试使用较大的块大小,例如 bs=1Mbs=4M。例如:
  sudo dd if=/dev/sdb bs=4M | pv -s $(sudo blockdev --getsize64 /dev/sdb) | xz -9 > latestqingyun.xz
  1. 调整 xz 压缩级别xz -9 使用的是最高压缩级别,这意味着它会占用更多的CPU资源和时间来压缩数据。降低压缩级别(例如使用 -6-7)可能会减少压缩时间,尽管这可能会导致最终的压缩文件稍大一些。
  sudo dd if=/dev/sdb bs=4M | pv -s $(sudo blockdev --getsize64 /dev/sdb) | xz -7 > latestqingyun.xz
  1. 使用更快的硬盘或设备:如果可能的话,使用速度更快的硬盘或SSD,特别是对于输出文件 latestqingyun.xz,这样可以提高写入速度。
  2. 并行处理:如果你有多个核心和足够的内存,可以考虑使用 pixz(并行xz压缩工具),这样可以在压缩时使用多个CPU核心。
   sudo dd if=/dev/sdb bs=4M | pv -s $(sudo blockdev --getsize64 /dev/sdb) | pixz > latestqingyun.xz
  1. 检查硬件限制:确保没有其他进程显著占用磁盘或CPU资源,这可能会减慢 ddxz 的速度。

请注意,提高速度的同时可能会牺牲一些压缩率。你需要根据你的具体需求和资源情况来决定使用哪种方式。

文章来源:https://blog.csdn.net/Johnor/article/details/135184355
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。