带fat32文件系统的bin二进制文件制作教程
FAT 文件系统镜像生成与资源打包指南
目录
- 功能概述
- 跨平台实现方案
- WSL/Ubuntu 方案
- Windows 原生方案
- 资源打包流程
- 关键文件说明
- 文件系统参数对比
- 使用注意事项
- 典型应用场景
一、功能概述
本流程用于创建 FAT 文件系统格式的二进制镜像文件,将指定资源文件添加到镜像中,最终通过资源打包工具生成设备可用的资源文件(res.bin)。
二、跨平台实现方案
方案 A: WSL/Ubuntu 环境实现(推荐)
bash
安装必要组件(首次使用)
sudo apt update && sudo apt install -y dosfstools
创建8MB空白镜像
dd if=/dev/zero of=fat32.bin bs=1M count=8
格式化为FAT32
mkfs.fat -F 32 fat32.bin
挂载镜像文件
mkdir -p /tmp/fatmnt
sudo mount -o loop fat32.bin /tmp/fatmnt
复制资源文件
cp ./fat_nor/MIDI.mdb ./fat_nor/test.mp3 /tmp/fatmnt/
卸载镜像
sudo umount /tmp/fatmnt
方案 B: Windows 原生环境实现
- 创建
create_disk.txt
:
text
create vdisk file=“C:\fat16.vhd” maximum=8
select vdisk file=“C:\fat16.vhd”
attach vdisk
create partition primary
format fs=fat quick
assign letter=I
exit
- 执行命令:
batch
:: 创建虚拟磁盘
diskpart /s create_disk.txt
:: 复制文件
copy .\fat_nor*I:\
:: 导出二进制镜像
dd_tool\dd.exe if=.\I: of=.\fat16.bin bs=512
:: 卸载磁盘
diskpart /s detach_disk.txt
三、资源打包流程
batch
:: 执行资源打包
packres.exe -n fat_nor -o res.bin fat16.bin 0 -normal
:: 部署资源文件
copy .\res.bin …\res.bin
四、关键文件说明
文件/目录 | 用途说明 |
---|---|
fat_nor/ | 资源文件存储目录 |
fat32.bin | Linux生成的FAT32镜像 |
fat16.bin | Windows生成的FAT16镜像 |
res.bin | 最终设备资源文件 |
packres.exe | 资源打包工具 |
五、文件系统参数对比
特性 | FAT32 | FAT16 |
---|---|---|
最大文件大小 | 4GB | 2GB |
最大文件数 | 268,435,437 | 65,536 |
簇大小 | 4KB-32KB | 2KB-64KB |
兼容性 | 现代设备 | 旧式设备 |
六、使用注意事项
-
权限要求:
- Linux需要
sudo
执行挂载操作 - Windows需要管理员权限运行diskpart
- Linux需要
-
资源准备:
bash
检查资源文件大小
du -sh fat_nor/
- 镜像验证:
bash
检查文件系统完整性
fsck.fat -nv fat32.bin
七、典型应用场景
- 嵌入式系统资源打包
- 固件升级包制作
- 批量生产系统镜像
:: for wsl or ubuntu create fat bin file
@REM wsl --install -d Ubuntu
@REM wsl -d Ubuntu
@REM sudo apt update
@REM sudo apt install dosfstools
@REM dd if=/dev/zero of=fat32.bin bs=1M count=8
@REM mkfs.fat -F 32 fat32.bin
@REM mkdir /tmp/fatmnt
@REM sudo mount -o loop fat32.bin /tmp/fatmnt
@REM cp yourfile.txt /tmp/fatmnt/
@REM sudo umount /tmp/fatmnt:: for windows create fat bin file
@REM diskpart
@REM create vdisk file="C:\fat16.vhd" maximum=8
@REM select vdisk file="C:\fat16.vhd"
@REM attach vdisk
@REM create partition primary
@REM format fs=fat quick
@REM assign letter=I
@REM copy C:\path\to\files\* I:\
@REM dd_tool\dd.exe if=\\.\I: of=.\fat16.bin bs=512
@REM detach vdiskset RES_FILE=./fat_nor/MIDI.mdb ./fat_nor/test.mp3.\packres.exe -n fat_nor -o res.bin fat16.bin 0 -normal
copy .\res.bin ..\res.bin