天天看點

FreeBSD安裝調試

01.光碟開機

02.安裝方式

a. Express Begin a quick installation(for impatient)

03.設partition

a. 通常将全部的硬碟分割給同一系統使用(A=Use Entire Disk)

04.分割label

a. C(Create)-->500M-->FS (A file system)--> / (挂入點為/)

b. C(Create)-->256M-->Swap (A Swap partition)

注意: swap 常為ram的兩倍,但ram很大時用一倍就可以

c. C(Create)-->All(剩下的空間)-->FS (A file system)-->/usr (挂入點為/usr)

d. Q (Finish)

05.選擇distributions

[X] 6.kern-Developer Full binaries and doc;kernel source only

06.select the encryption facilities you wish to install(選擇編碼方式)

[X] crypto Basic encryption services

07.安裝ports (Yes)

08.選擇用光碟或Ftp安裝

CDROM

Ftp-->Url-->輸入自己想要的站台(ex:freebsd.csie.nctu.edu.tw)

或是由内建的Ftp站台中選一個離你最近的

09.Network interface information required (網路卡設定)

若是用光碟安裝 則需在Configuration Menu的network做設定

10.開始正式安裝到硬碟中

11.是否做後設定 (yes)

FreeBSD Configuration Menu

a. package-->shell-->bash (用package安裝bash這個shell)

b. Console-->Repeat(鍵盤的重速度)-->fast

c. Timezone-->選擇台灣(台北Taipei) UTC(格林威治時間);(CST中原标準時間)

d. Mouse-->Disable (因server通常不用滑鼠,是以disable)

e. Network (如果之前沒有設網卡的話)

12.重開機

13.開機完成後出現

XXXX login: root (以root登入)

passwd: (因為剛才安裝時沒有設定root密碼是以不會出現)

14.# passwd (設定root密碼,#表示root身份)

輸入想要的passwd并重覆一次

15.# adduser (新增使用者)

一切以預設即可,會有簡單的英文說明須注意的是在login group

login group:XXX(輸入想要的group名稱)

login group is "XXX" Invite XXX into other groups:guest no

(若還想要隸屬於某群組,可在此加入)

16.基本的安裝已完成

FREEBSD5.0的分區和LINUX的分區概念不一樣,沒有安裝過FREEBSD的兄弟,倒是可以看看!個人的安裝體會!

偶們知道一個硬碟最多可以劃分四個主分區,擴充分區算一個主分區,在玩WIN的時候偶們的硬碟一般都隻有兩個主分區,一個是C槽,另外一個就是擴充分區,那麼現在偶們要在保留WIN的情況下安裝FREEBSD,就要分割硬碟,劃分出一個分區作為主分區,因為FREEBSD必須安裝在主分區上面,放心一個硬碟可以有四個主分區的,是以再多分一個主分區沒問題的,如何填加一個主分區呢?偶建議兄弟用這個軟體:partitionexpert2003,再網上找找應該可以找到,這個軟體分區速度快!

好,偶們現在的硬碟上面已經有三個主分區了,一個是C槽,一個是擴充分區,還有一個是偶們剛才填加的主分區,接下來介紹一下FREEBSD的分區命名規則,和LINUX不一樣的:

FREEBSD将主分區稱為SLICE,也就是說一個硬碟最多可以有四個SLICE,這四個主分區分别叫wd0s1,wd0s 2,wd0s3,wd0s4,wd0為第一個IDE硬碟,使用s1辨別第一個分區,如果說第二個主分區是擴充分區的話,就叫wd0s 2,以次類推。FREEBSD安裝的時候會占用一個主分區,假設我們現在用第三個主分區來安裝FREEBSD,也就是wd0s3,那麼偶們必需指定這個分區作為FREEBSD的安裝分區,在分區界面下偶們可以把光标移到wd0s3上,然後按“T”改變這個分區的類型,輸入165,165是FREEBSD的分區類型,上面會有說明的,兄弟可以看看,改變好分區的類型後,偶們按“W”寫入,此時會提示用什麼工具作引導,偶一般都選“BOOTMANAGER”,最後按“Q”退出!

好了,現在FREEBSD的分區已經準備好了,接下來就要在這個分區上分“/”“/var”“/usr”swap分區了,偶們按“A”,讓FREEBSD自動分這些區,其實這一部分就像在擴充分區上面劃分邏輯分區的道理一樣,接下來按“W”寫入,按“Q”退出,好了,分區到此就搞定了,接下來安裝其他的,哈哈!

說了這麼多廢話,就是想讓兄弟們可以更好的了解,忍不住還想再總結一下:

1.FREEBSD必需安裝在主分區上面,如果你的電腦現在隻有兩個主分區的話,一定要記得多劃一個出來,要不然到時候不小心把擴充分區幹掉了,555555555,血的教訓啊!

2.先指定一個主分區給FREEBSD使用。

3.然後再指定的主分區上分“/”“/var”“/usr”swap之類的。

好了,說多了,偶國文太差,哈哈!如果兄弟們在安裝過程中有什麼問題可以提出來一起讨論!

FreeBSD伺服器的安裝與優化
釋出日期:2005-1-1 9:46:00 來源:Itohot.com收集整理 錄入:kedee 閱讀:<script src="http://www.itohot.com/Click.asp?filename=2005119479" type="text/javascript"> </script> 39次

