36 Edge Image Builder (EIB) 故障排除 #
EIB 用于创建自定义 SUSE Edge 镜像。
错误的 SCC 代码:确保 EIB 定义文件中使用的 SCC 代码与 SL Micro 版本和架构相匹配。
缺少依赖项:确保构建环境中没有缺失的软件包或工具。
镜像大小不正确:对于 raw 镜像,
diskSize参数是必需的,并且它在很大程度上取决于镜像、RPM 以及包含在镜像中的其他制品。权限:如果将脚本存储在 custom/files 目录中,请确保其具有可执行权限,因为这些文件仅在燃烧时可用,而 EIB 不会对其进行任何更改。
操作系统组依赖:创建包含自定义用户和组的镜像时,应显式创建设置为 “primaryGroup” 的组。
操作系统用户的 SSH 密钥需要主文件夹:创建包含带有 SSH 密钥的用户的镜像时,还需要使用
createHomeDir=true创建主文件夹。燃烧问题:EIB 依赖燃烧过程来定制操作系统并部署所有其他 SUSE Edge 组件。这也包括放置在 custom/scripts 目录中的自定义脚本。请注意,燃烧过程是在
initrd时间执行的,因此在执行脚本时系统尚未完全启动。Podman 机器大小:正如 EIB 提示和技巧部分 (第 IV 部分 “提示和技巧”) 中所述,请验证 Podman 机器是否有足够的处理器/内存来在非 Linux 操作系统上运行 EIB 容器。
镜像不正确:确保通过 验证
checksum正确下载了所使用的基础镜像。如果您正在使用 kiwi-builder (第 26 章 “使用 Kiwi 构建更新的 SUSE Linux Micro 镜像”) 构建镜像,请同时检查该过程生成的校验和文件。
EIB 输出:
eib build命令的控制台输出至关重要。构建容器日志:检查构建容器的日志。日志生成在用于存储制品的目录中。同时检查
docker logs或podman logs以获取必要信息。临时构建目录:EIB 在构建过程中会创建临时目录。如果主要输出不足,请检查这些目录以获取中间日志或制品。
燃烧日志:如果使用 EIB 构建的镜像因任何原因无法启动,则可以使用 root 外壳。连接到主机控制台(物理连接、通过 BMC 等),并使用
journalctl -u combustion检查燃烧日志,同时使用journalctl检查所有操作系统日志,以查找故障的根本原因。
查看
eib-build输出:控制台输出中的错误消息通常具有很强的指示性。检查构建环境:确保运行 EIB 的机器满足 EIB 本身的所有先决条件(例如 docker/podman、足够的磁盘空间)。
检查构建容器日志:查看失败容器的日志以获取更详细的错误信息(见上文)。
验证
eib配置:仔细检查eib配置文件,查看是否有任何拼写错误,或源文件或构建脚本的路径是否不正确。测试各个组件:如果您的 EIB 构建涉及自定义脚本或阶段,请独立运行它们以隔离故障。