FreeBSD 14 发布后的紧急技术问题
我几天前担任了FreeBSD发布工程负责人,在这个角色中的首要职责之一就是编写并发布FreeBSD 14.0-RELEASE公告。(需要说明的是:Glen Barber已经完成了发布的所有准备工作;在我接手时,最终文件已经复制到镜像服务器。)FreeBSD 14是一个很棒的版本,但有几个最后一刻出现的问题值得记录——可能应该放在FreeBSD网站上的某个地方,但我可以更快地发布到我的博客上,希望稍后我们能把这些内容放到FreeBSD网站上。
升级前必须执行 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组装FreeBSD Update组件时插入了错误的值。请忽略此警告;该值将在第一个安全公告或勘误通知中得到更正,届时警告就会消失。
合并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平台和我新获得的发布工程职责加起来占用了我大量的时间。