對于許多電腦使用者來說,FreeBSD還是一個比較陌生的系統。本文将以FreeBSD 4.7 Release為例,一步一步地帶您安裝一份完整的FreeBSD作業系統。

  安裝前的準備

  FreeBSD對于系統的硬體适應能力比較強(相比Lin ux可能稍差,特别是對于新的顯示卡的支援;但對于伺服器常用的硬體,包括SCSI裝置的支援是相當完善的)。IA平台的多數處理器,下至386,上至Pentium-4及其相容的CPU,都能夠運作FreeBSD。為了有效地安裝、運作FreeBSD,我個人推薦安裝FreeBSD的系統至少要有2GB的剩餘硬碟空間,以及至少64MB記憶體。這樣配置的電腦在今天是很容易找到的。考慮到FreeBSD一般都被配置作為伺服器使用,上面的配置要求顯然是很容易做到的。

  對于伺服器來說,雙啟動是不合适的(伺服器往往要求持續、長時間工作,而切換作業系統無疑需要停止服務。此外,雙啟動的系統穩定性比較差,某個作業系統的崩潰很可能破壞另一個作業系統)。FreeBSD支援和其他作業系統并存、并在開機時通過菜單選擇使用的作業系統,但我個人非常反對以這種方式使用FreeBSD。

  那麼,讓我來從頭到尾地安裝一台FreeBSD伺服器,并說明FreeBSD的安裝。為了安裝FreeBSD,我準備了這樣一台電腦:

  CPU: Pentium II-233, 記憶體64MB, 硬碟(IDE)6GB, PS/2鍵盤、滑鼠,20x光驅、無軟驅、RealTek8139網卡(TP-LINK)。

  上述配置在今天是很容易做到的。當然,就伺服器而言,這個配置确實慘了點,不過FreeBSD在上面運作,并承擔資料庫、動态網頁等服務是完全沒有問題的。

  首先是準備FreeBSD的安裝盤。FreeBSD有許多種安裝方式,最簡單易行的方式就是使用CD光牒安裝;不過盡管如此,在沒有軟驅、光驅的計算機上也是可以通過BOOTP服務采用遠端引導的方式來安裝的。考慮到這種情況比較少見(筆者曾經在一台沒有軟驅、光驅的計算機上成功安裝過FreeBSD,但方法是将硬碟挂接在另一台計算機上,而不是通常的BOOTP),在此不介紹。

  為了安裝FreeBSD,我準備了一張空的CD-R。安裝FreeBSD最少隻需要2張1.44MB的空白軟碟(其餘檔案使用FTP獲得),而安裝FreeBSD隻需要第一張CD光牒就夠了。除非你的計算機很慢,或無法接入Internet,否則一般情況隻需要下載下傳第一張CD光牒的鏡像。由于網絡中心的FTP上提供了FreeBSD 4.6全部四張CD光牒的鏡像,以及4.6.2的前兩張CD光牒,是以我直接下載下傳并刻了後者的第一張CD光牒。

  打開計算機,進入BIOS Setup。在其中選擇讓計算機從CD光牒啟動(這是關鍵步驟,雖然FreeBSD也可以從DOS環境中啟動安裝過程,但那可能會有一些問題)、禁用一切用不到的裝置,包括序列槽、并口、軟驅控制器(這麼做主要是為了提高性能,因為外圍裝置可能會向主機發送中斷請求,而用不到的裝置發送請求除了浪費CPU的時間之外沒有什麼其他作用)。

  FreeBSD安裝CD光牒上的系統使用的是GENERIC核心,這個核心可以适應絕大多數系統的情況。當然,正如他的名字“GENERIC(通用)”,這也帶來的較低的性能,例如,這個核心不能夠發揮雙CPU的能力,等等。不過既然安裝過程隻會進行一次,我們也不必過分地在意它。

  安裝CD光牒啟動(對于軟碟啟動來說,是根據提示将兩張軟碟的内容全部加載到記憶體中)完成後,首先出現的是配置核心。

  配置核心通常不是必需的,因為FreeBSD能夠自動識别硬體。然而,如果你的硬體配置比較特殊(例如,有兩塊網卡,使用特殊的IRQ,比較古老,等等),那麼可能需要手工配置一下核心。對于絕大多數情況來說,隻要删除那些用不到的裝置,就能夠正常完成FreeBSD的安裝;如果你對于自己的硬體不熟悉,這一過程甚至可以跳過。

  我個人比較喜歡删除不用的裝置,于是選擇Visual方式,将不需要的裝置統統删除。最後,按Q儲存配置,進入FreeBSD的安裝程式sysinstall(8)。

  FreeBSD基本系統的安裝

  作為一個伺服器管理者,經常性的伺服器軟體更新是必不可少的。FreeBSD提供了非常便捷的更新方式——cvsup,它可以從FreeBSD中央cvsup伺服器,或某個cvsup鏡像上擷取FreeBSD的部分或全部源代碼,而且,它隻下載下傳那些修改過的源代碼,并且可以根據需要選擇适合你的版本(使用-STABLE可以提供較好的穩定性以及作業系統的最新特性,多數管理者都會選擇這個;使用-RELEASE能夠獲得成熟産品的品質,盡管話是這樣說,但實際上選擇這一分支的人很少;使用-CURRENT的使用者主要是參與FreeBSD開發的人員,這個分支包含了所有即将進入-STABLE分支的新特性,但不要指望這個分支能夠提供必要的穩定性保證,也不要指望它能夠帶來很好的性能,但所有的安全問題都是首先在這個分支内修正的。我将在後面詳細介紹這些)。

  一旦最初的核心配置完成,它就會立即啟動,并根據配置檔案啟動sysinstall(8)。我們将看到一個标準的文字模式配置界面,這有點類似于早期Visual Basic For MS-DOS編寫的應用程式的界面。

  選擇Standard進入标準的FreeBSD安裝過程。首先是對磁盤進行分區。

  FreeBSD對于磁盤的管理和Windows有比較大的差别。一個磁盤上通常有一個Partition就夠了,而一個Partition又可以分成若幹個slice,并加以标記(label)。實際上,FreeBSD的slice基本上可以等同于Windows的磁盤分區,或卷的概念。

  為了保證與FreeBSD共存的系統能夠啟動,預設情況下FreeBSD會保留一部分磁盤空間(64 cyl)。對于單一作業系統的計算機來說,這是完全沒有必要的。分區時按Shift+F可以選擇不使用這個特性,不過這種情況下,除了徹底毀掉這套FreeBSD之外,恐怕就沒有其他方法能夠從這塊硬碟上引導其他作業系統了。為了完全使用磁盤空間,我選擇了不保留預留白間。

  随後是在這個Partition上建立slice。和Linux的情況類似,FreeBSD也使用單獨的交換區。這種設計可以避免碎片,也防止了對檔案系統的影響,性能較好。通常情況下交換分區是記憶體的2-2.5倍,這足以應付日常的突發事件。/var用于儲存那些不在叢集中共享的檔案,/tmp用來儲存臨時檔案,而/usr用來儲存那些需要在叢集中同步的檔案。/就不用說了,它儲存的是啟動系統需要的檔案。

  通常給/配置設定的空間是128MB,/tmp和/var各256MB,剩下的都分給/usr。不過也有例外,如果打算做一個大型的郵件系統,則/var要大一些(通常郵件系統依賴/var來儲存郵件)。當然,各個slice可以mount到不同的地方(例如,你可以把曾經的/usr變成/var),不過最開始配置好可以減少很多麻煩。

  當然,偷懶的方法也是有的。在沒有slice,或沒有完全配完slice的情況下按A,系統會給出一組(或對剩下的label)預設的配置。如果你打算單純提供Web+資料庫這樣的服務,完全可以直接接受這組配置。

  從FreeBSD 4.x開始,ufs支援了一個叫做SoftUpdates的技術。SoftUpdates的主要設計目标是提高檔案系統性能。除了/所在的slice之外,所有的ufs slice都應打開SoftUpdates,這樣對于提高系統整體性能很有好處。(/雖然也是ufs slice,但打開SoftUpdates會造成系統不穩定——FreeBSD文檔如此警告,而筆者确實也吃過這個虧。不過,由于/的内容不需要經常變化,不打開SoftUpdates和打開了SoftUpdates幾乎沒有性能上的差别) 。SoftUpdates可以随時通過tunefs(8)來打開或關閉。在label(8)程式中,打開SoftUpdates的标志是檔案系統顯示為ufs+s。

  之後是選擇安裝媒體和要裝的Distribution。它提供了幾組常見的情況。Minium安裝最小系統,包括一些基本的Unix程式。Developer包括了一些開發工具;X-Developer和Kernel-Developer分别是X和核心開發人員用的。此外還有可選的ports,它可以幫助我們來安裝應用程式。

  我通常使用的是Custom(定制安裝),不安裝源代碼、ports(因為這些可以從cvsup同步得到最新的,安裝一遍浪費時間),隻安裝XFree86(主要是為了運作cvsup,因為編譯不需要X的cvsup需要很長時間,而且很多其他的東西,如php要用到的gd等等,需要XFree86的庫檔案的支援)、基本系統以及一部分庫檔案。當然,您也可以根據需要選擇安裝其他元件。

  完成之後系統就開始安裝了。注意,一旦安裝開始,所有前面做的分區、建立檔案系統等操作就結結實實地寫到了硬碟上,再沒有反悔的機會了。如果您的硬碟上包含重要資料,那麼請在這之前備份。

  根據計算機速度的不同,這個過程可能持續10分鐘到數小時不等。在此過程中,除了CD光牒或硬碟出問題之外,基本上不會出現節外生枝的情況。按Alt+F2可以切換到用于調試sysinstall(8)的控制台,Alt+F4可以切換到一個指令行控制台,這些都是調試FreeBSD安裝過程,或應付緊急情況的,通常用不到。

  全部系統檔案安裝完成之後,sysinstall(8)會給出一個祝賀畫面。同時,它也告訴你如何在以後運作sysinstall(8)進行其他操作,如配置等等。實際上,在FreeBSD中sysinstall(8)基本上相當于Windows控制台的作用。

  随後可以根據自己的情況配置網絡、設定時區、顯示字型、XWindow等等,并且建立新的使用者(FreeBSD中的内建管理者叫做root,但由于它擁有一切特權,是以完全靠它來做日常工作有時會不太友善,筆者自己就曾不慎以root身分删除了modules,然後戰戰兢兢地重新編譯核心)。

  FreeBSD安裝盤上還提供了一些packages。這些packages是預先遍一号的應用程式。對于一台擁有很好的Internet連接配接的、速度足夠快的機器來說,并不需要安裝packages(KDE和X除外,編譯它們各需要花上一天一夜的功夫)。這台機器速度還稱不上“足夠快”,是以我安裝了cvsup,它在devel中。

  到目前為止,我們已經安裝了FreeBSD的基本系統。由于FreeBSD基本系統中包括很多庫檔案,并且,這些庫檔案可能已經被發現存在問題,是以現在立刻安裝應用程式或服務(如Apache等等)是不合适的。此後我們将講解FreeBSD的線上更新(cvsup)、應用程式的安裝,以及優化。

  更新FreeBSD

  完成了安裝、配置,FreeBSD基本上就算裝完了。不過,目前為止沒有哪個通用作業系統能夠保證“bug-free”,FreeBSD也一樣。在重新啟動之後,我們需要做一些調整;并且,通過重新配置核心,我們可以得到一個更小、更快的作業系統。

  第一步要做的是同步源代碼。FreeBSD是一套開放源代碼的作業系統,它的全部源代碼都可以通過cvsup與中央cvsup伺服器,或它的某個鏡像同步。

  cvsup是一個可選的package,同樣的,它也可以從ports裡面安裝(/usr/ports/devel/cvsup和/usr/ports/devel/cvsup-nogui)。考慮到許多應用程式都依賴X的庫檔案,在前面安裝的部分我安裝了它,并且直接安裝了cvsup的package。不過,如果你有足夠的耐心去一個一個地make需要的ports,那麼先安裝ports collection,然後make cvsup-nogui也是一個不錯的主意,盡管這需要比較長的時間。

  建立一個用于cvsup(1)的supfile,命名為stable-supfile:

  (default host中標明的cvsup伺服器——ftp.bjpu.edu.cn對通路的IP進行了限制,筆者隻在北京工業大學校内使用過,是以如果您無法連接配接這個伺服器,請嘗試www.cn.freebsd.org,或cvsup.freebsd.org)

