远程升级 FreeBSD 系统备忘

• 本文约 355 字,阅读大致需要 1 分钟 | Others

📜 历史文件已不具备现实意义

目前(2020)的最佳实践是使用 etcupdate 和 package。本文内容已过时。

最近两次失败记录的教训。

首先是联编 world 和 kernel (make buildworld buildkernel),这个没啥可说的。假定 / 是 UFS(即,可使用 nextboot),且配置了 watchdog,则操作步骤为:

  1. make installkernel KODIR=/boot/kernel.new; nextboot -k kernel.new 【令系统尝试一次新内核启动;若失败,则下次仍会启动旧内核】
  2. shutdown -r now
  3. mergemaster -p 【建议做这步操作,可以避免选错】
  4. make installkernel installworld 【此处再做一遍installkernel;如果不做,可能导致系统从旧内核启动并导致失败】
  5. mergemaster -Ui
  6. yes | make delete-old 【删去不需要的文件和库;不要make delete-old-libs,因为可能导致某些新程序无法运行】
  7. portmaster -BDavf 【重新联编所有 package】
  8. yes | make delete-old-libs 【此时删除旧 .so 库应该是安全的了】
  9. shutdown -r now,测试

当然,更简单的方法是先接好IPMI。