当前位置: 首页 > news >正文

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

文章目录

    • 1. 备份 SD/TF 卡为镜像文件
    • 2. 压缩镜像文件
      • 2.1. 多分区镜像文件的压缩(树莓派、普通 linux 系统等)
      • 2.2. 单分区镜像文件的压缩(Nvidia Jetson Nano 等)
    • 3. 还原镜像文件到 SD/TF 卡
    • 4. 镜像还原后处理
      • 4.1. 镜像分区调整
      • 4.2. 多分区镜像还原后修复引导
    • 参考链接

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

http://www.lryc.cn/news/280492.html

相关文章:

  • Zookeeper 和 naocs的区别
  • 2-6基础算法-快速幂/倍增/构造
  • 行业内参~移动广告行业大盘趋势-2023年12月
  • 【笔记】书生·浦语大模型实战营——第四课(XTuner 大模型单卡低成本微调实战)
  • 开源的Immich自建一个堪比 iCloud 的私有云相册和备份服务
  • SPI通信讲解
  • 本地一键部署grafana+prometheus
  • NIO核心依赖多路复用小记
  • 如何彻底卸载 Microsoft Edge?
  • JavaScript-对象-笔记
  • java 运算符 选择语句
  • CNN:Convolutional Neural Network(上)
  • 将Android应用修改为鸿蒙应用的工作
  • 03 Strategy策略
  • Python实现分位数回归模型(quantreg算法)项目实战
  • 【ROS2简单例程】基于python的发布订阅实现
  • 【期末考试】数据库综合复习宝典
  • OpenHarmony南向之LCD显示屏
  • 核心笔记-短篇
  • 系统学习Python——警告信息的控制模块warnings:为新版本的依赖关系更新代码
  • 爬虫的基本原理
  • MySQL核心SQL
  • 关于 setData 同步异步的问题
  • Centos创建一个Python虚拟环境
  • 怎么使用好爬虫IP代理?爬虫代理IP有哪些使用技巧?
  • C#,字符串匹配算法(模式搜索)Z算法的源代码与数据可视化
  • 强化学习actor-critic
  • 使用推测解码 (Speculative Decoding) 使 Whisper 实现 2 倍的推理加速
  • pi gpio 内存映射
  • [NAND Flash 6.2] NAND 初始化常用命令:复位 (Reset) 和 Read ID 和 Read UID 操作和代码实现