*default host=ftp.bjpu.edu.cn

*default base=/usr

*default prefix=/usr

*default release=cvs tag=RELENG_4

*default delete use-rel-suffix

src-all

ports-all tag=.

  随後執行

  cvsup -g -L 2 stable-supfile

  這裡需要稍微解釋一下FreeBSD的幾種版本。

  FreeBSD包括3類分支:-RELEASE,-STABLE和-CURRENT。FreeBSD 3.x、4.x和5.0是目前受到維護的版本,如果你期待穩定運作,那麼,可以選擇的最新版本将是FreeBSD 4.6-STABLE(如果你是在4.6.2-RELEASE發行之後更新的,那麼它實際上比4.6.2-RELEASE新,并且,它正式的CVS tag是RELENG_4,即FreeBSD 4-STABLE)。

  那麼,三類分支有什麼差別呢?

  FreeBSD的開發是非常活躍的。系統中可能會随時引入一些新的特性。最新的代碼是在-CURRENT分支中引入的。-CURRENT的修改非常頻繁,每天都可能有數百處修改。使用-CURRENT分支的FreeBSD需要耐心和勇氣,因為你的系統随時可能崩潰(随着FreeBSD 5.0開發尾聲的接近,這種現象已經越來越少),make world也可能空手而歸(沒有人保證-CURRENT分支能夠正常編譯),此外,這個分支的性能也不好(因為調試的原因,這個分支引入了大量的調試選項,這意味着運作速度不會太快)。當然,正像它的名字那樣,-CURRENT分支的版本也是最新的5.0,而且,一切FreeBSD的錯誤和漏洞的修正都是首先在-CURRENT分支引入的。目前,-CURRENT分支碩果僅存的隻有FreeBSD 5-CURRENT(指定cvs tag時寫“.”),這個分支包括了FreeBSD 5.0開發的最新進展。

  FreeBSD 5中将引入大量的新特性,包括核心級線程(目前FreeBSD中的線程支援僅限于使用者級線程,這在多處理器的環境下性能不夠好,當然,目前使用fork()來支援的多程序線程模拟能夠提供類似核心級線程的功能,但并不是所有的程式員都知道如何使用fork)、完整的Soft Updates(這一變化将提供更好的檔案系統性能,同時提供更好的穩定性),等等。如果你有快速的Internet連接配接,一台或一些空餘的機器(當然,不是生産用的伺服器),并且希望為FreeBSD的開發作貢獻,或者你關心作業系統的最新發展,那麼,-CURRENT分支是最好的選擇。

  此外,由于-CURRENT分支性能不好、穩定性不夠等這些缺點,對于生産的伺服器來說,通常運作的應該是FreeBSD-STABLE。如同它的名字那樣,FreeBSD-STABLE的目的是“穩定地運作”。-CURRENT分支中的代碼,在經過一段時間(通常是7到90天,但安全更新屬于特例,通常會在幾個小時)的驗證之後,符合版本條件(有些新特性隻能用于FreeBSD 5.0)的代碼會被FreeBSD-STABLE吸收,這個操作稱作MFC(Merge From -CURRENT,不是Microsoft Foundation Classes:P)。

  由于FreeBSD 5.0的第一個RELEASE至今仍然沒有釋出,是以,目前還沒有5.0-STABLE。目前,FreeBSD-STABLE有兩個版本,FreeBSD 3-STABLE和FreeBSD 4-STABLE,分别對應3.x和4.x的最新穩定版代碼(對應的cvs tag分别是RELENG_3和RELENG_4)。由于版本的更新換代,其中3.x的-STABLE正在逐漸消亡。FreeBSD-STABLE每天平均會修改10個左右的檔案。

  每隔一段時間,FreeBSD的發行工程組(Release Engineering Team)會對FreeBSD-STABLE的源代碼樹進行鎖定。這段時間(目前的規定是30天,之前還有30天準備)内,所有的MFC操作都需要發行工程組的準許,是以,FreeBSD-STABLE在這個階段基本不會引入任何新的特性。經過這段時間之後,發行工程組會在最後鎖定ports樹,并build一份所有的package,之後,這份鎖定的-STABLE,可能經過若幹RC(Release Candidate),被命名為RELEASE,并制作CD光牒發行。

  顧名思義,-RELEASE的設計目标是“發行”。一個版本一旦RELEASE,那麼他的功能就不會再增加了。此後的所有維護的目标都隻有一個,那就是絕對穩定。如果你和-RELEASE分支同步,那麼絕不會出現make無法通過的情況,而且,通常這也可以保證你的系統“絕對”穩定,因為它不會引入任何新功能(例如,4.6就是4.6,如果你想要4.6.2的功能,必須明确地指定4.6.2)。

  目前,FreeBSD有很多RELEASE版本,它們的cvs tag如下。我個人建議使用最新的4.6.2-RELEASE。

  對于多數人來說,-RELEASE是一個比較極端的選擇。無論何時出現版本更新,如果你想跟進,那都必須修改supfile,如果你選擇不跟進,那麼就可能造成ports工作異常。如果經常更新,-RELEASE可以保證作業系統本身的安全性,但同其他分支一樣,如果ports出了問題,那麼也得一塊make,而既然這樣,還不如使用-STABLE。

  如果你符合下面的條件,那麼RELEASE分支可能比-STABLE分支更适合你

你使用的軟體對于作業系統的變化非常敏感,比如,它隻能FreeBSD 4.5,而無法在4.6上運作;同時,你不打算采用它的更新版本,或者它的作者拒絕更新

作業系統的更新對于你來

說沒有任何意義,比如,你打算把FreeBSD當作一個相對固定的嵌入式作業系統來使用,例如,作為防火牆的一部分

更新會對你造成困擾,作業系統的絕大多數新特性對于你來說除了增加煩惱之外,不能帶來任何其他東西。

-并且,符合以下的全部條件-

你每天察看FreeBSD,以及使用的全部軟體的安全公告

你的Internet連接配接比較通暢

  目前我本人維護的所有主機,除了作為防火牆的那台之外,使用的都是FreeBSD-STABLE。

  一旦同步完源代碼,就應該對整個系統進行更新。如果你沒有每天察看安全公告的習慣,那就應該關心一下cvsup到底更新了哪些代碼。nectar是目前FreeBSD的Security Officer。如果你發現他一下子更新了許多代碼,那麼對你來說立即make world和kernel很可能是必需的。

  為了更新整個系統,在/usr/src中執行

  make world

  以及

  make kernel KERNCONF=核心配置檔案名

  當然,也可以連起來執行:

  make world kernel KERNCONF=核心配置檔案名

  如果你的計算機運作速度較慢,那麼,對于基本系統的更新(相當于不包括庫的一次world),可以用

  make most

  替代make world,但make world是一個不錯的主意,因為它能夠保證對C運作環境的改變應用到所有的程式中,如果修正的不是動态連接配接的C函數庫,那麼make world可以保證代碼的一緻性。

  make kernel是一個需要重新啟動的操作。如果你的make world修改了系統的關鍵服務,那麼最好也重新啟動一下。我很少有耐心看完make world和kernel的執行,根據系統的運作速度不同,這需要一個小時到一天的時間,而且,不是所有的SSH用戶端都能夠長時間正确的執行,例如,SecureCRT的多個版本都有記憶體洩漏問題。

  為了解決這個問題,我用下面的指令來完成更新:

  make world kernel KERNCONF=核心配置檔案名 clean > /var/log/world,out && reboot &

  這個指令能夠記錄更新的全過程,如果在什麼地方編譯失敗,你可以很快地找到原因。對于多數人來說,由于後面的&&,隻需要察看uptime就能知道便以是否成功。

  需要說明的是,FreeBSD的make world并不總能成功。有時需要修改一些環境變量才能成功完成make。為了保證make成功,在/usr/src中執行任何make操作之前,建議你看一眼UPDATING中是否有特殊的要求(這種要求并不是在FreeBSD Release的時候才會出現,很多時候他會在某個CURRENT中引入,然後随着MFC進入-STABLE分支),并且,在進行大的版本更新之前(跨RELEASE,甚至主版本号),首先執行下面的指令

  mergemaster -p

  并在make world之後執行

  mergemaster -i

  運作mergemaster腳本需要一定的Unix配置知識,不過,由于配置檔案中包含很多幫助資訊,是以,隻要master.passwd、group這樣的檔案不出大問題(如果cvsup更新了master.passwd,那麼就需要留神,因為master.passwd标準配置是root密碼為空,這時需要用m來合并,而不是使用i安裝),mergemaster并不會引入什麼新的問題。

  前一條指令是更新make的配置(/etc/defaults/make.conf和/etc/make.conf)。對于多數人來說,除非進行跨版本更新,否則一般情況下是不需要這樣做的。後一條指令是同步全部配置,并安裝以前不存在的配置檔案,而不進行提示。

  筆者曾經遇到過FreeBSD因為系統日期不正确而無法make的情況,是以,再次特别提醒大家,如果你的系統日期不正确,最好是用date指令修改一下,或者幹脆用ntpdate或ntpd來同步時間。關于如何使用ntp,将在以後說明。

  以後我們将講解FreeBSD核心的配置,以及如何配置make.conf來優化FreeBSD的編譯結果。

