TF卡有16G,直接备份出来的img文件就有16G那么大,但是实际装在TF卡中的有用数据却只有几G,再写入就需要32g的卡,这样做出来的img文件就太浪费空间了,因此使用这个方法压缩磁盘,制作小img镜像。
1.将有原系统的sd卡放入读卡器,接入虚拟机
ctrl+alt+t
进入命令行
su
进入管理权限
2.修改挂载状态
df -h
查看挂载情况及可用空间
这里可以看到sdc3有29G的内存,只使用了1.2G,挂载地为/media/linux/userdata
我们输入umount /media/linux/userdata
,让其变为非挂载状态,同时再次df -h
确认
这里可以看见已经没有sdc3了,此时,/dev/sdc3已经处于非挂载状态
3.进行分区
输入e2fsck -f /dev/sdc3
,检查sdc3的分区状态
执行完后输入resize2fs /dev/sdc3 2G
,(这里2G是因为sdc3只用了1.2G,只要填写大于1.2G且小于28G都可)
执行完毕。
4.分区修改
用parted进行分区修改
输入parted /dev/sdc
随后输入unit s print free
检查目前TF卡各卷大小
记住3区域start和end的数据分别是2533376s和62333951s
我们先删除3这个分区
如果你要空出26GB,那就把End减去26 * 1024 * 1024 * 2,我算出来的结果是7,807,999
输入mkpart primary 2533376s 7807999s
再次输入unit s print free
查看分区情况
此时,我们分离出了26G的空闲空间,然后输入quit,退出parted。
5.压缩卷
输入resize2fs /dev/sdc3
结束压缩。
6.烧录镜像
现在,我们将TF卡和读卡器拔出,插在我们的win10电脑上,打开Win32DiskImager,新建一个空的img镜像,勾选"仅读取已分配分区"(很重要!!!!!!!!!!!)
点击读取,等待进度条完成
只有4G大小了,下一步就是烧录进新的TF卡。