前一阵子下载了FreeBSD5.3 RC1版,本来想马上装的,结果安装时发现FreeBSD只能装在主分区上,而我的主分区都已经被Windows和Linux占用了,没办法只好作罢。最近得到一块4G的小硬盘,于是决定把它作为FreeBSD的领地。 使用第一张光盘启动计算机。不一会儿就进入了FreeBSD的引导菜单,选择第一项进入通常启动方式。之后启动的就是sysinstall的主菜单了。我想弄明白具体的安装过程,所以选择了Custom方式安装。

之后出来的菜单包括下面几个选项:Exit、Options、Partition、Label、Distributions、Media、Commit。首先选择Options,将安装媒体类型选为CDROM,超时时间的默认值是300秒,把它改成30秒免得万一光盘读不出来要等上5分钟。

然后选择Partition进入分区界面。第一次看见FreeBSD的分区工具,跟Linux完全不一样,许多看不懂的东西只能推测了。看了看大概能明白Slice就是分区,硬盘被标记为ad0、ad1等,硬盘上的分区(Slice)被称为ad0s1、ad1s1、ad1s2等。我选择了第二块硬盘ad1,确认是那块4G的硬盘之后才敢动手。本来想直接选择A-Use Entire Disk的,后来想到FreeBSD也需要交换区,所以还是自己分区吧。由于内存为512M,所以大概要为交换区留出500M空间来。参考了一下官方网站的文档,决定还是按照建议的方式进行安装,即/=128M,swap=512M,/var=256M,/usr=剩余。这样我的/usr上还大约剩余3.2G的空间,应该够用了吧。最后分区结果如下:ad1sd1=127M,ad1sd2=511M,ad1sd3=255M,ad1sd4=3217M。

之后是提示选择启动程序,由于我想使用第一块硬盘上Linux的grub来启动,所以这里选择了none。 下一步选择Label。试了一下用A来自动指定,系统居然说我的第一个分区太大而不能作为root分区。于是决定用C键手动创建Label,按照刚才的分区计划指定好各个分区的挂接点。指定结束之后按Q键退出。

感觉FreeBSD中挂接点上挂接的是Label而不是分区,而在一个分区中可以指定多个Label,各个Label的大小也可以分别指定,也就是说,FreeBSD的Label的概念就类似于Linux中的分区的概念,也就是说刚才分区的时候即使把整个硬盘都作为同一个分区也没问题。

下一步的Distribution就是要选择安装软件了,我选择了All。选择的时候系统弹出一个对话框向我推荐安装一个叫做FreeBSD ports collection的东西,据说是可以随时从网上下载软件包并自动安装的东西(很像Debian的apt系列),装就装吧。

下一步是选择安装媒体Media,前面在选项里面选过了,确认一下是CDROM就可以了。

最后Commit,开始安装。

安装的时候会有进度条提示安装到什么地方了,不过消息不是很详细。大约等了半个多小时吧,安装完毕,弹出一个提示框问我要不要再最后确认一次配置情况,选择是之后就又回到了刚才的安装界面,于是直接退出,返回到主菜单(就是选择Custom安装方式的那个菜单)。

在sysinstall的主菜单中选择“Configure”进行系统配置。Packages中可以增加其他的软件包(突然发现里面实际上还有很多没有安装的软件……),由于担心4G硬盘不够用,决定以后再装;Root Password是一定要设置的;Fdisk和Label可以查看分区和Label状况;User Management中增加一个自己常用的帐户(需要先增加一个组然后才能增加帐户,不像Redhat那样增加了帐户之后会自动建立组);Console中可以设置控制台字体等,为了避免由于控制台问题而不能正常显示内容就先免了,以后熟了再说吧;Time Zone是设置时区,选中之后系统问我系统时钟是不是UTC时钟,并建议如果不是UTC而是本地时钟的话一定要选No,所以当然选No了,然后配置好时区;Mouse可以配置控制台鼠标。

Network中可以设置许多网络配置以及网络服务等。首先选择Interface配置网卡(FreeBSD中的网卡叫做fxp0而不是eth0),在列表中选择自己的网卡,提示是否要支持IPv6,选择No,然后提示是否要尝试使用DHCP获取地址,我打算指定,所以选择No,然后配置好主机名、IP地址、域名服务器、网关等信息。配置好之后确定,提示是否要立即启动网卡,回答是,然后从局域网中其他的机器上试着ping了一下这台机器居然马上就通了。然后下面是配置ftp、http等各种网络服务,还是先算了吧。

然后后面的Security配置就忽略了,Startup中去掉了quota的选项,一个人用还用什么quota。下一项TTYs设置,选择之后系统提示说用不着改,不过出于好奇还是选了Yes,结果出来一个没见过的编辑器――好危险,幸好屏幕上方提示用^[退出,按Esc,[,系统菜单弹出来了,选择退出。后面的Options就是安装之前用过的那个了,HTML Docs就是阅读FreeBSD手册,而Load KLD需要软驱才能执行,我没有软驱,所以也不知道是干什么的,不过看名字也许是从软盘读入内核吧。

最后退出Configure菜单。退出之后发现没有什么可以选的东西了,于是选择退出安装,重新启动系统。

重启之后进入Linux的Grub(因为我没有安装FreeBSD的bootloader),按c进入命令行模式,输入root (hd1,0,a),(才发现原来BSD的文件系统要在分区编号后面再加一个参数,大概就是Label了)然后输入kernel /boot/kernel试图读取内核结果失败……后来想起Windows的启动是利用chainloader命令的,所以把命令改成rootnoverify (hd1,0,a); chainloader +1; boot,这下成功启动FreeBSD。

启动之后输入startx进入XWindow,啊,默认的窗口管理器是tvm,对此就不说什么了,不过分辨率居然是1280x960而且显示都偏到一边去了。准备改改显示设置,结果找了半天没找到XF86Config文件。在Login窗口中输入exit退出X,看了看X启动时的信息,发现原来FreeBSD也开始使用XOrg了,看来XFree86换了许可协议莫非大家都没有人用了。找了找还是没有发现配置文件在什么地方,于是试着敲了一下xorgcfg,居然启动了X的配置程序。试着配置了一下,保存时提示是否要保存为/usr/X11R6/lib/X11/xorg.conf,才知道原来不运行xorgcfg的话配置文件是不存在的。随便改了改,再启动startx进入X后发现分辨率还是不对,于是打开/usr/X11R6/lib/X11/xorg.conf手动修改,在最下端的Devices节中添加DefaultDepth 16,并在相应的色深为16的Subsection中添加Modes “1024x768”。重新启动X,这下分辨率正常了。然后在X下运行xvidtune,调整屏幕的位置,调整好之后点击“Show”按钮,然后将显示出的ModeLine值添加到/usr/X11R6/lib/X11/xorg.conf的Monitor节中,重新启动X,这下显示完全正常了。

最后就是重新启动系统进入Linux,在/boot/grub/menu.lst中加入FreeBSD的启动命令。