“簡單的東西不容易出問題。”

  至理名言!事實上,削減作業系統中那些對你沒用的功能是一件非常重要的事情。這不僅僅意味着一個更小的作業系統,占用更少的磁盤空間(現在的硬碟少說也有幾十GB,幾兆的空間根本就是九牛一毛),而且意味着你被攻擊的可能性也更低——簡而言之,你不需要擔心作業系統中沒有安裝的子產品存在問題會對你造成影響。

  這篇文章中,我們将一起對FreeBSD-i386的核心進行優化配置。這篇文章是針對FreeBSD4.7-STABLE寫的,并且,FreeBSD 4.x的配置不會和這篇文章有太大出入。如果你要優化FreeBSD 5或FreeBSD 2/3的核心的話,則需要仔 細參考它們的LINT檔案了(後面将會提到)。

  [注意:FreeBSD 5.0預定将于2002年11月20日釋出。FreeBSD的開發組非常重視發行版本的品質,并認為這比發行版本的計劃還重要,但由于同樣的原因,我們往往會發現FreeBSD實際發行的版本比預定計劃晚一些,通常在半個月之内。FreeBSD 5.0作為FreeBSD近期最為重要的發行版本,很可能也會延後發表,但筆者個人認為無論如何我們在今年年底之前肯定是可以看到最終的發行版本的。FreeBSD 5.0對系統進行了大量的修改,這一系列的文章将在FreeBSD 5.0釋出當天發表針對5.0的修訂版本,而現有版本将保留,但進入維護階段,不再引入新的内容。]

  FreeBSD的源代碼可以直接從中央cvsup伺服器同步,也可以作為系統的一部分在安裝的時候一兵裝上。前面已經說過如何同步源代碼,在此不再贅述。FreeBSD的源代碼(通常在/usr/src)包含建造基本系統的全部代碼,而在/usr/src/sys中則有若幹個目錄,對應不同的計算機體系結構(4.x隻支援i386和alpha)。i386是一個泛指的名字,包含了與Intel 80386相容的所有機器,并不是特指80386。

  簡單介紹一下FreeBSD的核心檔案。在4.x系統中,/kernel這個檔案是預設的核心,通常正常啟動使用的就是它。 /kernel.GENERIC這個檔案是相容性較強的核心,如果/kernel無法引導系統, 就得靠這個檔案來引導。/kernel.old是本次make kernel之前的核心,通常如果你的kernel壞掉, 也可以考慮使用/kernel.old來引導系統。

  /modules/是核心的子產品,而/modules.old/是對應/kernel.old的子產品。這些檔案在每次替換kernel的時候都會同時替換。

  在5.0中,核心以及核心的子產品都被儲存在/boot/kernel中。

  在/usr/src/sys/i386/conf中有兩個配置檔案,GENERIC和LINT。其中GENERIC是make kernel的預設配置檔案,直接make kernel生成的是GENERIC核心,但安裝時命名為/kernel。系統在安裝時會安裝一個kernel.GENERIC,以後,這個檔案不會跟随系統的make kernel更新,是以,如果你認為這個檔案有必要更新的話,需要手工make kernel,并把/kernel改名為kernel.GENERIC。當然,通常并不需要這樣做。

  LINT是包括幾乎所有核心編譯配置詳細資訊的檔案。這個配置并不是用來真正建立kernel的,他的主要用途是向使用者展示可用的核心編譯配置。在修改核心編譯配置時,最好先參考這個檔案。

  為了配置自己的核心,應将GENERIC複制為一個另外的檔案。習慣上這個檔案和主機名相同。例如,我把自己的這台Web機器命名為apache.intranet.frontfree.net,就把配置檔案命名為APACHE:

cd /usr/src/sys/i386/conf

cp GENERIC APACHE

  随後,用ee APACHE編輯它。我們拿一個實際的GENERIC檔案來說明。

  為了節省篇幅,這個檔案頭上的注釋被删掉了一部分。

machine i386         # 體系模型為i386

cpu I386_CPU         # 支援80386

cpu I486_CPU         # 支援80486

cpu I586_CPU         # 支援Pentium

cpu I686_CPU         # 支援Pentium Pro以及更高

ident GENERIC        # 核心檔案的名字

maxusers 0          # 自動檢測同時允許的最大使用者數

#makeoptions DEBUG=-g # 包含調試符号。通常隻有current版本打開

options MATH_EMULATE #支援協處理器模拟

options INET     #支援網際網路

options INET6     #IPv6通訊協定

options FFS      #伯克利快速檔案系統

options FFS_ROOT   #FFS作為根裝置[必須保留]

options SOFTUPDATES  #打開FFS soft updates支援

options UFS_DIRHASH  #提高大型目錄的支援

options MFS      #記憶體檔案系統

options MD_ROOT    #MD作為根裝置

options NFS      #Network Filesystem

options NFS_ROOT   #NFS作為根裝置(需要NFS)

options MSDOSFS    #MSDOS檔案系統

options CD9660    #ISO 9660檔案系統(CD光牒)

options CD9660_ROOT  #CD-ROM作為根裝置(需要CD9660)

options PROCFS    #程序檔案系統

options COMPAT_43   #相容4.3BSD[必須保留]

options SCSI_DELAY=15000 #檢測SCSI裝置前的延時(ms)

options UCONSOLE   #使用者可以奪取控制台

options USERCONFIG  #boot -c編輯器 editor

options VISUAL_USERCONFIG #菜單式boot -c編輯器

options KTRACE    #ktrace(1)支援

options SYSVSHM    #SYSV-風格的共享記憶體

options SYSVMSG    #SYSV-風格的消息隊列

options SYSVSEM    #SYSV-風格的信号量(semaphores)

options P1003_1B   #Posix P1003_1B實時擴充

options _KPOSIX_PRIORITY_SCHEDULING

options ICMP_BANDLIM #對惡意ICMP請求進行限制

options KBD_INSTALL_CDEV # 在/dev安裝一個CDEV裝置

# 下面兩項在制作對稱多處理器(SMP)核心時需要

#options SMP     #對稱多處理器核心

#options APIC_IO   #對稱(APIC) I/O

device isa

device eisa

device pci

# 軟驅

device fdc0 at isa? port IO_FD1 irq 6 drq 2

device fd0 at fdc0 drive 0

device fd1 at fdc0 drive 1

#

# 如果使用東芝Libretto以及他的Y-E Y-E Data PCMCIA軟驅

# 不要使用上面的fdc0,而應使用

#device fdc0

# ATA以及ATAPI裝置

device ata0 at isa? port IO_WD1 irq 14

device ata1 at isa? port IO_WD2 irq 15

device ata

device atadisk # ATA 磁盤驅動器(IDE硬碟)

device atapicd # ATAPI 光驅

device atapifd # ATAPI 軟驅

device atapist # ATAPI 錄音帶機

options ATA_STATIC_ID #靜态裝置編号

# SCSI控制器

device ahb # EISA AHA1742 family

device ahc # AHA2940 闆載AIC7xxx裝置

device amd # AMD 53C974 (Tekram DC-390(T))

device isp # Qlogic family

device ncr # NCR/Symbios Logic

device sym # NCR/Symbios Logic (較新的晶片組)

options SYM_SETUP_LP_PROBE_MAP=0x40

# 使用ncr可以在配置了sym和ncr的情況下挂接舊的NCR裝置

device adv0 at isa?

device adw

device bt0 at isa?

device aha0 at isa?

device aic0 at isa?

device ncv # NCR 53C500

device nsp # Workbit Ninja SCSI-3

device stg # TMC 18C30/18C50

# SCSI 外設

