+===================== 升級 FreeBSD ==========================+ | | | 0.0 前言 | | 0.1 不被保證的事 | | 0.2 重要注意事項 | | | | 1.0 簡介 | | 1.1 升級程序概要 | | | | 2.0 升級詳細步驟 | | 2.1 備份 | | 2.2 掛上檔案系統 | | 2.3 選擇分發套件 | | 2.4 升級之後該作的事 | | | | 3.0 其它的升級技術 | | | +=====================================================================+ 0.1 不被保證的事 --- ------------ 雖然 FreeBSD 升級的程序已經有最好的的保護措施可以避免意外的資料流失, 但是您仍然有可能在這個安裝的過程中將您的磁碟上的資料清空!! 除非您確定已經為舊的重要檔案做了適當地備份,否則請不要接受這個 升級程序提示您的最後確認訊息!! 0.2 重要注意事項 --- ------------ 在整個注意事項裡我們假設您使用了正確版本的 FreeBSD 所提供的 sysinstall。 如果您使用的版本與您要升級的 FreeBSD 不相符,則發生錯誤的機會將會 變得很高!!而且整個系統會變得很不穩定。最常發生的錯誤是使用了舊系統的 /stand/sysinstall 來升級到更新的版本,這是不被建議的作法。 在這之外,如果您正要從 FreeBSD 2.2.5 或更早的版本升級,請參考 2.4 節, 那裡有一些重要的細節是關於 /etc/fstab 的重大變更,在整個升級的過程中 您將會需要它. 1.0 簡介 --- ---- 這個升級程序會將現存系統裡所有的發行套件換成使用者所選定的新 FreeBSD 裡相對應的新版本。而且就像保留使用者的資料一樣,它也保留標準的 系統設定資料,已經安裝好的套件軟體和其它的軟體。 正在考慮要升級的系統管理員最好在做任何升級程序前,先對這份文件全面性 的研讀。如果沒有這麼做的話則很有會導至升級失敗或資料的流失。 1.1 升級程序概要 --- ------------ 升級一個發行版本的作法是將新版本的元件覆蓋在舊版本的上面。 舊系統的檔案並不會刪除。 下列的系統設定檔將會被保留而回存成原始的版本: Xaccel.ini,adduser.conf,aliases,aliases.db,amd.map,crontab, csh.cshrc,csh.login,csh.logout,daily,disktab,dm.conf,exports, fbtab,fstab,ftpusers,gettytab,gnats,group,host.conf,hosts, hosts.equiv,hosts.lpd,inetd.conf,kerberosIV,localtime,login.access, mail.rc,make.conf,manpath.config,master.passwd,mib.txt,modems, monthly,motd,namedb,networks,passwd,phones,ppp,printcap, profile,protocols,pwd.db,rc,rc.firewall,rc.i386,rc.local, rc.network,rc.conf,remote,resolv.conf,rmt,security,sendmail.cf, services,shells,skeykeys,spwd.db,supfile,syslog.conf,termcap, ttys,uucp,weekly 相對於這些檔案的舊版本將會被移到 /etc/upgrade/。系統管理員可以參考 新的版本然後將需要的部份合併在一起。值得注意的是這其中有許多檔案是 互相關聯的,因此最好的合併方法就是將同一個特定地區 (site-specific) 的資料一起複製到新的檔案裡去。 在升級的過程中,系統管理員會被提示要決定將舊的 /etc/ 下的檔案 保存一份在某一個目錄,如此一來,在對另外一份檔案做了變更之後, 仍然可以從這個保存的目錄恢復到原來的樣子。 2.0 升級詳細步驟 --- ------------ 這一節詳細的記錄升級的步驟。與一般安裝步驟不同的地方將會被提出來說明。 2.1 備份 --- ---- 在您開始升級之前,應該要先備份使用者的資料和系統的設定檔。 雖然整個升級程序已經盡量避免意外的錯誤,但是仍然有可能會破壞一些特定 或全部的資料和組態資訊。 2.2 掛上檔案系統 --- ------------ 在進入磁碟標籤編輯器(disklabel editor)時,已經選取的檔案系統裝置將會 一起被列出。在開始這個升極程序前,系統管理者應該先對裝置名稱以及對應的 掛入點(mountpoints)做好記錄。然後在這個步驟中輸入這些掛入點。 不要對任何檔案系統設定'newfs flag',否則將一定會導至資料的流失。 2.3 選擇分發套件 --- ------------ 一般來說,並沒有限制那一個分發套件是一定要被選取的。但是對升級來講 'bin' 則應該被選取,還有如果本來就有安裝 'man' 的話,則新的 'man' 也應該要被選取。如果想要增加額外的功能則還要再選擇一些其它的套件。 2.4 After Installation --- ------------------ 當升級的程序完成之後,系統管理員將會被提示對新的設定檔作一些檢查。 這時候檢查可以確保系統的設定是可行的. 尤其是 /etc/rc.conf 和 /etc/fstab 這兩個檔案。 仔細閱讀以下的說明,但是在新的系統正常的開機之前,不要依照以下的描述 來修改您的 /etc/fstab。這個升級程序將舊的系統的核心(keenel)換成一個 通用(GENERIC)的核心。但是為了能適用於本地端(local)的設定,您可能需要 一個特別訂製的核心。 重要注意事項: ============= 從 FreeBSD 2.2.6 開始,系統改變了對於根節點檔案系統(root filesystem) 的載入裝置的命名方式。這個改變影響了所有的系統,但是使用者所要做的 只是將系統從比 FreeBSD 2.2.6 還早的版本升級。 在較早之前,根節點檔案系統一定要從一個特別,固定的slice掛上。 而其它的磁碟分割則是從它們真正所在的slice掛上。這會使得 /etc/fstab (舉例來說)看起來像這個樣子: # Device Mountpoint FStype Options Dump Pass# /dev/wd0s2b none swap sw 0 0 /dev/wd0a / ufs rw 1 1 /dev/wd0s2f /local0 ufs rw 1 1 /dev/wd0s2e /usr ufs rw 1 1 對 FreeBSD 2.2.6 和以後的版本來說,這種格式做了一個改變使得用來掛上 '/' 的裝置跟其它的一樣,再看個例子: # Device Mountpoint FStype Options Dump Pass# /dev/wd0s2b none swap sw 0 0 /dev/wd0s2a / ufs rw 1 1 /dev/wd0s2f /local0 ufs rw 1 1 /dev/wd0s2e /usr ufs rw 1 1 在這種情況下如果沒有手動的更新 /etc/fstab 的話,當系統掛上 '/' 的時候 會發出一個警告訊息(但是可以順利開機),並且指出需要對 /etc/fstab 做 更新的動作。另外也會有另一種困擾,如果'/'沒有被正確的卸載,則下次 重心開機後,它也不會被標示(marked)成一個乾淨(clean)的 slice。 升級並且重新開機成功的系統應開要儘快的做這個改變。 3.0 其它的升級技術 --- -------------- 對於更有彈性與精密性的升級方法有興趣的人應該要看看這個網頁 "Upgrading FreeBSD from source" 的指導. 它的網址在 http://www.freebsd.org/docs.html。 這個方法需要可靠的網路,額外的磁碟空間 和時間,但是對於網路或其它複雜的安裝卻是比較有利的。