FreeBSD 14.0发布后的紧急技术问题解析

本文详细分析了FreeBSD 14.0发布后遇到的几个关键技术问题,包括freebsd-update升级故障、错误EoL警告提示、master.passwd合并注意事项、PINE64镜像构建失败以及EC2 AMI二进制数据处理缺陷。

FreeBSD 14 最后时刻出现的问题

升级前必须执行 freebsd-update fetch install

从 FreeBSD 13 升级到 FreeBSD 14 时遇到了特殊情况:FreeBSD 13 中的某个文件与 FreeBSD 14 中的目录同名。这在我编写 freebsd-update 时从未预料到,原始代码无法处理这种情况(我原以为可以先创建所有新内容再删除旧文件)。该问题已通过Errata Notice修复,但如果您尚未安装此修复,使用 freebsd-update 升级到 14.0 将会导致系统损坏。

FreeBSD Update 错误报告 14.0-RELEASE 即将终止支持

FreeBSD Update 的元数据包含版本终止支持日期,但在为 FreeBSD 14.0-RELEASE 打包时插入了错误值。请忽略该警告,它将在首次发布安全公告或Errata通知时随值修正而消失。

合并 master.passwd 时需谨慎

FreeBSD 14 中 root 的默认 shell 从 csh 改为 sh。升级到 FreeBSD 14 时,freebsd-update 会提示合并 /etc/master.passwd 的更改。不要直接采用新的 root 密码行,因为它没有密码。保留您现有的行并更改 shell(如果您偏好继续使用 csh,则无需更改)。

缺少 PINE64 SD 卡镜像

我们通常构建的 SD 卡镜像之一是为 PINE64 准备的。构建失败了——我们不确定具体原因,但 offset.inc 文件不知何故充满了 NUL 字节——但我们决定在没有该镜像的情况下继续发布。PINE64-LTS 镜像确实构建成功。

EC2 AMI 无法处理二进制用户数据

为了支持 IMDSv2,EC2 启动脚本从使用 fetch(1) 获取 EC2 实例元数据服务的数据改为使用新编写的 aws-ec2-imdsv2-get 工具。不幸的是,该工具中的一个错误导致它假设来自 IMDS 的数据始终是 UTF-8 字符串——这通常成立,但如果您提供二进制用户数据就会出问题。特别是,如果您生成一个 tarball 并将其传递给 configinit,将会导致故障。

如果您觉得我在 FreeBSD 上的工作有帮助,请考虑赞助我的工作。在某个程度上,时间和金钱是可互换的,维护 FreeBSD/EC2 平台以及我新接手的发布工程职责加起来占用了大量时间。

发布时间:2023-11-21 18:35 | 永久链接 | 评论

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计