device scbus # SCSI 總線(如果使用SCSI裝置,必須有)

device da # Direct Access (硬碟)

device sa # Sequential Access (錄音帶,等等)

device cd # CD

device pass # Passthrough device (直接 SCSI 通路)

# 通過SCSI子系統接口的RAID控制器

device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID

device dpt # DPT Smartcache - See LINT for options!

device iir # Intel Integrated RAID

device mly # Mylex AcceleRAID/eXtremeRAID

device ciss # Compaq SmartRAID 5* series

# RAID控制器

device aac # Adaptec FSA RAID, Dell PERC2/PERC3

device aacp # SCSI passthrough for aac (requires CAM)

device ida # Compaq Smart RAID

device amr # AMI MegaRAID

device mlx # Mylex DAC960 family

device twe # 3ware Escalade

# atkbdc0 控制鍵盤和PS/2滑鼠

device atkbdc0 at isa? port IO_KBD

device atkbd0 at atkbdc? irq 1 flags 0x1

device psm0 at atkbdc? irq 12

device vga0 at isa?

# 啟動畫面和螢幕保護程式

pseudo-device splash

# syscons 是預設的控制台驅動,類似SCO控制台

device sc0 at isa? flags 0x100

# 對于pcvt vt220控制台,啟用這個和PCVT_FREEBSD

#device vt0 at isa?

#options XSERVER # 在vt控制台支援X伺服器

#options FAT_CURSOR # 使用大光标

# 如果你是用ThinkPad,将下面的一行和其他PCVT相關裝置的注釋去掉

#options PCVT_SCANSET=2 # IBM使用非标準鍵盤

# 浮點運算支援 - 請勿禁用

device npx0 at nexus? port IO_NPX irq 13

# 電源管理支援

device apm0 at nexus? disable flags 0x20 # Advanced Power Management

# PCCARD (PCMCIA) 支援

device card

device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000

device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# 序列槽(COM)

device sio0 at isa? port IO_COM1 flags 0x10 irq 4

device sio1 at isa? port IO_COM2 irq 3

device sio2 at isa? disable port IO_COM3 irq 5

device s

io3 at isa? disable port IO_COM4 irq 9

# 并口

device ppc0 at isa? irq 7

device ppbus # 并口總線 (所有并口裝置都需要)

device lpt  # 列印機

device plip # 并口TCP/IP

device ppi  # 并口接口裝置

#device vpo # 需要scbus和da

# PCI 以太網擴充卡

device de # DEC/Intel DC21x4x (``Tulip )

device em # Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman )

device txp # 3Com 3cR990 (``Typhoon )

device vx # 3Com 3c590, 3c595 (``Vortex )

# 使用公共的MII總線控制器代碼的PCI以太網擴充卡

# 注意:一定要保留 device miibus 以確定可用

device miibus # MII總線支援

device dc # DEC/Intel 21143 and various workalikes

device fxp # Intel EtherExpress PRO/100B (82557, 82558)

device pcn # AMD Am79C97x PCI 10/100 NICs

device rl # RealTek 8129/8139

device sf # Adaptec AIC-6915 (``Starfire )

device sis # Silicon Integrated Systems SiS 900/SiS 7016

device ste # Sundance ST201 (D-Link DFE-550TX)

device tl # Texas Instruments ThunderLAN

device tx # SMC EtherPower II (83c170 ``EPIC )

device vr # VIA Rhine, Rhine II

device wb # Winbond W89C840F

device xl # 3Com 3c90x (``Boomerang , ``Cyclone )

device bge # Broadcom BCM570x (``Tigon III )

# ISA以太網擴充卡

# device ed 需要 device miibus

device ed0 at isa? port 0x280 irq 10 iomem 0xd8000

device ex

device ep

device fe0 at isa? port 0x300

# Xircom Ethernet

device xe

# PRISM I IEEE 802.11b wireless NIC.

device awi

# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really

# exists only as a PCMCIA device, so there is no ISA attachment needed

# and resources will always be dynamically assigned by the pccard code.

device wi

# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will

# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP

# mode (the factory default). If you set the switches on your ISA

# card for a manually chosen I/O address and IRQ, you must specify

# those parameters here.

device an

# The probe order of these is presently determined by i386/isa/isa_compat.c.

device ie0 at isa? port 0x300 irq 10 iomem 0xd0000

#device le0 at isa? port 0x300 irq 5 iomem 0xd0000

device lnc0 at isa? port 0x280 irq 10 drq 0

device cs0 at isa? port 0x300

device sn0 at isa? port 0x300 irq 10

# 僞裝置 - 數字表示配置設定多少個

pseudo-device loop # 環回網絡

pseudo-device ether # 以太網支援

pseudo-device sl 1 # 核心級SLIP

pseudo-device ppp 1 # 核心級PPP

pseudo-device tun  # 資料包隧道

pseudo-device pty  # 僞-tty(telnet等等)

pseudo-device md  # 記憶體虛拟盤

pseudo-device gif  # IPv6和IPv4隧道

pseudo-device faith 1 # IPv6-to-IPv4轉發(翻譯)

# `bpf 僞裝置将啟用伯克利資料包過濾器。

# 小心由此帶來的管理問題

pseudo-device bpf #Berkeley packet filter

# USB支援

device uhci # UHCI PCI->USB interface

device ohci # OHCI PCI->USB interface

device usb # USB Bus (required)

device ugen # Generic

device uhid # "Human Interface Devices"

device ukbd # Keyboard

device ulpt # Printer

device umass # Disks/Mass storage - Requires scbus and da

device ums # Mouse

device uscanner # Scanners

device urio # Diamond Rio MP3 Player

# USB 以太網,需要mii

device aue # ADMtek USB ethernet

device cue # CATC USB ethernet

device kue # Kawasaki LSI USB ethernet

  現在要做的是去掉我們不需要的任何裝置。(紅色、中劃線表示删除,紅色無修飾表示修改,藍色表示增加)。這份配置是生産伺服器上的配置檔案。

#

# APACHE -- FreeBSD/i386核心配置檔案

#

machine i386         # 體系模型為i386

cpu I386_CPU         # 支援80386

cpu I486_CPU         # 支援80486

cpu I586_CPU         # 支援Pentium

cpu I686_CPU         # 支援Pentium Pro以及更高

ident APACHE         # 核心檔案的名字

maxusers 0          # 自動檢測同時允許的最大使用者數

#makeoptions DEBUG=-g # 包含調試符号。通常隻有current版本打開

options MATH_EMULATE #支援協處理器模拟

#options GPL_MATH_EMULATE #GPL模拟更好,但仍然沒必要,P III有内建協處理器

options INET     #支援網際網路

options INET6     #IPv6通訊協定

options FFS      #伯克利快速檔案系統

options FFS_ROOT   #FFS作為根裝置[必須保留]

options SOFTUPDATES  #打開FFS soft updates支援

options UFS_DIRHASH  #提高大型目錄的支援

options MFS      #記憶體檔案系統

options MD_ROOT    #MD作為根裝置

options NFS      #Network Filesystem

options NFS_ROOT   #NFS作為根裝置(需要NFS)

options MSDOSFS    #MSDOS檔案系統

options CD9660    #ISO 9660檔案系統(CD光牒)

options CD9660_ROOT  #CD-ROM作為根裝置(需要CD9660)

options PROCFS    #程序檔案系統

options COMPAT_43   #相容4.3BSD[必須保留]

options SCSI_DELAY=5000 #檢測SCSI裝置前的延時(ms)

options UCONSOLE   #使用者可以奪取控制台[沒有X,不用]

options USERCONFIG  #boot -c編輯器 editor

options VISUAL_USERCONFIG #菜單式boot -c編輯器

options KTRACE    #ktrace(1)支援

options SYSVSHM    #SYSV-風格的共享記憶體

options SYSVMSG    #SYSV-風格的消息隊列

options SYSVSEM    #SYSV-風格的信号量(semaphores)

options P1003_1B   #Posix P1003_1B實時擴充

options _KPOSIX_PRIORITY_SCHEDULING

options ICMP_BANDLIM #對惡意ICMP請求進行限制[例如flood ping]

options KBD_INSTALL_CDEV # 在/dev安裝一個CDEV裝置

options CPU_ENABLE_SSE #啟用SSE支援(Pentium III)

#options CPU_ATHLON_SSE_HACK #如果你的BIOS不能正确識别Athlon SSE

#options NO_F00F_HACK #如果你使用Pentium且沒有F00F bug

# 對ISA總線,AUTO_EOI将啟用8259A的自動EOI功能

# 這意味着每次中斷調用節省0.7-1.25微秒,但不應用于筆記本

options AUTO_EOI_1

