Online upgrade/makeworld: 6.2-R to 7.0-R

早該更新了, 不過還是撐了很久. 原因有二, 第一是我不想備份一堆東西, 我每次都會掛一漏萬; 第二是我不想為了非壓迫性因素專程跑一趟機房: 我行程夠滿了, 為了這麼宅的理由跑機房實在太叫人難過了.

不過現在因為在幫G社建完整的開發環境, 所以正好拿該社的機器做了一點Benchmark, 其實一切如我所料, SMPng的確是大幅提高FreeBSD在SMP與multithread上的效能(由於一些測試設定跟硬體狀態都是為該社特化的, 實在不便公開出來, 事實上我也不想公開這種東西, 免得一堆大神級人物及其信徒找我麻煩), 所以還是花了一點時間study, 然後昨晚開始動工了.

1.先改一下/etc/make.conf, 把tag從RELENG_6_2改成RELENG_7_0.
2.到 /usr/src 下去make upgrade, 把整套Source都拿回來
3.make -jX buildworld, 其中X是你的CPU個數, 我建議最好填「實體」數量, 不要填Hyper-threading後的數量, 實測結果來說不會比較快.
4.make buildkernel KERNCONF=XXXX, 其中XXX是Kernel config的名字, 最好還是跟舊的比較一下, 我機器上的主要差別是, SCPT現在depend INET6, 沒編INET6的請拿掉SCPT吧.
5.make installkernel KERNCONF=XXXX, 先裝完新kernel.
6.關所有service, 留下ssh就好, 直接 make installworld, 然後祈禱
7.mergemaster -i, 請強烈注意firewall.rc, hosts.allow之類可能讓你重開時會哭的地方, 別按i或m按過頭了.
8.reboot, 成敗關鍵在此, 請向你所信賴的神祈禱, 如果不信神的話, 跟身邊的寵物也行.
9.清掉ports tree, 或者砍掉INDEX-6然後重新make fetchindex
10.到 /usr/ports/misc/compat6x 去把compat6x裝一裝吧, 讓一些還沒重編過的package能暫時順利執行.
11.如果有心有空, 作一下 portupgrade -af吧, 記得作之前把 /var/db/pkg/pkgdb.db 砍掉.
12.都做完reboot, 收工

Remote/online makeworld的戰績是, 3到4失敗, 4到5成功, 5到6失敗, 6到7成功. 現在想想, 我還真犯賤自己找事緊張嚇死自己, 其實機房離我家不到兩公里啊.

  • Post a comment

    Threaded commenting powered by interconnect/it code.