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当作一个相对固定的嵌入式操作系统来使用,例如,作为防火墙的一部分
更新会对你造成困扰,操作系统的绝大多数新特性对于你来说除了增加烦恼之外,不能带来任何其他东西。
-并且,符合以下的全部条件-
你每天察看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文件系统(光盘)
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文件系统(光盘)
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只是改善运行性能和文件系统可靠性,而不保证重新启动速度的提高)
由于在内核中屏蔽掉了大量的设备,因此,休想以这个内核启动去操作软盘或光盘,或者使用并口,以及SCSI设备(虽然这可能不是你想要的)。此外,这个内核在没有root允许的情况下,是不能在控制台上按Ctrl+Alt+Del启动的。如果你希望其他工作人员在停电(总之,或类似肯定引起系统关机的情况)之前能够帮助你关闭系统,你可能需要其他方法,比如告诉他root口令(假如那个人可以信任),sudo(比较好的方法,只允许他做reboot),或者去掉禁用Ctrl+Alt+Del的设置。此外,经过这样处理的内核只支持Realtek-8139芯片的网卡,因此,如果你的情况和我不同,应该做适当的修改。 如果您对这个配置有什么建议,欢迎给我写信。
如此编译的内核大约是GENERIC内核大小的一半,当然,由于节省了一些内存,它的性能肯定会更好。
FreeBSD操作系统安装手册之配置篇(多图)
发布日期:2005-01-19 作者:小胖 来源:IT168.com
文/小胖
在系统软件复制到硬盘上之后,安装只能说是完成了一半,还需要继续进一步配置系统环境。如果使用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等网络安装方式,这一步应该在选择安装方式之后就需要进行设置,否则无法完成复制系统文件的过程。
![]() |
图1 |
设置网络界面时首先要选择进行设置的网络界面,FreeBSD将列出内核探测出所有的网络界面,包括网卡、串口和并口等网络界面。一般这里只对网卡对应的网络界面进行设置,对应于并口、串口的网络界面常常需要较复杂的设置过程,需要在启动系统之后在额外设置。本例中系统有一个novell的网卡,网络界面名字为ed0。
![]() |
图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 配置文件来启用它们。
![]() |
图3 |
如果选择允许匿名 FTP 存取,那么网络中任何人都可以使用FTP来访问您的机器。在启用匿名访问之前应该考虑网络的安全问题。
![]() |
图4 |
如果使用者对这些选项不是很清楚,可以忽略这个步骤,因为这些设置选项可以在任意时候重新设置,没有必要一定在初始安装的时候将全部设置都设置的无可挑剔。FreeBSD的可伸缩性使得可以在任意时候改动系统设置,不需要重新启动系统就能使得改动生效。
二、配置系统终端
安装程序也将帮助安装者正确设置控制台的一些设置选项,控制台上的主要内容是键盘、显示和鼠标等设备。
1、键盘和显示
可以配置控制台上使用的字体,键盘的映射方式,键盘的重复率,字符模式的屏幕保护和屏幕映射等。
![]() |
图5 |
最常用的选项就是屏幕保护程序了,使用方向键将光标移 动到 Saver 然后按Enter。系统也提供了几种不同字符模式屏幕保护程序,如黑屏、BSD吉祥物等以供选择,还可以定制不同的屏幕组织方式。
2、控制台鼠标设置
FreeBSD也提供在控制台中使用鼠标的能力,能用鼠标器在控制台上进行复制/粘贴工作,并提供了一个伪鼠标接口sysmouse,其他需要使用鼠标的程序,如X,就能配置为使用这个逻辑设备而不必关心真实的鼠标类型,使得设置X Window更为简易。这个配置程序对鼠标进行设置简单且方便。
![]() |
图6 |
鼠标类型Type可以选择鼠标的真实类型,或者简单使用Auto让FreeBSD自动检测,然后选择鼠标端口Port,这个端口设置必须正确,对串口鼠标必须指定具体的串口,其他种类鼠标使用相应的鼠标端口等。然后就使用Enable来激活moused守护进程,如果鼠标指针移 动正常,说明设置正确。那么以后系统都在启动时就自动启动moused守护进程,在控制台的文本状态下进行鼠标操作。
三、其它设置
1、配置时区
配置您机器的时区可以让系统自动校正任何区域时间的变更并且在执行一些跟时区相关的程序时不会出错。参考您所在的地理位置来配置,选择适当的区域,选择您所在的国家,选择您所在的时区。
2、配置 X Server
为了使用图形化用户界面,例如KDE, GNOME,或其它窗口管理程序,您必须 配置 X server 。 为了以非root用户运行 XFree86,您必须安装 x11/wrapper 软件。在FreeBSD 4.7及以上版本是默认安装的,但以前的版本要手工安装到系统中。
![]() |
图7 |
您可以通过许多方法来配置 X server,在认真读了所有的说明后,请使用方向键来选择一种配置方式,并按Enter键确认。
3、选择默认的桌面
有许多窗口管理器可以使用。它们从基本的桌面环境到全部的桌面应用,是一个大型的软件集。一些人可能只希望使用一些占用磁盘空间少,内存低的窗口管理器;而另外一些人则更倾向于使用有便多特性的桌面环境。选择使用那种桌面的最好的方法就是尝试着试用一些不同的桌面环境。这些桌面都可以在安装完成后通过ports收集或包管理器来进行安装。
您可以选择一个流行的桌面配置成为默认的桌面,可以使您在安装完成后立刻启动它。
![]() |
图8 |
安装系统还能配置更多的选项,例如安装X组件之后,安装程序还会提示用户设置X Window图形界面,然而X Window的设置是另一项复杂的任务,
安装系统还需要做的工作包括为设置系统的时区信息,为root用户设置口令,以保证系统的安全性,进行添加用户和组等基本的系统管理等。
4、添加用户/组
至少要在安装过程中添加一个用户,以便于您能不用root 来登陆使用系统。根分区通常比较小,用 root 来运行应用程序可能会快一点。
![]() |
图9 |
添加用户信息如下:
![]() |
图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” 信息时,您就可以安全的关闭计算机了。