#options AUTO_EOI_2 # 請不要和AUTO_EOI_1同時打開,否則會崩潰。

#options MAXMEM="(1024*1024)" #除非你的BIOS設定不正确造成

               #無法檢測記憶體大小,機關是KB

#在xntpd(8)的監督下啟用核心相同步邏輯

#options PPS_SYNC

#IPFirewall。我們需要的功能IPFilter都提供,并且更高效

#除非你需要IPFirewall的某些專有功能,否則這部分不必編譯

#options IPFIREWALL  #防火牆

#options IPFIREWALL_VERBOSE #允許防火牆日志

#options IPFIREWALL_FORWARD #允許透明代理

#options IPFIREWALL_VERBOSE_LIMIT=100 #限制日至

#options IPFIREWALL_DEFAULT_TO_ACCEPT #預設允許所有IP包

#options IPFW2 # IPFW2,這一特性并非4.x預設。

options IPFILTER    #ipfilter支援

options IPFILTER_LOG  #ipfilter日志

options IPFILTER_DEFAULT_BLOCK #預設阻斷所有IP包

# 靜态資料包過濾許可規則(直接放入核心)

options ACCEPT_FILTER_DATA

options ACCEPT_FILTER_HTTP

#options DEVICE_POLLING #改善網絡響應時間,但realtek不支援

options IPSTEALTH   #支援秘密IP轉發

options RANDOM_IP_ID  #随機IP ID,阻止資訊洩漏

#options TCP_DROP_SYNFIN #抛棄SYN+FIN包,阻止檢測伺服器

            #的TCP協定棧、作業系統,但這對Web

            #伺服器是不推薦的,因為不符合RFC1644

#options QUOTA     #啟用配額支援,但此處沒用

makeoptions CONF_CFLAGS=-fno-builtin #禁用memcpy等GCC預設的影響性能的設定

# 根據記憶體大小配置應用程式可用的最大記憶體

# 這台機器有1GB記憶體

# FreeBSD預設是允許使用128MB

options MAXDSIZ="(1024*1024*1024)"

options MAXSSIZ="(1024*1024*1024)"

options DFLDSIZ="(1024*1024*1024)"

#options PMAP_SHPGPERPROC=201 #每一程序的可用PV項數。

#options NO_SWAPPING     #禁用交換區。不推薦

options PANIC_REBOOT_WAIT_TIME=0 #核心異常(kernel panic)立即重新開機

#核心記憶體大小限制。我傾向使用預設值

#options VM_KMEM_SIZE="(12*1024*1024)"

#options VM_KMEM_SIZE_MAX="(256*1024*1024)"

#options VM_KMEM_SIZE_SCALE="4"

#将這份配置檔案儲存到kernel檔案中,以便以後讀取

#使用這樣的指令:

# strings -n 3 /kernel | sed -n s/^___//p > APACHE

#這裡我們不需要這樣做。

#options INCLUDE_CONFIG_FILE # 包含配置檔案到核心中

#options USER_LDT #某些ports需要這麼做,未來的FreeBSD可能也需要

# 下面兩項在制作對稱多處理器(SMP)核心時需要

#options SMP     #對稱多處理器核心

#options APIC_IO   #對稱(APIC) I/O

device isa

device eisa

device pci

# 軟驅

device fdc0 at isa? port IO_FD1 irq 6 drq 2

device fd0 at fdc0 drive 0

device fd1 at fdc0 drive 1

#

# 如果使用東芝Libretto以及他的Y-E Y-E Data PCMCIA軟驅

# 不要使用上面的fdc0,而應使用

#device fdc0

# ATA以及ATAPI裝置

# 下面兩行被删去,因為新系統不再需要它們。

device ata0 at isa? port IO_WD1 irq 14

device ata1 at isa? port IO_WD2 irq 15

device ata

device atadisk # ATA 磁盤驅動器(IDE硬碟)

device atapicd # ATAPI 光驅

device atapifd # ATAPI 軟驅

device atapist # ATAPI 錄音帶機

options ATA_STATIC_ID #靜态裝置編号[新系統不再需要]

# SCSI控制器

device ahb # EISA AHA1742 family

device ahc # AHA2940 闆載AIC7xxx裝置

device amd # AMD 53C974 (Tekram DC-390(T))

device isp # Qlogic family

device ncr # NCR/Symbios Logic

device sym # NCR/Symbios Logic (較新的晶片組)

options SYM_SETUP_LP_PROBE_MAP=0x40

# 使用ncr可以在配置了sym和ncr的情況下挂接舊的NCR裝置

device adv0 at isa?

device adw

device bt0 at isa?

device aha0 at isa?

device aic0 at isa?

device ncv # NCR 53C500

d

evice nsp # Workbit Ninja SCSI-3

device stg # TMC 18C30/18C50

# SCSI 外設

device scbus # SCSI 總線(如果使用SCSI裝置,必須有)

device da # Direct Access (硬碟)

device sa # Sequential Access (錄音帶,等等)

device cd # CD

device pass # Passthrough device (直接 SCSI 通路)

# 通過SCSI子系統接口的RAID控制器

device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID

device dpt # DPT Smartcache - See LINT for options!

device iir # Intel Integrated RAID

device mly # Mylex AcceleRAID/eXtremeRAID

device ciss # Compaq SmartRAID 5* series

# RAID控制器

device aac # Adaptec FSA RAID, Dell PERC2/PERC3

device aacp # SCSI passthrough for aac (requires CAM)

device ida # Compaq Smart RAID

device amr # AMI MegaRAID

device mlx # Mylex DAC960 family

device twe # 3ware Escalade

# atkbdc0 控制鍵盤和PS/2滑鼠[這台機器沒配滑鼠,也不用圖形界面]

device atkbdc0 at isa? port IO_KBD

device atkbd0 at atkbdc? irq 1 flags 0x1

device psm0 at atkbdc? irq 12 #滑鼠器

device vga0 at isa?

options VGA_NO_FONT_LOADING # 不需要儲存/加載字型[節省記憶體]

options VGA_NO_MODE_CHANGE # 不需要修改顯示模式[節省記憶體]

# 啟動畫面和螢幕保護程式[我的伺服器平時不接顯示器]

pseudo-device splash

# syscons 是預設的控制台驅動,類似SCO控制台

device sc0 at isa? flags 0x100

options MAXCONS=4 # 不需要更多的控制台

options SC_DISABLE_REBOOT # 禁止Ctrl+Alt+Del重新開機,必須以root登入。

options SC_NO_CUTPASTE   # 禁用剪貼闆[節省記憶體]

options SC_NO_FONT_LOADING # 禁用字型加載[節省記憶體]

options SC_NO_SYSMOUSE   # 禁用滑鼠[節省記憶體]

# 對于pcvt vt220控制台,啟用這個和PCVT_FREEBSD

#device vt0 at isa?

#options XSERVER # 在vt控制台支援X伺服器

#options FAT_CURSOR # 使用大光标

# 如果你是用ThinkPad,将下面的一行和其他PCVT相關裝置的注釋去掉

#options PCVT_SCANSET=2 # IBM使用非标準鍵盤

# 浮點運算支援 - 請勿禁用

device npx0 at nexus? port IO_NPX irq 13

# 電源管理支援[這台機器期待長期運作]

device apm0 at nexus? disable flags 0x20 # Advanced Power Management

# PCCARD (PCMCIA) 支援

device card

device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000

device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# 序列槽(COM)

device sio0 at isa? port IO_COM1 flags 0x10 irq 4

device sio1 at isa? port IO_COM2 irq 3

device sio2 at isa? disable port IO_COM3 irq 5

device sio3 at isa? disable port IO_COM4 irq 9

# 并口

device ppc0 at isa? irq 7

device ppbus # 并口總線 (所有并口裝置都需要)

device lpt  # 列印機

device plip # 并口TCP/IP

device ppi  # 并口接口裝置

#device vpo # 需要scbus和da

# PCI 以太網擴充卡

device de # DEC/Intel DC21x4x (``Tulip )

device em # Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman )

device txp # 3Com 3cR990 (``Typhoon )

device vx # 3Com 3c590, 3c595 (``Vortex )

# 使用公共的MII總線控制器代碼的PCI以太網擴充卡

# 注意:一定要保留 device miibus 以確定可用

device miibus # MII總線支援

device dc # DEC/Intel 21143 and various workalikes

device fxp # Intel EtherExpress PRO/100B (82557, 82558)

device pcn # AMD Am79C97x PCI 10/100 NICs

device rl # RealTek 8129/8139

device sf # Adaptec AIC-6915 (``Starfire )

device sis # Silicon Integrated Systems SiS 900/SiS 7016

