【镜像压缩】linux 上 SD/TF 卡镜像文件压缩到实际大小的简单方法(树莓派、nvidia jetson)

1. 备份 SD/TF 卡为镜像文件

SD/TF 卡插入 Ubuntu 主机(虚拟机也行),在 ubuntu 主机中打开 Disks 应用,选中 SD/TF 卡,然后 Create Disk Image 即可。

这个步骤将生成一个与 SD/TF 卡硬盘空间大小一致的 .img 镜像文件,请确保 Ubuntu 主机空间足够。

注: 备份还原 SD/TF 卡的速度取决于卡和读卡器的读写速度,建议选购读写速度快且稳定的卡,不同卡读写速度测评可参考:https://zhuanlan.zhihu.com/p/576930331

在这里插入图片描述

2. 压缩镜像文件

第一步中的镜像文件大小和 SD/TF 卡硬盘空间大小一致,需要进一步压缩为实际使用空间大小。

2.1. 多分区镜像文件的压缩(树莓派、普通 linux 系统等)

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
# 压缩方式 1:额外生成新的镜像文件
sudo bash pishrink.sh 现有镜像文件名.img 压缩镜像文件名.img
# 压缩方式 2:覆盖原有的的镜像文件
sudo bash pishrink.sh 现有镜像文件名.img

2.2. 单分区镜像文件的压缩(Nvidia Jetson Nano 等)

此步骤只能覆盖原有的的镜像文件

e2fsck -fp 现有镜像文件名.img
resize2fs -M 现有镜像文件名.img

3. 还原镜像文件到 SD/TF 卡

SD/TF 卡插入 Ubuntu 主机(虚拟机也行),在 ubuntu 主机中打开 Disks 应用,选中 SD/TF 卡,然后 Restore Disk Image 即可。

在这里插入图片描述

4. 镜像还原后处理

4.1. 镜像分区调整

由于镜像中的分区经过压缩,还原后 SD/TF 卡中会有一部分空闲空间,如图:

在这里插入图片描述
选中主分区,使用 Resize 功能将空闲空间都并入主分区即可:

在这里插入图片描述

4.2. 多分区镜像还原后修复引导

(多分区硬盘更建议使用再生龙进行备份还原:https://blog.csdn.net/dqz1231/article/details/127947178

实测多分区镜像还原后需修复引导,才能正常启动系统。
参考:修复ubuntu22.04启动引导https://blog.csdn.net/weixin_43667077/article/details/135413928
基于以上文章,并进行以下操作:

打开 boot-repair 后,选择 Advaned options

在这里插入图片描述

GRUB location 页面,选择好需要修复的硬盘及分区,然后点击 Apply 开始修复即可。

在这里插入图片描述

参考链接

How to resize img file created with dd?:https://superuser.com/a/812186
PiShrink:https://github.com/Drewsif/PiShrink

  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 准备工作:一张16GB以上的SDJetson Nano主板、电脑、SD器、JetPack软件包。 2. 下载JetPack软件包并解压缩。 3. 将SD插入电脑的SD器中。 4. 打开终端,输入以下命令查看SD的设备名称: ``` sudo fdisk -l ``` 找到SD的设备名称,例如/dev/sdb。 5. 卸载SD: ``` sudo umount /dev/sdb* ``` 6. 使用dd命令将Jetson Nano镜像烧录到SD中: ``` sudo dd if=<Jetson Nano镜像文件路径> of=/dev/sdb bs=1M ``` 其中,if表示输入文件,of表示输出文件,bs表示块大小。 7. 等待烧录完成,拔出SD并插入Jetson Nano主板中。 8. 开机启动Jetson Nano,进行系统设置和配置。 ### 回答2: Jetson Nano是利用机器学习和深度学习应用的一款高性能嵌入式计算机。Jetson Nano需要加载一个操作系统软件镜像SD中,然后将SD插入到Jetson Nano中,以启动该系统。本文将指导您如何将镜像文件烧录到Jetson Nano的SD中。 第一步:下载镜像文件 在Ubuntu系统上,您可以通过以下命令来下载镜像文件: wget https://developer.nvidia.com/jetson-nano-sd-card-image-r3225 第二步:解压镜像文件 使用以下命令将镜像文件压缩: tar xzvf jetson-nano-sd-card-image-r3225.tar.gz 第三步:插入SD 首先,插入一个空的SD,然后使用以下命令确定SD的名称: sudo fdisk -l 通常,SD名称类似于/dev/sdX,其中X是SD的字母代号。例如,/dev/sdc就是SD的名称。 第四步:镜像文件烧录 使用以下命令将镜像文件写入SD: sudo dd if=jetson-nano-sd-card-image-r3225.img of=/dev/sdX bs=1M && sync 请注意:在此命令中,"if="后跟着的是镜像文件的名称,"of="后跟着的是SD的名称。 烧录过程需要一些时间,请耐心等待。一旦该过程完成,SD会自动弹出,然后可以将SD插入到Jetson Nano中,启动计算机即可。 以下是一些额外的提示: - 在烧录时请确保SD没有挂载,否则将会导致文件系统的损坏。 - 如果您遇到烧录失败的情况,请重新插入SD并重试。 - 如果Jetson Nano无法启动,请确认SD是否正确插入,或者尝试使用另一个SD重试。 总之,将镜像文件烧录到Jetson Nano的SD中是非常简单的。准备好SD镜像文件,然后按照我们提供的步骤操作,即可轻松完成烧录过程。 ### 回答3: Jetson Nano是一个小型的AI计算平台,它被广泛应用于机器人、无人机、自动驾驶汽车等领域。在使用Jetson Nano之前,需要烧录镜像SD中,这才能让Jetson Nano正常运行。 首先,我们需要下载Jetson Nano的系统镜像。这个镜像包含了Jetson Nano整个系统的所有文件和应用程序。它可以从官方网站上下载得到,下载链接为:https://developer.nvidia.com/jetson-nano-sd-card-image-r3228。 然后,我们需要一个SD器和一张空白SD。我们推荐使用16GB或者32GB的SD。如果您已经有一个SD,并且您不再需要其中的数据,那么您可以跳过这一步,否则您需要备份SD中的所有数据。 接下来,我们需要一个工具来烧录Jetson Nano的系统镜像。有很多不同的工具可供选择,包括balenaEtcher、Rufus和Win32DiskImager。在这里,我们将介绍如何使用balenaEtcher来烧录Jetson Nano的系统镜像。 1. 下载和安装balenaEtcher。您可以从balena官方网站(https://www.balena.io/etcher/)下载balenaEtcher的最新版本。 2. 打开balenaEtcher,单击“Select image”按钮并选择Jetson Nano的系统镜像。 3. 插入SD器并将SD插入读器。确保SD可写,并且您已经备份了SD中的所有数据。 4. 在balenaEtcher窗口中,单击“Select drive”按钮并选择SD。确保您选择了正确的SD,因为balenaEtcher将会格式化并烧录此SD。 5. 单击“Flash!”按钮以烧录Jetson Nano的系统镜像SD中。这个过程可能需要几分钟时间,具体取决于SD的读写速度和系统镜像大小。 6. 等待balenaEtcher完成烧录进程。完成后,可以尝试将SD插入到Jetson Nano上,启动它。如果一切顺利,Jetson Nano应该会启动到系统登录界面。 总之,Jetson Nano的系统镜像烧录到SD中非常容易。只需要一些基本的硬件和软件工具就可以完成这个过程。在使用Jetson Nano之前,请务必确保您已经成功地完成了这个过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值