# auto-prod-sys **Repository Path**: 617726909/auto-prod-sys ## Basic Information - **Project Name**: auto-prod-sys - **Description**: 硬件盒子自动化生产系统 - **Primary Language**: Shell - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-19 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: Linux ## README # Automation Production BootStrap System ## APBS项目介绍 Automation Production BootStrap System(以下简称APBS):自动化生产引导系统,主要给定制的工控硬件盒子,批量生产罐装产品镜像,并引导安装系统。定制的工控硬件盒子,通常需要自定义操作系统,为了构建自定义Linux系统(如:Debian、Ubuntu),也提供了对应工具:[builder-base-os](https://gitee.com/617726909/builder-base-os) 。 该项目非孤立项目,需要auto-prod-sys、builder-base-oss两个项目组合使用。 ### APBS项目依赖 [auto-prod-sys](https://gitee.com/617726909/auto-prod-sys):解决产品镜像生产引导、罐装 [builder-base-os](https://gitee.com/617726909/builder-base-os):构建自定义Linux操作系统产品镜像(目前仅支持Debian系、Ubuntu系操作系统) ## APBS需求场景 对于产品形态最终交付为工控盒子、机架服务器等软硬一体化设备,通过网络安装方式给硬件盒子批量生产罐装产品镜像(含操作系统、产品软件运行环境等)。 ## APBS原理介绍 APBS通过自定义Debian12系统的initramfs,重新生成initrd.img文件(Linux临时的根文件系统),实现网络方式引导安装(可重复启动安装)自定义的Linux操作系统(非官方发布的ISO安装镜像)。APBS被编译成一个可引导的img文件(文件不大于300M,可自定义输出大小),把img文件通过rufus、dd等写盘工具烧录到空硬盘(机械、固态均支持)之上,或者把img文件转换成虚拟磁盘在虚拟机上运行。系统在开机启动后就会加载APBS,启动支持:Legacy BIOS、UEFI(UEFI方式测试进行中)方式,分区表支持MBR、GPT类型。启动后依次选择网卡、配置网卡IP(支持静态、动态获取IP地址),配置产品镜像服务器IP,最终选择产品镜像生产罐装,完成产品系统安装。 ### APBS组件依赖 vmlinuz: 6.1.0-35-amd64 initrd.img: 6.1.0-35-amd64 ### APBS如何获取产品镜像 APBS在配置网络、镜像服务器后会拉取镜像服务器的HTTP服务的/product/source.xml文件,解析其source.xml文件里的产品镜像列表,选择产品镜像,并下载到本地进行安装。 #### 拉取镜像地址样例 `http://192.168.100.1/product/source.xml` ## APBS脚本介绍 pkg_initramfs_amd64.sh:构建自定义的initramfs,最终输出initrd.img文件 boot_img_legacy_amd64.sh: 构建引导img文件 publish_boot_img.sh: APBS主程序脚本 ## ToDoList - 自定义的initramfs文件加密 - 分区表GPT时用EFI方式引导出现:No compatible bootloader found(应该BISO的UEFI配置问题) - 安装文件加密、解密 - 安装系统时boot分区扩容