device ste # Sundance ST201 (D-Link DFE-550TX)

device tl # Texas Instruments ThunderLAN

device tx # SMC EtherPower II (83c170 ``EPIC )

device vr # VIA Rhine, Rhine II

device wb # Winbond W89C840F

device xl # 3Com 3c90x (``Boomerang , ``Cyclone )

device bge # Broadcom BCM570x (``Tigon III )

# ISA以太網擴充卡

# device ed 需要 device miibus

device ed0 at isa? port 0x280 irq 10 iomem 0xd8000

device ex

device ep

device fe0 at isa? port 0x300

# Xircom Ethernet

device xe

# PRISM I IEEE 802.11b wireless NIC.

device awi

# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really

# exists only as a PCMCIA device, so there is no ISA attachment needed

# and resources will always be dynamically assigned by the pccard code.

device wi

# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will

# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP

# mode (the factory default). If you set the switches on your ISA

# card for a manually chosen I/O address and IRQ, you must specify

# those parameters here.

device an

# The probe order of these is presently determined by i386/isa/isa_compat.c.

device ie0 at isa? port 0x300 irq 10 iomem 0xd0000

#device le0 at isa? port 0x300 irq 5 iomem 0xd0000

device lnc0 at isa? port 0x280 irq 10 drq 0

device cs0 at isa? port 0x300

device sn0 at isa? port 0x300 irq 10

# 僞裝置 - 數字表示配置設定多少個

pseudo-device loop # 環回網絡

pseudo-device ether # 以太網支援

pseudo-device sl 1 # 核心級SLIP

pseudo-device ppp 1 # 核心級PPP

pseudo-device tun  # 資料包隧道

pseudo-device pty  # 僞-tty(telnet等等)

pseudo-device md  # 記憶體虛拟盤

pseudo-device gif  # IPv6和IPv4隧道

pseudo-device faith 1 # IPv6-to-IPv4轉發(翻譯)

# `bpf 僞裝置将啟用伯克利資料包過濾器。

# 小心由此帶來的管理問題

pseudo-device bpf #Berkeley packet filter

# USB支援

device uhci # UHCI PCI->USB interface

device ohci # OHCI PCI->USB interface

device usb # USB Bus (required)

device ugen # Generic

device uhid # "Human Interface Devices"

device ukbd # Keyboard

device ulpt # Printer

device umass # Disks/Mass storage - Requires scbus and da

device ums # Mouse

device uscanner # Scanners

device urio # Diamond Rio MP3 Player

# USB 以太網,需要mii

device aue # ADMtek USB ethernet

device cue # CATC USB ethernet

device kue # Kawasaki LSI USB ethernet

  LINT中對于配置有更詳細的說明。由于時間關系,這裡不給出LINT的完整翻譯。對于常用的LINT配置(藍色,但被注釋的部分),我做了一點說明。

  需要說明的是,我個人的經驗,在較舊的AMD處理器上運作FreeBSD伺服器不是一個明智的選擇。我個人的經驗是,在K6上運作FreeBSD,隻要CPU占用超過98%,系統就會當機。這可能是由于FreeBSD的設計過分地挖掘了系統的性能(按FreeBSD.org自己的說法,榨幹伺服器的每一滴油:),舊的AMD處理器可能會吃不消;但我在雙AMD Athlon MP 1900+上運作FreeBSD沒有出現類似的情況。與AMD不同,在Intel的全系列處理器上(包括存在F00F bug的Pentium處理器,486,Pentium-III, Pentium 4, Celeron-II 667等等)我從未遇到過任何問題。

  這台伺服器的網卡使用的是Realtek-8139晶片,這樣的網卡在市場上非常常見。為了确認你的網卡型号,請運作ifconfig(8)。

  編輯完配置檔案,是用下面的指令編譯、安裝核心:

cd /usr/src

make kernel KERNCONF=APACHE

  LINT中對于配置有更詳細的說明。由于時間關系,這裡不給出LINT的完整翻譯。對于常用的LINT配置(藍色,但被注釋的部分),我做了一點說明。

  需要說明的是,我個人的經驗,在較舊的AMD處理器上運作FreeBSD伺服器不是一個明智的選擇。我個人的經驗是,在K6上運作FreeBSD,隻要CPU占用超過98%,系統就會當機。這可能是由于FreeBSD的設計過分地挖掘了系統的性能(按FreeBSD.org自己的說法,榨幹伺服器的每一滴油:),舊的AMD處理器可能會吃不消;但我在雙AMD Athlon MP 1900+上運作FreeBSD沒有出現類似的情況。與AMD不同,在Intel的全系列處理器上(包括存在F00F bug的Pentium處理器,486,Pentium-III, Pentium 4, Celeron-II 667等等)我從未遇到過任何問題。

  這台伺服器的網卡使用的是Realtek-8139晶片,這樣的網卡在市場上非常常見。為了确認你的網卡型号,請運作ifconfig(8)。

  編輯完配置檔案,是用下面的指令編譯、安裝核心:

  cd /usr/src

  make kernel KERNCONF=APACHE

  注意,實際應用中,請将APACHE換成你自己的配置檔案名。

  重新編譯核心需要重新啟動系統才能夠生效。

  上面的配置檔案是我根據LINT以及經驗編寫的配置檔案,其編寫目标在于盡可能避免不必要的代碼,盡可能高效,盡可能安全,并且,在崩潰(注意,FreeBSD事實上很少會崩潰,我管理的FreeBSD機器的崩潰原因目前為止隻有硬體故障或停電)之後盡可能快地恢複。(FreeBSD4.x目前還不支援背景fsck,是以啟用softupdates隻是改善運作性能和檔案系統可靠性,而不保證重新啟動速度的提高)

  由于在核心中屏蔽掉了大量的裝置,是以,休想以這個核心啟動去操作軟碟或CD光牒,或者使用并口,以及SCSI裝置(雖然這可能不是你想要的)。此外,這個核心在沒有root允許的情況下,是不能在控制台上按Ctrl+Alt+Del啟動的。如果你希望其他從業人員在停電(總之,或類似肯定引起系統關機的情況)之前能夠幫助你關閉系統,你可能需要其他方法,比如告訴他root密碼(假如那個人可以信任),sudo(比較好的方法,隻允許他做reboot),或者去掉禁用Ctrl+Alt+Del的設定。此外,經過這樣處理的核心隻支援Realtek-8139晶片的網卡,是以,如果你的情況和我不同,應該做适當的修改。 如果您對這個配置有什麼建議,歡迎給我寫信。

  如此編譯的核心大約是GENERIC核心大小的一半,當然,由于節省了一些記憶體,它的性能肯定會更好。

FreeBSD作業系統安裝手冊之配置篇(多圖)

釋出日期:2005-01-19    作者:小胖   來源:IT168.com

FreeBSD安裝調試

  文/小胖

  在系統軟體複制到硬碟上之後,安裝隻能說是完成了一半,還需要繼續進一步配置系統環境。如果使用Novice 或Express 安裝方式,配置過程将連續進行,執行主菜單Configure 選項下的每個配置功能。如果是Custom 方式,就需要安裝者自己選擇Configure 菜單,然後分别選擇子菜單,如Console、Network、TimeZone等進行配置。

  如果系統安裝成功,我們就可以對一些基本的項目作安裝後初步的配置。任何一項配置在重新開機前都可以重新配置,系統會使用最後一次的配置值。重新開機後如果再做配置,可以執行/stand/sysinstall 指令然後選擇 Configure選項。

  一、配置網絡

  需要配置的第一個重要部分是網絡,在FreeBSD中網絡功能的地位非常重要。通過Sysinstall下的Network配置,可以配置網絡的基本設定内容,如IP、域名、預設網關等,也可以設定基本的網絡應用,如FreeBSD是否用作NFS Client、NFS Server、匿名ftp伺服器,以及是否啟動路由交換軟體routed或gated等等。使用Sysinstall就能設定一個正常運作的網絡客戶計算機,并能對FreeBSD系統提供的幾種基本網絡服務進行設定,非常簡便和直覺。

  1、設定網絡界面

  如果安裝方式是NFS或ftp等網絡安裝方式,這一步應該在選擇安裝方式之後就需要進行設定,否則無法完成複制系統檔案的過程。

FreeBSD安裝調試
圖1

  設定網絡界面時首先要選擇進行設定的網絡界面,FreeBSD将列出核心探測出所有的網絡界面,包括網卡、序列槽和并口等網絡界面。一般這裡隻對網卡對應的網絡界面進行設定,對應于并口、序列槽的網絡界面常常需要較複雜的設定過程,需要在啟動系統之後在額外設定。本例中系統有一個novell的網卡,網絡界面名字為ed0。

