FreeBSD快速安装配置

来源:互联网 发布:linux 显示中文 编辑:程序博客网 时间:2024/05/17 16:53

   我从2004年就开始接触FreeBSD了,但一直只是把它作为一个能在超低配置的机器上高效运行的服务器来使用的。因为之前的工作与此没有任何关联,所以基本没有深入地探索这个神秘的世界。我现在要开始做些学习研究,它就是一个最好的工具和对象了。在这里我就不想重复那些网络上对它广为流传的赞誉之词了,有兴趣的话可以查到很多关于它的信息。我也曾经多次表示过,我的博文主要就是体验,然后从感性认识升华到理性思考,这样就不会觉得太空洞,而一些深奥的理论也比较容易被接受。

   我们学习一种OS的第一步肯定就是安装了。此前我也想好好整理一下有关FreeBSD安装说明,但是一来FreeBSD官方网站(http://www.freebsd.org)上已经有很详细的手册,二来实际上我很早以前就整理过一个《i386架构FreeBSD安装与配置实例》。虽然那时的版本对于现在来说太旧了,但是安装过程其实大同小异,所以这个文档还是有点价值的,所以我就不再做重复性的工作了。我把它放到了CSDN资源上,有兴趣的话可以这个地址下载:“http://download.csdn.net/source/3106374”。因为这个下载是需要积分的,如果您确实很需要的话,可以跟我私下说明,我专门给您传送。

   如果您亲手安装过FreeBSD,就会觉得安装过程非常简单,只是对有些配置不知所措而已。不用重新编写安装过程的好处就是,我可以把精力放在这些重要配置上面,尽量把这些问题解释清楚,这也是这篇博文的主要目的。

   安装完系统之后第一个面临的问题就是,无法用root用户通过ssh远程登录到FreeBSD主机上进行操作。这个问题跟“/etc/ssh/sshd_config”配置文件有关,具体操作是:在文件中找到“#PermitRootLoginno”一行,改成“PermitRootLogin yes”,运行下面命令之后可以使配置立刻生效。

FreeBSD#/etc/rc.d/sshd reload

   我们现在来看看通用内核有多大,运行以下命令。

FreeBSD#cd /boot

FreeBSD#du -s -k kernel

156642 kernel

   可以看出这个内核大约有156M之大,几乎占据根文件系统的大半空间。因为我们之后会编译缩减之后的内核,这个通用内核主要是一个备份,所以可以对它进行压缩。相关的命令如下:

FreeBSD#gzip kernel/*

FreeBSD#du -s -k kernel

67308  kernel

   我们看到内核很显著地减肥到了67M,效果相当之好啊。这里要说明一下,FreeBSD Release 8.2Boot Loader直接支持gzip压缩的,如果您在其它版本下压缩内核,最好要先做好备份。

   接下来我要说说备份与恢复FreeBSD方面的问题,我使用的工具就是ghost。其实FreeBSD也有自己的备份工具,但是它的工具不是常备的,而ghost基本上是现在大家手头必备的工具之一了。说起ghost这个工具,可能大家更多的是用来备份、恢复Windows系统,但实际上它也能用在FreeBSDLinux系统上,只是一般人都不会想到这样使用而已。

   在使用ghost备份、恢复非Windows系统时,要注意一个问题,ghostFreeBSD使用的ufs或者Linux使用的ext2/ext3文件系统支持不足,这样就会造成恢复时不能变更备份时的文件系统空间大小的问题。也就是说,即使您创建一个不同大小的分区用于恢复系统,恢复之后的文件系统空间大小还是和备份时的一样,否则不是出现越界错误就是有部分空间不能利用。一种最简单的做法就是,您可以直接在一个空的硬盘上恢复ghost镜像,这样ghost就会以备份时的大小作为默认值帮您创建分区。

   我的硬盘创建了258M24748M两个分区用于安装FreeBSD,前者用于根文件系统,后者又划分出交换区、/tmp/var/usr/ports文件系统。然后按照前面描述的办法压缩内核,用ghost压缩备份第一分区,生成的FreeBSD.gho文件只有145M左右,再把/var/usr/ports压缩成约38MFreeBSD.tar.bz2文件。恢复系统时只需要在一个空的硬盘上先用ghost恢复,然后就可以单用户模式启动进入FreeBSD,分配第二分区并按照后面段落介绍的方法创建相应的文件系统。重启之后把FreeBSD.tar.bz2文件传进去,在根目录下运行“tar xjpf ...tar.bz2”解开压缩包就完成安装了。有需要这两个文件的朋友喊我一声,我给您传送过去。

   从上面那段话的描述中可以知道,我只给根文件系统分配了258M的空间,可能您会觉得很疑惑,这样的大小足够我们使用吗?答案当然是肯定的,我们知道FreeBSD在日常运行中,除了/tmp/var/home/usr以外,其它目录是极少写数据的,这些目录只占用了不到240M的空间。而在/usr目录中,也只有/usr/src/usr/local/usr/ports需要另外分配空间,之后我们会给这些文件系统分配空间。这里顺带着说一下交换区的大小,一般说来是您的物理内存的一至二倍,我这里给它分配了256M,在恢复系统时还可以重新调整它的大小。

   首先来谈谈gvinum卷管理程序,就相当于LinuxLVM2,通过它我们可以灵活地调整文件系统的大小。具体做法是先写一个配置文件,然后使用gvinum程序导入配置文件生成相应的卷,最后在这些卷上面创建文件系统。我把我的配置文件(/etc/gv.conf)内容列出如下:

drivegv device /dev/ad0s2

volumeswap

 plex org concat

    sd length 256m drive gv

volumetmp

 plex org concat

    sd length 256m drive gv

volumevar

 plex org concat

    sd length 256m drive gv

volumesrc

 plex org concat

    sd length 512m drive gv

volumelocal

 plex org concat

    sd length 512m drive gv

volumeports

 plex org concat

    sd length 1024m drive gv

   进入单用户模式后,根文件系统处于只读状态,所以先要重新挂载根文件系统,执行下列的命令可以创建相应的卷,然后创建文件系统:

FreeBSD#mount -o rw /dev/ad0s1a /

FreeBSD#gvinum create /etc/gv.conf

FreeBSD#newfs /dev/gvinum/tmp

FreeBSD#newfs /dev/gvinum/var

FreeBSD#newfs /dev/gvinum/src

FreeBSD#newfs /dev/gvinum/local

FreeBSD#newfs /dev/gvinum/ports

   在恢复ghost镜像到另一台机器之后,可能会因为网卡类型的不同使得网卡设备名改变了,要想启用新的网卡也很简单。首先,先输入“ifconfig”命令,我们可以得知新网卡设备的名称,然后修改“/etc/rc.conf”配置文件,找到类似下面的一行:

ifconfig_em0="inet192.168.0.253 netmask255.255.255.0"

   其中,“em0”就是原来的网卡设备名,把这部分用新的网卡设备名替换掉之后重启系统,新的网卡就生效了。很简单吧?

   FreeBSD的快速安装配置就是这样了,下回有可能的话介绍一下rtems交叉编译环境的搭建。
原创粉丝点击