TF卡制作系统镜像以及裁剪镜像文件大小

本文介绍了如何在Ubuntu系统中使用Gparted制作TF卡系统镜像,处理大容量镜像导致的容量问题,通过裁剪镜像和调整分区大小释放未使用的空间。
摘要由CSDN通过智能技术生成

author:Lei

参考博客:

参考博客1
参考博客2
参考博客3


环境需求

  • ubuntu
  • gparted包
  • truncate命令

安装Gparted

ubuntu命令行执行

sudo apt-get install gparted

Part1: TF卡制作系统镜像

准备

  • 待操作的TF卡、读卡器、Ubuntu电脑。
  • 需在Ubuntu系统下操作,而且电脑磁盘空间需大于TF卡存储空间
  • 如果电脑磁盘空间不够,使用移动硬盘也可以

操作

  • 插入TF卡和读卡器到电脑,命令行查看TF卡磁盘号
    sudo parted -l
  • 进入root模式下进行镜像制作
sudo -i
sudo dd if=/dev/sdb | gzip>path/ImgName.img.gz

/dev/sdb对应查看的TF卡磁盘号

监控

  • 新建终端,执行
    sudo watch -n 1 pkill -USR1 -n -x dd

执行完后,按Ctrl+D退出


Part2: 裁剪镜像文件大小

问题:上述操作TF制作出的镜像文件大小与TF卡容量一致,比如一个128G卡制作出的镜像也是128G,但是尴尬的是在向一张新的128GTF卡中烧录镜像时,会失败

准备

  • 安装Gparted
  • Ubuntu电脑
  • path/ImgName.img.gz解压出path/ImgName.img

操作

  • 将镜像文件导入Ubuntu系统/将包含镜像文件的移动硬盘插入Ubuntu电脑
  • 开启 loopback 并寻找可用设备
sudo modprobe loop
sudo losetup -f

终端会输出当前空闲的loop,比如/dev/loop15

  • 将镜像挂载到loop设备中
sudo losetup /dev/loop15 path/ImgName.img
sudo partprobe /dev/loop15

运行第二条命令后后才会出现分区/dev/loop15p1,/dev/loop15p2

  • 检查/dev/loop15p2
sudo e2fsck -f /dev/loop15p2
  • 使用Gparted查看并调整镜像分区大小
sudo gparted /dev/loop15

在这里插入图片描述右键选择调整大小/移动®,拖动右侧条或者输入大小
在这里插入图片描述点击右下角调整大小/移动,点击右上角编辑应用全部操作

  • truncate裁减镜像文件

目的:裁减掉文件中未分配的部分
在这里插入图片描述查看镜像文件信息:fdisk -lu path/ImgName.img
输出如下:
在这里插入图片描述> 注意扇区大小512字节,末尾扇区114530303两个数据

执行裁减:

truncate --size=$[(114530303+1)*512] path/ImgName.img
  • 查看结果:右键文件属性即可查看大小
  • 解除loop设备
sudo partprobe -d /dev/loop15 
sudo losetup -d /dev/loop15 

Part3: 烧录后扩展系统可使用空间

准备

  • Gparted

操作

  • 进入烧录好的系统执行
sudo gparted
  • 在Gparted中,调整分区大小适应整个TF卡大小并应用操作

尝试过其他方法,包括QEMU-IMG、PiShrink等,奈何本人能力有限,没能成功..... 在此记录尝试且成功的方法。

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值