FreeBSD安裝調試
圖2

  對標明的網絡界面ed 0,可以配置主機名、域名網關、名字伺服器、IP位址和子網路遮罩等基本的網絡設定。配置好這個界面之後,不需要重新啟動系統就可以立即使其發揮作用,進而使得在安裝過程中就可以連接配接到網絡上。

  使用Tab 鍵可以在各個欄目之間進行切換,請輸入适當的資訊:

  Host(機器名稱):完整的機器名稱,例如本例中的 ghq.example.com 。

  Domain(域名): 您機器所在的域名稱,如本例的 example.com

  IPv4 Gateway(IPv4網關): 輸入将資料包傳送到遠端網絡的機器IP位址。隻有當機器是網絡上的一個接點時才要輸入。如果這台機器要作為您區域網路的網關, 請将此處設為空白。IPv4網關,也被稱作預設網關或預設路由器。

  域名伺服器: 本地網絡中的域名伺服器的IP位址。本例中假設機器所在的網絡中沒有域名伺服器,是以填入的是ISP提供的域名伺服器位址 (213.168.24.5。)

  IPv4 位址: 本機所使用的IP位址。本例為 192.168.0.1。

  子網路遮罩:本範例中的IP位址屬于一個C類位址 (192.168.0.0 - 192.168.255.255)。預設的子網路遮罩為 (255.255.255.0)。

  ifconfig 額外參數設定:任何ifconfig指令跟網卡接口有關的參數。 本範例中沒有。

使用 Tab 鍵選擇 [ OK ]然後按 Enter鍵。然後在該對話框中選擇Yes,使ed0這個網卡以前面設定的内容正常運作。

2、基本網絡服務

配置好網絡界面之後,還可以配置這台FreeBSD提供的基本網絡服務功能,如Ftp服務、NFS服務、是否支援NIS、是否運作路由交換軟體等。需要根據計算機實際要求的功能,設定相應的選項。

象ftp、telnet這些服務可以在安裝完成後修改/etc/inetd.conf 配置檔案來啟用它們。

FreeBSD安裝調試
圖3

如果選擇允許匿名 FTP 存取,那麼網絡中任何人都可以使用FTP來通路您的機器。在啟用匿名通路之前應該考慮網絡的安全問題。

FreeBSD安裝調試
圖4

如果使用者對這些選項不是很清楚,可以忽略這個步驟,因為這些設定選項可以在任意時候重新設定,沒有必要一定在初始安裝的時候将全部設定都設定的無可挑剔。FreeBSD的可伸縮性使得可以在任意時候改動系統設定,不需要重新啟動系統就能使得改動生效。

二、配置系統終端

安裝程式也将幫助安裝者正确設定控制台的一些設定選項,控制台上的主要内容是鍵盤、顯示和滑鼠等裝置。

1、鍵盤和顯示

可以配置控制台上使用的字型,鍵盤的映射方式,鍵盤的重複率,字元模式的螢幕保護和螢幕映射等。

FreeBSD安裝調試
圖5

最常用的選項就是螢幕保護程式了,使用方向鍵将光标移 動到 Saver 然後按Enter。系統也提供了幾種不同字元模式螢幕保護程式,如黑屏、BSD吉祥物等以供選擇,還可以定制不同的螢幕組織方式。

2、控制台滑鼠設定

FreeBSD也提供在控制台中使用滑鼠的能力,能用滑鼠器在控制台上進行複制/粘貼工作,并提供了一個僞滑鼠接口sysmouse,其他需要使用滑鼠的程式,如X,就能配置為使用這個邏輯裝置而不必關心真實的滑鼠類型,使得設定X Window更為簡易。這個配置程式對滑鼠進行設定簡單且友善。

FreeBSD安裝調試
圖6

滑鼠類型Type可以選擇滑鼠的真實類型,或者簡單使用Auto讓FreeBSD自動檢測,然後選擇滑鼠端口Port,這個端口設定必須正确,對序列槽滑鼠必須指定具體的序列槽,其他種類滑鼠使用相應的滑鼠端口等。然後就使用Enable來激活moused守護程序,如果滑鼠指針移 動正常,說明設定正确。那麼以後系統都在啟動時就自動啟動moused守護程序,在控制台的文本狀态下進行滑鼠操作。

三、其它設定

1、配置時區

配置您機器的時區可以讓系統自動校正任何區域時間的變更并且在執行一些跟時區相關的程式時不會出錯。參考您所在的地理位置來配置,選擇适當的區域,選擇您所在的國家,選擇您所在的時區。

2、配置 X Server

為了使用圖形化使用者界面,例如KDE, GNOME,或其它視窗管理程式,您必須 配置 X server 。 為了以非root使用者運作 XFree86,您必須安裝 x11/wrapper 軟體。在FreeBSD 4.7及以上版本是預設安裝的,但以前的版本要手工安裝到系統中。

FreeBSD安裝調試
圖7

您可以通過許多方法來配置 X server,在認真讀了所有的說明後,請使用方向鍵來選擇一種配置方式,并按Enter鍵确認。

3、選擇預設的桌面

有許多視窗管理器可以使用。它們從基本的桌面環境到全部的桌面應用,是一個大型的軟體集。一些人可能隻希望使用一些占用磁盤空間少,記憶體低的視窗管理器;而另外一些人則更傾向于使用有便多特性的桌面環境。選擇使用那種桌面的最好的方法就是嘗試着試用一些不同的桌面環境。這些桌面都可以在安裝完成後通過ports收集或包管理器來進行安裝。

您可以選擇一個流行的桌面配置成為預設的桌面,可以使您在安裝完成後立刻啟動它。

FreeBSD安裝調試
圖8

安裝系統還能配置更多的選項,例如安裝X元件之後,安裝程式還會提示使用者設定X Window圖形界面,然而X Window的設定是另一項複雜的任務,

安裝系統還需要做的工作包括為設定系統的時區資訊,為root使用者設定密碼,以保證系統的安全性,進行添加使用者群組等基本的系統管理等。

4、添加使用者/組

至少要在安裝過程中添加一個使用者,以便于您能不用root 來登陸使用系統。根分區通常比較小,用 root 來運作應用程式可能會快一點。

FreeBSD安裝調試
圖9

添加使用者資訊如下:

FreeBSD安裝調試
圖10

下面的描述資訊會出現在螢幕的下方,可以使用 Tab 鍵來切換不同的項目,以便輸入相關資訊:

Login ID: 新使用者的登陸名(強制性必須寫);

UID:這個使用者的ID編号(如果不寫,系統自動添加);

Group:這個使用者的登陸組名(如果不寫,系統自動添加);

Password:這個使用者的密碼(鍵入這個需要很仔細);

Full name:使用者的全名(解釋、備注);

Member groups:這個使用者所在的組;

Home directory:使用者的主目錄(如果不寫,系統自動添加);

Login shell:使用者登陸的shell(預設是/bin/sh)。

登陸的shell可以在 /bin/sh 到 /usr/local/bin/bash 中修改。 bash shell 是先前預設安裝的shell。 不要使用一個不存在的或您不能登陸的shell。最通用的shell是使用 BSD-world 的 C shell,可以通過指定/bin/tcsh來修改。

在所有的步驟完成之後,就能夠重新啟動系統,此時,一個完整的FreeBSD系統就将展現在使用者的面前了。

四、FreeBSD的啟動與關閉

1、 FreeBSD 在 i386上啟動

如果啟動正常,您将看到在螢幕上有很多資訊滾動,最後您會看到登陸指令行。 您可以通過鍵入 Scroll-Lock和使用 PgUp 與 PgDn來檢視資訊,再鍵入 Scroll-Lock 回到指令行。如果 X 伺服器已經配置好了,預設的桌面也選擇好了,就可以在指令行鍵入 startx 來啟動視察環境。

2、FreeBSD 在 Alpha機器上啟動

一旦安裝完成,您就可以鍵入下面的指令來啟動FreeBSD:

>>>BOOT DKC0

這是從指定的固定硬體進行引導。如果要使 FreeBSD 下次能夠自動啟動, 使用下面的指令:

>>> SET BOOT_OSFLAGS A

>>> SET BOOT_FILE ''

>>> SET BOOTDEF_DEV DKC0

>>> SET AUTO_ACTION BOOT

啟動資訊跟啟動 i386機器時差不多。

3、FreeBSD 關機

正确的關閉作業系統是很重要的。不要僅僅關閉電源。首先,您需要成為一個超級使用者,以root使用者鍵入 shutdown -h now指令。

The operating system has halted.

Please press any key to reboot.

當shutdown指令發出後,螢幕上出現 “Please press any key to reboot” 資訊時,您就可以安全的關閉計算機了。