友善RK3399 eflasher多系统镜像裁剪笔记,节省69%的存储空间
本文记录了将 NanoPC-T4 的 RK3399 eflasher 多系统镜像从 30GB 成功裁剪至 9.28GB 的具体过程(为什么要裁剪镜像呢?因为我只有16GB的SD卡hhh)。在确保所有核心功能完整的前提下,实现了存储空间 69% 的节省。
项目概况
- 原始镜像:
rk3399-eflasher-multiple-os-20260112-30g.img(30 GB) - 目标设备:NanoPC-T4 (RK3399)
- 保留系统:
debian-bullseye-desktop-arm64(Debian 11 桌面版)debian-trixie-core-arm64(Debian 13 核心版)
- 最终镜像:
rk3399-eflasher-debian-only-20260122.img(9.28 GB) - 空间节省:20.7 GB,压缩率达 69%
操作步骤
第一阶段:环境准备与镜像分析
首先对原始镜像结构进行分析,明确裁剪基础。
挂载并分析原始镜像结构
1
2
3
4
5
6# 创建回环设备
sudo losetup -f --show rk3399-eflasher-multiple-os-20260112-30g.img
# 输出示例:/dev/loop13
# 映射分区
sudo kpartx -av /dev/loop13分析结果:
loop13p1分区采用 exFAT 文件系统(标签FriendlyARM)- 镜像包含9个分区:
p1为主数据区,p2–p9为引导及配置分区
确认保留系统的内核版本
debian-trixie-core-arm64:内核 6.6+debian-bullseye-desktop-arm64:内核 5.10
第二阶段:清理系统与重建数据分区
移除不需要的系统文件,创建精简数据分区。
挂载exFAT分区并移除多余系统
1
2
3
4
5
6
7
8
9
10sudo mount -t exfat /dev/mapper/loop13p1 /mnt/p1
sudo rm -rf /mnt/p1/alpine-linux-arm64 \
/mnt/p1/android8 \
/mnt/p1/android10 \
/mnt/p1/ubuntu-focal-desktop-arm64 \
/mnt/p1/openmediavault-arm64 \
/mnt/p1/friendlycore-focal-arm64 \
/mnt/p1/friendlywrt24 \
/mnt/p1/friendlywrt24-docker \
/mnt/p1/friendlydesktop-arm64创建并填充新的精简数据镜像
1
2
3
4
5
6
7
8# 创建8G空白文件并格式化为exFAT
truncate -s 8G trimmed.img
sudo mkfs.exfat -n "FriendlyARM" trimmed.img
# 挂载新镜像并拷贝必要数据
sudo mount -t exfat trimmed.img /mnt/new
sudo cp -a /mnt/p1/debian-* /mnt/p1/eflasher.conf /mnt/new/
sudo umount /mnt/new合并引导区与数据区
1
2
3
4
5# 1. 拷贝原镜像前1.38GB(含所有引导分区)
dd if=original.img of=final.img bs=512 count=2686976
# 2. 追加新建的精简数据区
dd if=trimmed.img of=final.img bs=512 seek=2686976
第三阶段:修复与重建GPT分区表
这是裁剪过程的核心步骤,需要精确计算分区参数。
导出原始分区表作为参考
1
sudo sfdisk -d original.img > original.pt精确计算新分区参数
- 新
p1分区大小:16,777,216扇区 (8 GB) - 新
p1结束扇区:2,686,976 + 16,777,216 - 1 = 19,464,191 - 镜像总扇区数:
19,464,191 + 34 = 19,464,226
- 新
扩展镜像并应用新分区表
1
2
3
4
5# 将镜像扩展至最终计算大小
truncate -s $((19464226 * 512)) final.img
# 基于修改后的 final.pt 文件重新分区
sudo sfdisk final.img < final.pt验证分区结构完整性
1
2sudo fdisk -l final.img
# 确认输出中9个分区完整,且p1分区大小正确
第四阶段:部署测试与验证
对生成的镜像进行实际测试。
写入SD卡进行实测
1
2
3
4# 请将 /dev/sde 替换为您的SD卡设备
sudo umount /dev/sde1
sudo dd if=rk3399-eflasher-debian-only-20260122.img of=/dev/sde bs=4M status=progress oflag=sync
sync设备启动验证结果
- 设备正常启动并进入eflasher GUI界面
- 界面中仅显示保留的两个Debian系统选项
- 可成功选择并安装任一系统至eMMC,功能完全正常

方案适用性
本方案已通过RK3399平台(NanoPC-T4)的实测验证。其方法论可复用于采用类似eflasher框架的其他开发板(如NanoPi M4、Rock Pi 4等)进行固件定制。如需为Android、OpenWrt等其他系统制作精简镜像,可完全复用本流程中的分区处理与验证步骤。
友善RK3399 eflasher多系统镜像裁剪笔记,节省69%的存储空间
https://blog.lecreate.asia/2026/01/23/2026012301/