delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

13 Apr 2012

远程升级 FreeBSD 系统备忘

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

首先是联编 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。