歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> FreeBSD Release 5.4 to 6.1的危險經歷

FreeBSD Release 5.4 to 6.1的危險經歷

日期:2017/2/28 11:20:50   编辑:關於Unix


6.0出來後,一直沒有升級,等到6.1發布後,決定升級,沒想到卻遇到了麻煩。下面把我的這次經歷寫出來(裡面有些地方我還不是很清楚)。
1. 先cvsup,同步源代碼,接下來:
/usr/src/usr.sbin/mergemaster/mergemaster.sh -p
這裡出現了第一個錯誤。當出現處理./etc/master.passwd這個文件的時候,有d,i,m,v四個選項,我沒看清楚,選擇了d,結果/etc/master.passwd給清空了(後來我選的i,就是用/usr/src/etc/master.passwd替換/etc/master.passwd,但是會把普通用戶刪掉,我不清楚最好應怎麼辦)。然後,
cd /usr/obj
chflags -R noschg *
rm -rf *
adjkerntz -i
cd /usr/src
make buildworld
make buildkernel KERNCONF=MY_KERNCONF
make installkernel KERNCONF=MY_KERNCONF
reboot
一切還算順利
2. 重新啟動,問題來了:
後來,只好啟動時,只按一次回車鍵,出現一個選擇不同的啟動方式時,按6,出現命令提示符“OK”。輸入?看幫助,裡面有unload,load,boot等命令。於是,執行下列命令:
unload
load /boot/kernel.old/kernel
boot
哈,順利進入系統。
果然,是這裡的問題,現在能用6.1內核進入系統了。於是,進入單用戶,執行命令:
fsck -p
mount -u /
mount -a
make installworld
安裝了一部分後卻出現錯誤,提示需要audit組,可是我的/etc/group裡面沒有這個組。一查/usr/src/etc/group,發現裡面有這個組,於是只好又/usr/src/usr.sbin/mergemaster.sh -p, 出現處理group文件時,選i。然後再make installworld,卻又提示一些文件找不到。只好重新make buildworld.
4. 重新make buildworld時,卻沒有成功,最後的錯誤是:Too many errors, Gave up! 不知道具體原因,按下Scroll Lock鍵,向上翻頁,但是由於上面的“Too many errors, Gave up!"重復了幾十行,根本看不到具體錯誤原因。make buildworld > log 2>&1 , 想把標准輸出和標准錯誤重定向到log文件,卻不能執行。我想,是不是第一次make installworld時只安裝了一部分6.1的系統文件,導致系統不相容。
5. 沒辦法,只好又cvsup,同步到5.4的源代碼,退回到5.4。這回很順利。就這樣,先回到5.4,再升級到6.1。用ports升級了nvida的驅動,然後一切OK
=====
總結:
1. 一定要保存一個正確的內核。而且由於每次編譯內核後,原來的內核就會覆蓋/boot/kernel.old/,所以,最好把正確的內核備份到另一個地方,比如:cp -R /boot/kernel.old /boot/kernel.good
2. 出現問題,不要馬上就重裝,看看handbook,也許能找到解決辦法。
3. /usr/local, /etc, /home 這三個分區最好與/ , /usr單獨分開,一旦確實需要重裝,也能保留這三個分區裡的文件(特別是配置文件)。
Copyright © Linux教程網 All Rights Reserved