哈尔滨海月数据恢复,技术亚洲领先 设为首页加入收藏RSS订阅
中国区:哈尔滨(总部)郑州福建深圳沈阳合肥大连包头淄博上海广州
    南京杭州嘉兴武汉济南青岛新疆太原
亚太区:印度韩国泰国新加坡马来西亚澳大利亚
FreeBSD
FreeBSD-FAQ集锦

  大家看下面的汇总里面如果没有您知道的小技巧,请在后面回复,我会及时汇总到上面的,以方便大家查询,多谢!

  注意这里收集的只是一些常见的问题,如果你要用FreeBSD来提供服务,请到本版置顶的精华收集贴里面找相关帖子,这里不再收录,高手们可以不看了,你们已经过关了,这篇只是为FreeBSD新手们准备的礼物!初学者必读!!!

  1:BSD是什么?(位置:第2楼)

  2:FreeBSD有什么优点?(位置:第3楼)

  3:我现在开始学习使用FreeBSD,我应该从什么地方开始?(位置:第4楼)

  4:可以从什么地方得到FreeBSD的光盘?(位置:第5楼)

  5:我应该怎么安装FreeBSD?(位置:第6楼)

  6:有没有FreeBSD的初级教程?(位置:第7楼)

  7:如何编译FreeBSD内核?(位置:第8楼)

  8:如何在FreeBSD下安装软件?(位置:第9楼)

  9:如何管理系统帐号?(位置:第10楼)

  10:有一个命令foo,我想知道它的详细说明,怎么办?(位置:第11楼)

  11:我为什么不能用root连接我的telnet/ftp?(位置:第12楼)

  12:我为什么不能su成为root?(位置:第13楼)

  13:我的root密码丢失,我应该怎么办?(位置:第14楼)

  14:怎么查看我的系统开了什么端口,运行了什么程序?(位置:第15楼)

  15:我发现我的系统开了一个xx的端口,我应该如何关闭上它?(位置:第16楼)

  16:我想在系统启动的时候自动运行点什么,应该怎么做?(位置:第17楼)

  17:我修改了/boot/loader.conf以后不能正常引导系统了,当机器开始加载/boot/defaults/loader.conf的时候(未加载完)机器停止响应,我应该怎么办?(黑夜编码人提供)(位置:第18楼)

  18:我如何修改我的telnet登录时显示的信息?(黑夜编码人提供)(位置:第19楼)

  19:ports下有没有xxx这个软件?在哪个目录下?(位置:第20楼)

  20:FreeBSD的RELEASE、STABLE、CURRENT之间是什么关系(位置:第21楼)

  21:我想移动一套系统到一块新的硬盘上,该怎么做呢?(位置:第22楼)

  22:为啥我已经是Root了,但是对系统进行修改升级仍然没有权限呢?(位置:第23楼)

  23:我怎样才能知道系统运转是否正常,是否收到攻击呢?(位置:第24楼)

  24:我怎么才能让Netmeeting通过我的FreeBSD防火墙呢?(位置:第25楼)

  25:使用adduser为freebsd添加用户需要注意什么呢?(位置:第26楼)

  26:怎样才能调优我的FreeBSD系统呢?(位置:第27楼)

  27:如何察看已经安装ports的make参数?(位置:第28楼)

  28:为什么我用PQ调整了分区还是装不上FreeBSD?(位置:第29楼)

  29:如何在安装ports时缩短下载时间(位置:第30楼)

  30:如何在旧版本ports基础上强行安装新版本ports?(位置:第31楼)

  31:如何使ports在安装时不检查下载软件的MD5和SHA256(位置:第32楼)

  32:关于ports和packages的其他信息(位置:第33楼) 转自freebsdchina,作者BSDnewbie

  33:如何把man干净地输出到文本中(位置:第34楼)

  34:如何将ports中的软件及其依赖关系打包制作为tbz?(位置:第35楼)from:congli

  35:如何在ssh到远程系统时能显示和输入中文(位置:第36楼)

  36:FB中给一个网卡设置两个IP(位置:第37楼) from: webmasters

  37:Root mount failed: 6(位置:第38楼) from: congli

  1:BSD简史

  要了解 FreeBSD,首先要了解 BSD。本文介绍 BSD 的简要历史,通过了解 BSD 的发展历程,我们可以更好的理解 FreeBSD。

  BSD是"Berkely Software Distribution"的缩写,意思是"伯克利软件发行版"。显然,BSD这个名称并不是我们现在所理解的操作系统,而且其原意也并非简单的操作系统,而是一整套软件发行版的统称。从软件发行版到操作系统的演变是有历史过程的,这一点对FreeBSD很重要。

  BSD的出现要追溯到上个世纪的七十年代,当加州大学伯克利分校的学生Bill Joy在1971年完成了"Berkely Software Distribution"的合并以后(包括Pascal系统和一个编辑器ex),就算是BSD诞生了******个发行版,并且发行了大约三十份免费的系统拷贝。

  BSD的用户社团一直在不断扩大,到了1978年,软件发行版得到了更新和升级,结果产生了第二版的"Berkely Software Distribution",即2BSD,其中包括了增强的Pascal系统,vi和termcap(Unix用户一定会对vi和termcap这两个名词感到非常亲切)。2BSD的系统拷贝也是免费的,并且其***后一个版本2.11BSD至今还在******的各个角落运行着。

  VAX计算机的普及导致了1979年末3BSD的诞生。3BSD是Berkely的******个VAX发行版,同样也是Joy发布的,包含了C Shell和2BSD发行版中的大量附加程序,以及虚拟内存内核和标准32/V(Bell实验室的***后一个Unix版本,运行在VAX上)实用程序。

  到了1980年10月,Joy推出了一个焕然一新的发行版本,称为4BSD,其中包括Pascal编译器、Franz Lisp系统和邮件处理系统。4BSD支持DARPA网络,版权的控制是以大学为单位的,而不是以单台计算机为基础计算。

  1980年,一个命名为CSRG(Computer System Research Group,计算机系统研究小组)的小组被组建起来负责BSD的发行工作,并于1981年6月发行了称之为4.1BSD的新版本。请注意,不是5BSD。由于AT&T觉得5BSD会使用户将它和AT&T Unix System V相混淆,Berkely同意改变BSD将来版本的命名规则,将版本号仅保留在4BSD上,以后只增加4后面的小版本号。

  4.2BSD于1983年8月正式发布,在18个月内就签发了1000多份站点许可证,是非常具有知名度的版本。到了1986年6月,4.3BSD发布,而到了1988年,CSRG发布了4.3BSD-Tahoe,这是******个把BSD内核分解为依赖于机器和独立于机器的两部分的版本,这是非常有价值的,它使BSD得以移植到众多不同的体系结构中。

  由于BSD使用了AT&T Unix的部分源代码,当AT&T源代码许可证费用不断增加的时候,一些希望能够使用BSD代码为PC生产基于TCP/IP联网产品的厂商要求Berkely将AT&T代码从BSD发行版中分离出来,并给他们签发单独的许可证条款,而不需要AT&T的源代码许可证。因此,到了1989年6月,一个完全没有AT&T Unix代码的BSD版本诞生了,称之为"Networking Release 1"。这是******套由Berkely发布的自由可再发行(freely-redistributable)的代码,,它允许被授权的用户以源代码或者二进制的形式发布修改过的或为修改过的代码,并且可以不向Berkely申报版税,******要求是在源代码文件中原封不动的保留Berkely的版权声明,并且在含有以上代码的其他产品文档中声明其产品包括来自于加州大学和其他贡献者的代码。这就是******的BSD许可证的起源。

  1990年初,CSRG发行了4.3BSD-Reno,这是一个过渡版本,此后CSRG几乎重写了整个BSD发行版本的所有代码,除了6个内核程序。正是这六个程序导致了日后BSDI公司与USL(Unix系统实验室)的一场官司。重写的新版本被命名为Networking Release 2,于1991年6月推出,它的许可证条款与******个版本完全相同,都允许自由可再发行。在这个版本发布后的6个月内,Bill Jolitz重写了那6个漏掉的内核程序,并很快发布了完整的可运行在386PC体系上的系统,它称之为386/BSD。

  386/BSD版本发布后的几个月内,一群386/BSD用户组成了一个小组,他们开始维护和增强后续系统,这就是NetBSD。NetBSD侧重于支持尽可能多的平台,并继续按照CSRG所建立的研究风格进行开发工作。在NetBSD小组正式成立后几个月,FreeBSD小组成立了,其宗旨是仅支持PC体系并尽可能多的发行他们的系统(现在,作为一个相对独立的系统,FreeBSD已经能够支持Alpha和SPARC体系)。在90年代中期,从NetBSD小组中分离出OpenBSD小组,他们的目标是提高系统的安全性,并借助了许多FreeBSD发行版本的安装特性。至此,目前***主要的三大BSD小组完全成型。

  在此以后,CSRG还继续发布了4.4BSD-Lite、4.4BSD-Encumbered以及4.4BSD-Lite, Release 2三个发行版本,并于1995年6月以后被解散,完成了对BSD发行的领导工作。

  (注:本文数据参考了Marshall Kirk McKusick的文章"Twenty Years of Berkeley Unix --From AT&T-Owned to Freely Redistributable",McKusick是BSD发行的核心人物之一,同时也是BSD Daemon图标的版权所有者)

  FreeBSD的起源

  http://www.douzhe.com/mirrors/cn ... s/chapter1.1.2.html

  FreeBSD的发展历史

  http://study.99net.net/study/system/freebsd/1084937281.html

  2:FreeBSD有什么优点?

  官方文章:http://www.freebsd.org/features.html

  FreeBSD实实在在的选择 [阅读次数: 147次]

  作者:Georges Tarbouriech

  中文翻译:Zer4tul

  作者简介:

  Georges是Unix的老用户了。他很喜欢这个伟大系统的这个免费版本。

  摘要

  是的,你在阅读的是《LinuxFocus》!但是还存在其他的自由Unix,并且它们十分有趣,也起着重要的作用。 本文是对另一个自由Unix:FreeBSD 的概述。

  Why FreeBSD ?

  当谈到免费的Unix时,人们通常认为“就是Linux”。 当然,Linux应用十分广泛,而且(几乎)每个人都听说过它。 新用户的数量一直在增长,媒体(不管是不是“专业”的)对它进行了很多宣传。 一个主要的原因是Linux专门运行在使用***广泛的Intel兼容计算机上。当然,它还可以运行在许多其它处理器上,因为Unix的一个理念就是“我们不在意是什么处理器”。然而,如果Linux仅仅为一个特殊的处理器进行开发,它可能不会获得如此成功,或者,至少要艰难一些。

  但免费的Unix并不是只有Linux:BSD家族也是。它有三个主要的分支:FreeBSD,NetBSD和OpenBSD。BSD是“Berkeley Software Distribution”的缩写。如果你想了解更多的关于Unix历史的信息,你可以参考article 176。(经过考虑,那篇文章没有讨论关于BSD和System V之间的区别:那完全可以写一本书了。)

  每个分支都有自己的特色:

  NetBSD几乎可以在任何一种平台上运行,包括很多老计算机:姑且认为有30到40种不同的平台。NetBSD证明了我们前面提到的:Unix不在乎处理器。如果你在家里或者在工作中有一台相当老的“垃圾”,这是你很好的选择。我在Amiga和Intel机器上使用NetBSD很多年,并且我感觉不错。

  OpenBSD是***安全的Unix之一。它是一个很理想的服务器平台,当然,它也可以在许多处理器上运行。它可能是Internet上***多的被用作服务器的系统之一。但它作为家用用途却不是很理想,不过,每个人根据自己喜好来做选择……

  FreeBSD是上面两种BSD的“综合体”。它专注于Intel和Alpha处理器,并且从OpenBSD那里“继承”了一部分安全体系。跟Linux一样,它运行于Intel处理器使它成为应用最广泛的BSD之一。它也是家庭用户的一个很好的选择。但这并不是说你不能在工作中使用它!

  这里还有一些关于FreeBSD的事情:他们(译注:指FreeBSD Core Team成员)与Apple公司“共享”Mac OS X的自由软件部分。并且,我很喜欢OS X……顺便说说,不要困惑:虽然OS X是基于BSD,但是它的内核跟FreeBSD的却没有任何关系。它使用的是已经在NeXTstep中使用的Mach内核,OS X的“父亲”:很明显,当NeXTstep于80年代末问世以来,这个内核发展了不少。

  现在,我们见到了……让我们进一步深入吧。

  获得并安装FreeBSD

  和大多数自由软件一样,FreeBSD可以从FreeBSD的web站点上下载。很明显,这需要很高的连接速度。不用担心:你可以在******上的任何地方找到FreeBSD的CD。

  目前(在写本文的时候)的******发行版是4.6。本文讨论的是i386发行版。

  从CD-ROM(或其它介质)上安装FreeBSD十分简单……虽然它并没有图形界面来完成安装!你将会使用伪图形界面。只需要按照提示做,FreeBSD就会被安装到你的硬盘上。和通常的情况一样,你需要将你的硬盘进行分区,配置一些东西,比如网络连接或者甚至是内核(可选)。下面,你将见到sysinstall,就像它的名字暗示的一样,它是一个很好的安装工具。你可以选择安装全部packages或者仅仅安装一部分。你可以在任何时候用任何方式添加它们。

  它的包管理方式也很简单。你可以象在Solaris下一样使用pkg命令,或者你可以选择使用ports。简而言之,pkg命令就像Linux的rpm或者deb,而ports是一些需要通过make和make install进行编译的文件。换句话说:FreeBSD的操作跟Linux的没有什么大的不同或者有困难的地方。

  让我们安装一个Linux兼容包——你应该安装它:它允许你在FreeBSD上编译和运行Linux的应用程序。

  所有事情都是很简单的,并且为防万一,FreeBSD准备了一个很好的手册,它详细解释了每一个步骤。并且它有很多语言的版本(译注:在/usr/share/doc目录下可以看见以各个语言命名的目录,不同语言的手册就在相应的目录中)。

  因此,没有必要在这上面花过多时间。

  配置FreeBSD

  再强调一次,我们的这篇文章不可能面面俱到。***重要的是知道核心文件在哪里。跟往常一样,你可以在/etc目录找到它们。它们被命名为rc.something并且可以管理很多不同的部分:常规配置、防火墙、网络、sysctl等。

  rc.conf文件十分重要,正如它的名字一样,可以在这里调整系统配置。在这个文件中你可以告诉系统是否打开某些守护程序(sshd、sendmail等),防火墙类型,你是否想******内核级安全,你是否想激活IPv6等。在这里有很多选项,令人惊讶的是,你可以在被称作/etc/defaults/rc.conf的默认文件中找到所有它们。不要误会,这个文件包括了默认设置,而不是范例。也就是说,/etc/rc.conf/etc/rc.conf是不考虑这些默认设定的。换句话说就是,不要将/etc/defaults/rc.conf复制到/etc.rc.conf,也不要尝试修改/etc/defaults/rc.conf,应该在/etc/rc.conf中作更改。

  在sysinstall所选择的项目将会被自动加入到/etc/rc.conf中(网卡配置,主机名,安全等级等)。

  请格外注意:FreeBSD默认没有在/etc/inetd.conf中打开任何服务。这就是说,在******次启动系统的时候,由inetd管理的守护程序(Daemon)默认应该是关闭的。以我的愚见,每个Unix系统都应该这样。无论如何,这是一个好主意!

  另外的rc文件允许你配置防火墙或者sysctl,以及其他的东西。这理所当然的将我们引导到了调整FreeBSD的话题上。

  调整FreeBSD

  调整系统******的工具之一是sysctl(在Linux下也一样)。你可以通过命令行来定义某些特殊值,或者(同时也建议你)写一个sysctl.conf文件,除非你使用命令行仅仅是来进行测试。

  比如,如果你的机器被用作网关,通过命令sysctl -w net.inet.ip.forwarding=1可以使sysctl允许IP转发。如果想获得更高的安全性,你可以使用sysctl -w net.inet.ip.check_interface=1命令核对这些包是否到达目标IP所对应的网络界面。你可以通过使用sysctl来控制你的系统的大部分行为:请参见man page。明显地,如果你希望将这些写入sysctl.conf文件,只需要将这些变量加入进去就可以了,而不必加入sysctl命令本身。sysctl.conf文件使用variable = value格式。上面的例子可写为: net.inet.ip.forwarding=1

  net.inet.ip.check_interface=1

  当然,你的sysctl.conf文件支持超过两行的文件,因此它几乎可以在内核级控制控制任何东西。

  在本文的开头,我们讨论了安全级。有从-1到3四个不同的等级,3代表******安全级。建议你在选择之前了解每个等级。使用除了-1或者0之外的其它等级有可能导致系统无法象你希望的那样运行。******个缺点就是level 1将阻止你正常使用X服务器。你也不能加载或者卸载内核模块。

  无论如何,高安全等级对于需要高安全性的特殊服务器来说是很有用的。作为一个家庭用户,你可以保持level 0,当然,这由你自己决定……

  chflags命令也与安全等级有关。要想了解这个命令,请阅读man page:它是一个很有用的命令。

  如果继续这个话题将把本文写成一个“安全配置FreeBSD”的文章,因此,让我们进入下一个章节。

  

  升级FreeBSD

  让我们假设你刚购买了FreeBSD 4.5CD。几天以后,FreeBSD 4.6就发布了。倒霉!

  不必烦恼:FreeBSD有一个基于CVS的升级系统。你可以选择使用匿名CVS或者CVSup。前者比较容易使用,而后者更有效率。通过这些工具,你可以获得新的原码树(Source Tree),并且同步(Synchronize)它。

  下面,你必须使用make buildworld命令编译所有新代码。如何进行编译在FreeBSD Handbook里已经十分详细的进行了阐述(译注:FreeBSD Handbook 1.73版中关于升级系统的部分Zer4tul已经完成了翻译工作,正在进行校对)。***重要的一点是它使你拥有一个紧跟升级步伐的崭新的系统。

  但是,并不仅仅如此。跟通常情况一样,自由软件(Free Software)的弱点很快就会被发现,并且很快被修复。跟其它商业操作系统一个漏洞可以很久不被修复不同,自由软件社区的人们会以***快速度为你提供补丁。很明显,你的工作就是检查系统中有什么地方需要补丁。FreeBSD的Web站点上有一个安全公告区(Security Section)提供各发行版的安全公告。你可以从那里下载.asc文件(文本文件)来获得你所需要知道的信息:关于系统问题的系统问题的描述和解决的方法。其它Web站点为你提供的也是这些信息。比如linuxsecurity,CERT等。

  这并不是说你必须升级你的系统。

  更新FreeBSD

  你并不想花过多的时间在了解系统漏洞上,是么?和其它免费Unix系统一样,FreeBSD为你提供了补丁。你可以直接获取这些补丁并且使用它们。对于Linux用户来说,******的不同就是你并非抓取一个修改过的包,而是一个补丁原码。这就是说你必须在打补丁之后重新编译内核,当然,这就意味着你的机器已经装上补丁了。在Linux下也可以这样,但是人们通常是下载修正过后的包,例如rpm包,至少对于应用程序是这样,有时也下载被打过补丁的内核rpm包。

  Linux和FreeBSD******的不同是内核。FreeBSD是基于BSD 4.4,并且没有不像Linux一样有不同的内核版本。这就是说,它的内核都是稳定版本,当然,它也受益于可加载模块。缺点就是如果你想让你的系统尽可能安全的话,你必须比在Linux下更频繁的编译内核。

  无论如何,相比Linux的体系,我更喜欢这样的方式,但这仅仅是我个人的意见。我并不认为三个不同的内核版本同时进行可以带来很好的稳定性。应用程序必须从一个版本的内核“移植”到另外一个版本,特别是在安全方面。另外一个例子就是系统包:三个不同的内核版本,三个不同的软件组合!当然还有其它问题。

  我极为尊敬那些参与这个伟大工程的人们,但是这是否就是正确的方法呢?改进通常是必要的,但是这是否代表我们随时随刻都必须更改所有东西呢?不必担心!

  很明显,你也可以编译一个更符合你要求的内核……并且在那时,就跟在Linux下一样。完成这项工作的方法在FreeBSD Handbook中已经很详细的阐明了,因此,让我们转入其它话题。

  应用程序

  正如我们所说过的,大多数自由软件(虽然不是全部)都可以在FreeBSD下运行。你并不需要上面提到的那些Ports和包(Packages)。无论是什么类型的软件,你都可以在FreeBSD下将它们编译成可执行格式。

  对于喜欢使用桌面环境的人来说,可以使用KDE和Gnome……并且它们被包括进了发行版。还包括很多窗口管理器(Window Magager)。GNUstep在FreeBSD下也可以很好的运行。要想编译它,你需要一个比发行版自带的更新的gcc版本:不必担心!直接抓取一个相应的文件(Archive)并且编译它。很明显,GNUstep应用程序,象GNUMail.app、Gorm.app或者ProjectBuilder.app也可以很好的运行。

  真的,所有你可以在Linux上运行的软件都可以在FreeBSD上使用……并且还有更多其它软件! Really, all the software you run under Linux is available for FreeBSD... and there are many others!

  比如,FreeBSD有很多关于安全工具。监控工具、管理工具等,这些都是发行版的一部分。

  防火墙、***************、端口扫描器、IDS等也可以使用。例如,你可以选择使用IPsec或者ipfw。你可以使用nessus、nmap、portsentry等。再强调一次,它们中的大部分是发行版的一部分,并且你可以自己抓取、编译并使用******的版本。

  我们已经讨论了关于桌面环境和窗口管理器,但是我们对于它们所依赖的东西——X Window System(译注:很多人把X Window叫做X Windows)——还只字未提。目前默认是XFree86 4.x。再FreeBSD 4.5之前,XFree86 3.x是默认设置。这就是说,你在发行版中有XFree86 4.x,但是安装进程通常选择安装XFree86 3.x。现在XFree86 4.x是默认设置,但是如果你愿意,你还是可以使用3.x版。

  硬件

  因为我们讨论的是基于i386的发行版,那么我们就来说说大多数可以在FreeBSD下工作的硬件,虽然它可能有一些古老了。例如一块3Com combo网卡在你使用ifconfig命令指定了媒体类型后就可以很好的工作。如果你使用的是BNC连接,只需要在/etc/rc.conf的ifconfig行***后加入media 10base2/BNC就可以了。

  某些老显卡也是这样:使用XFree86 4.x可以解决大多数问题。特别是对于老的ATI显卡来说。

  总之,你可以参考FreeBSD Web站点的Hardware列表。

  安全

  我们已经提到了很多安全工具,比如防火墙、端口扫描器等。FreeBSD自带了许多安全工具。OpenSSH、OpenSSL、Kerberos、MD5等都是发行版的一部分。跟通常情况一样,如果没有这些工具,你根本无法使用FreeBSD,当然,还得再重复一次,你必须检查万一可能有的漏洞。

  一个新近的例子显示出了小心谨慎的重要性。假设你注意到了OpenSSH中被发现的漏洞。正确的做法是到它的主页上去下载修正版本(Corrected Version)。

  是的,但是这还不够!一定要控制对这个包(Package)的校对。

  这个关于OpenSSH的例子并非是杜撰出来的:几周以前,有人用一个被修改的档案替换了原来的。OpenSSH的人员很快作出了反应。但是,在这短短的一段时间内下载并且没有进行档案校对的用户就安装上了一个“无效”的版本。因此,一定要进行校对……并且需要控制校对过程。

  即使这已经超出了本文的范围,但是我们仍然坚持安全是******位的。

  网络通信

  FreeBSD的网络功能十分先进。IPv6被管理得非常好。现在,网络通信功能和系统融为一体。如果你使用的ADSL或者Cable Modem,你可以很容易的将它们配置好。

  许多ISP现在都使用PPPoE。FreeBSD通过一种很简单的方式支持它:ppp.conf中的几行就可以完成这个任务。如果是连接到PPPoA的话,现在FreeBSD只支持Alcatel modem。这种情况在不久就会改变(或许现在就已经支持其它某些Modem了)。

  相关文档

  FreeBSD Handbook并不是仅有的可用文档。你还可以从FreeBSD Web站点找到FAQ、安装指南(Install Guide)等。另外一些比较重要的相关文档可以在http://www.freebsd-howto.com找到。

  接下来是什么?

  这仅仅是对FreeBSD的一个很简短的介绍。这个系统跟其它免费Unix一样,也是非常有趣的。它有许多特点,很值得一试。很不幸,本文不能对它进行一个完整的概述,很多重要的特点没有提到。

  使用FreeBSD比使用某些类似Windows的Linux发行版需要更多的Unix知识,但是其实它也很容易使用。

  当然,有的没有任何Unix知识的人将遇到一些困难,因为他必须经常在更新系统后重新编译他的系统。虽然它将花费一些时间,但是,这是一个学习的好方法。今天的人们似乎忘记了,在***初的时候,Unix是开发者为开发者开发的,而不是为家庭用户或者普通用户。

  他们很幸运,因为无论自由的还是商业的Unix改变了它们***初的方式。我们应该感谢哪些为此做出努力的开发者们。在80年代,现在的Linux用户中的大多数将避开Unix,仅仅因为它那复杂的安装进程。发行版被储存在磁带上,并且安装阶段可能会持续一整天,而配置工作还需要一天来完成。我们并不是说的配置应用程序!而今天,你可以在甚至不了解Unix的情况下使用它,比如Mac OS X。在90年代初已经被OS X的“父亲”,也就是NeXTstep变成事实。

  这看上去好像跑题了,然而NeXTstep引领了免费Unix和商业Unix的潮流……以及一些其它系统!将Unix带给家庭用户将是一个挑战,并且它已经展开了。祝贺所有参与这个挑战的人,无论他们工作是为了钱还是免费的。那些免费工作的人更应该被特别的提出并且给予更多的感谢

  我十分看好FreeBSD和Apple的“共享”。两者都从对方那里通过正确的途径得到好处。商业软件通常利用自由软件……而不声张。Apple是这样,SGI也是。还有其它一些也一样……但是为了某些隐蔽的目的。无论如何,我还是认为有足够的空间提供给所有人……当然,想独自占有所有空间并且对Unix不作出任何贡献的除外!

  关于Linux的炒作淹没了其它免费Unix:迄今为止,还是如此之好。这也有它好的一面……这就是我使用FreeBSD的主要原因。当然,我还是在使用Linux(还有其它一些系统):我喜欢不同的感觉!

  如果你打算给FreeBSD一个机会,本文将会变得更有意义。自己去体验它,你将会发现许多本文没有提到的东西。

  我说过:we are living in a great ti!

  3:我现在开始学习使用FreeBSD,我应该从什么地方开始?

  Resources for Newbies

  http://www.freebsd.org/projects/newbies.html

  4:可以从什么地方得到FreeBSD的光盘?

  ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/

  5:我应该怎么安装FreeBSD?

  http://www.freebsd.org/doc/en_US ... ndbook/install.html (英文)

  http://www.freebsd.org.cn/snap/d ... ndbook/install.html (中文)

  6:有没有FreeBSD的初级教程?

  ***权威******的是FreeBSD官方提供的Handbook

  http://www.freebsd.org/doc/en_US ... handbook/index.html (英文)

  http://www.freebsd.org.cn/snap/doc/zh_CN.GB2312/books/handbook/ (中文)

  另外王波的使用大全,以及技术内幕也是不错的书籍。

  7:如何编译FreeBSD内核?

  http://www.freebsd.org/doc/en_US ... k/kernelconfig.html (英文)

  http://www.freebsd.org.cn/snap/d ... k/kernelconfig.html (中文)

  8:如何在FreeBSD下安装软件?

  http://www.freebsd.org/doc/en_US ... handbook/ports.html (英文)

  http://www.freebsd.org.cn/snap/d ... handbook/ports.html (中文)

  9:如何管理系统帐号?

  http://www.freebsd.org/doc/en_US ... handbook/users.html (英文)

  http://www.freebsd.org.cn/snap/d ... handbook/users.html (中文)

  10:有一个命令foo,我想知道它的详细说明,怎么办?

  用'man'命令,运行'man foo',另外,你也可以去查 http://www.freebsd.org/cgi/man.cgi

  11:我为什么不能用root连接我的telnet/ftp?

  用root来连接telnet/ftp是一个再糟糕不过的想法,非常不安全。

  FreeBSD默认禁止了这种做法,你可以用其他用户telnet到系统上以后在su成为root。

  另外,强烈建议使用更安全的ssh/sftp来代替telnet/ftp。

  12:我为什么不能su成为root?

  只有wheel组的用户才能su成为root。

  13:我的root密码丢失,我应该怎么办?

  重新启动FreeBSD,当出现倒记时的时候按任意键(除了Enter),然后输入'boot -s',进入系统后先运行`#/sbin/mount -a`,现在你可以用`passwd`来修改root密码了。

  14:怎么查看我的系统开了什么端口,运行了什么程序?

  netstat 和 ps 会帮助你。

  15:我发现我的系统开了一个xx的端口,我应该如何关闭上它?

  安装lsof,然后用'lsof -in'查看是哪个程序打开了这个端口,然后关闭对应的进程(ps & kill)。

  16:我想在系统启动的时候自动运行点什么,应该怎么做?

  在/etc/rc.local里放上你要放的东西吧,没有看到这个文件就自己建立它。

  另外你可以可以把你的命令保存为以.sh结尾的文件,然后把它放在/usr/local/etc/rc.d/中,不要忘了让它可执行。

  17:我修改了/boot/loader.conf以后不能正常引导系统了,当机器开始加载/boot/defaults/loader.conf的时候(未加载完)机器停止响应,我应该怎么办?(黑夜编码人提供)

  当机器启动时,出现 "-" 提示的时候按任意键(回车除外)进入"boot :"提示符,输入: boot kernel 此时机器开始启动。

  18:我如何修改我的telnet登录时显示的信息?(黑夜编码人提供)

  # vi /etc/gettytab

  然后编辑:

  default:

  :cb:ce:ck:lc:fd#1000:im=Welcome to windows 2000 servern:sp#1200:

  :if=/etc/issue:

  保存退出。

  试试重新telnet你的FreeBSD,将显示:

  Welcome to windows 2000 server

  login:

  19:ports下有没有xxx这个软件?在哪个目录下?

  cd /usr/ports

  make search key=xxx | grep ^Path:

  如果想按照软件的名字搜索

  make search name=xxx

  千万注意name和key之后不要有空格

  20:FreeBSD的RELEASE、STABLE、CURRENT之间是什么关系

  FreeBSD有两个主要的分支一个是STABLE分支,一个是CURRENT分支

  STABLE分支是经过长时间测试的(一般是一年到两年),修正了主要的问题的系统分支,这个分支上通常不会有严重的系统级错误,也不会对系统的主要结构进行修改。但是不代表STABLE分支是一成不变的,STABLE分支常常会加入很多外围的更新,比如从4.4到4.8,FreeBSD已经经历了巨大的改变,比如使用Softupdate,对USB全系列设备的支持升级,Firewire设备的支持,而且之中还对stdin/stdout库进行了一次升级。这些更新都是在CURRENT分支里面进行了长时间测试之后,进行评估不会对系统安全造成影响的情况下加入STABLE分支的。而CURRENT分支实际上可以成为FreeBSDng,这里将会有大量的新技术和新代码,但是这些代码很多处于试验性质,无法保证稳定性和效率,只是给开发人员用来测试的。而RELEASE是FreeBSD的发行版本,每当STABLE和CURRENT开发到了一个阶段,一批目标达成以后将会发行一个RELEASE版本,在5之前FreeBSD只在STABLE分支上发行RELEASE版本,但以后可能会更多的发行CURRENT版本了

  21:我想移动一套系统到一块新的硬盘上,该怎么做呢?

  http://bbs.chinaunix.net/viewthr ... &extra=page%3D1

  22:为啥我已经是Root了,但是对系统进行修改升级仍然没有权限呢?

  securelevel

  FreeBSD kernel 有個觀念叫 securelevel。當還有人在爭論這是不是夠完美時,這個

  機制已經夠防止大部份的 "script kiddiez"。Securelevel 是指你的 kernel 在執行時

  的安全等級。每一個等級具有不同的保護和檢查機制。這些是 init( 的 man page:

  The kernel runs with four different levels of security. Any superuser

  process can raise the security level, but only init can lower it. The

  security levels are:

  Kernel 可以以四種不同的安全等級來執行。任何 superuser process 可以提高安全

  等級, 但是只有 init 可以降低它。這四種等級分別是:

  -1 Permanently insecure mode - always run the system in level 0 mode.

  永遠不安全模式 - 切換到 level 0 吧!

  0 Insecure mode - immutable and append-only flags may be turned off.

  All devices may be read or written subject to their permissions.

  不安全模式 - "不可更動"和"只能附加"這兩個旗標(flag)可以被改變。所有的

  devices 可以照著它們的讀寫權限被讀寫。

  1 Secure mode - the system immutable and system append-only flags may

  not be turned off; disks for mounted filesystems, /dev/mem, and

  /dev/kmem may not be opened for writing.

  安全模式 - "不可更動"和"只能附加" 的旗標不能被取消; mount 上來的檔案系

  統, /dev/mem, 和 /dev/kmem 不能寫入。

  2 Highly secure mode - same as secure mode, plus disks may not be

  opened for writing (except by mount(2)) whether mounted or not.

  his level precludes tampering with filesystems by unmounting them,

  but also inhibits running newfs( while the system is multi-user.

  高安全模式 - 和安全模式一樣, 又多加了不管硬碟有沒有被 mount 起來,

  除了 mount(2) 之外都不能寫入。它防止一個檔案系統在 umount 的時候被

  搞亂。而且在這個等級也禁止在 multi-user 時執行 newfs(。

  如果安全等級***初是 -1, 那麼 init 就會保持原狀。否則在 single user mode 時,

  init 會把安全等級調到 0, 而在 multiuser mode 時會以 1 來跑。如果你希望在

  multiuser 模式是以等級 2 在跑, 你可以先進入 single user mode, 編輯 /etc/rc,

  使用 sysctl 來更動。

  若是你的系統只拿來跑 web server 之類的, 你可以放心的將 securelevel調高到2。

  但若是你要跑 X server, 把你的 securelevel 調至 1 或更高會導致一些問題。因為

  X server 必須要寫入 /dev/mem 和 /dev/kmem, 而 securelevel 1 不允許你這麼做。

  有一個解決的方法是, 在啟動 X server 後再調高 securelevel。但我的意見是, 如果

  你跑 X server 的話, 你已經有了其它的安全問題須要考量, 而不止是 securelevel。

  以下這個指令會顯示出你目前的 securelevel 設定值。

  # sysctl kern.securelevel

  如果要提高你的 securelevel:

  # sysctl -w kern.securelevel=X

  X 可以是 0, 1 或 2。

  又在 securelevel 是 1 的話, 你在 "make world" 時也會有些問題。因為 "make

  install" 時會在 kernel 上加上 immutable flag:

  # ls -lo /kernel

  -r-xr-xr-x 1 root wheel schg 1061679 Jun 30 01:27 /kernel

  "schg" flag 會防止你安裝新的 kernel:

  nfr# id

  uid=0(root) gid=0(wheel) groups=0(wheel), 2(kmem)

  nfr# sysctl kern.securelevel

  kern.securelevel: 2

  nfr# rm -rf /kernel

  rm: /kernel: Operation not permitted

  nfr# mv /kernel /tmp/

  mv: rename /kernel to /tmp//kernel: Operation not permitted

  如果你在 securelevel 1 或 2, 那麼 schg flag 是不能被改變的。

  # chflags noschg /kernel

  chflags: /kernel: Operation not permitted

  值得留意的是, /boot.config 可以改變你開機時的系統設定,要預防有心人篡改

  你應該這麼做:

  # touch /boot.config

  # chflags schg /boot.config

  你可以看看系統預設還有那些執行檔是有 schg flag 的。

  # ls -lo /sbin | grep schg

  -r-x------ 1 bin bin schg 204800 Jul 19 20:38 init

  # ls -lo /bin | grep schg

  -r-sr-xr-x 1 root bin schg 192512 Jul 19 20:36 rcp

  再回過頭來談談鎖定系統這件事吧! 既然剛剛談到了 immutable flags, 何不試著把整

  個 /sbin 和 /bin 都設成 schg flag 呢 !? 這會給想 crack你系統的人一點小挫折。

  (假設你的系統也正以適當的 securelevel 咦髦?

  # chflags schg /bin/*

  # chflags schg /sbin/*

  不過 /sbin 可能被改成別的名字,再重新創造一份新的 /sbin ,所以改變 /sbin 與

  /bin 的 schg flag 是很合理的想法,我們可以依照以下的方式改變 /sbin 和 /bin

  的 schg flag:

  # chflags schg /bin/*

  # chflags schg /sbin/*

  這些 schg flag 的檔案會讓你在 "make world" 時有問題。

  ("make installworld" 也是)

  無論如何 ,******是以 single user 模式來 "make world"。有關 "makr world" 的相

  資訊, 還有為什麼要這麼做, 到下面這個網頁來看看:

  http://www.nothing-going-on.demo ... rld/make-world.html

  現在你已經適當的鎖定你的系統, 也以只跑必要的的 service, 而檔案系統也適當的

  mount 上來, 且也以適合的 kernel securelevel 咦髦小?

  與以上所述的相關 man pages 有: init(, chflags(1), sysctl(。

  23:我怎样才能知道系统运转是否正常,是否受到攻击呢?

  由于FreeBSD是一个多用户系统,那么就需要管理员进行日常维护,特别是用做网络

  服务器的系统,一旦因为缺乏维护而造成停机故障,就会造成很大损失。即使对于单用

  户的FreeBSD系统,同样也要执行这些不可缺乏的维护任务,只是由于系统归个人使用,

  那么对维护的要求就不必那么高,维护任务就轻松一些。

  系统日志

  系统的日志记录提供了对系统活动的详细审计,这些日志用于评估、审查系统的运

  行环境和各种操作。对于一般情况,日志记录包括记录用户登录时间、登录地点、进行

  什么操作等内容,如果使用得当,日志记录能向系统管理员提供有关危害安全的侵害或

  入侵试图等非常有用的信息。

  BSD提供了详细的各种日志记录,以及有关日志的大量工具和实用程序。这些审计记

  录通常由程序自动产生,是缺省设置的一部分,能够帮助Unix管理员来寻找系统中存在

  的问题,对系统维护十分有用。还有另一些日志记录,需要管理员进行设置才能生效。

  大部分日志记录文件被保存在/var/log目录中,在这个目录中除了保存系统生成日志之

  外,还包括一些应用软件的日志文件。当然/var目录下的其他子目录中也会记录下一些

  其他种类的日志记录文件,这依赖于具体的应用程序的设置。

  $ ls /var/log

  adduser maillog.5.gz sendmail.st.1

  dmesg.today maillog.6.gz sendmail.st.10

  dmesg.yesterday maillog.7.gz sendmail.st.2

  httpd-access.log messages sendmail.st.3

  httpd-error.log messages.0.gz sendmail.st.4

  kerberos.log messages.1.gz sendmail.st.5

  lastlog messages.2.gz sendmail.st.6

  lpd-errs messages.3.gz sendmail.st.7

  maillog messages.4.gz sendmail.st.8

  maillog.0.gz messages.5.gz sendmail.st.9

  maillog.1.gz news setuid.today

  maillog.2.gz ppp.log setuid.yesterday

  maillog.3.gz sendmail.st userlog

  maillog.4.gz sendmail.st.0 wtmp

  系统登录日志

  系统会保存每个用户的登录记录,这些信息包括这个用户的名字、登录起始结束时

  间以及从何处登录入系统的等等。它们被保存到/var/log/lastlog、/var/log/wtmp和/

  var/run/utmp文件中,这三个文件以二进制格式保存了这些用户的登录数据。

  其中/var/run/utmp文件中保存的是当前系统用户的登录记录,因此这个文件会随着

  用户进入和离开系统而不断变化,而它也不会为用户保留很长的记录,只保留当时联机

  的用户记录。系统中需要查询当前用户状态的程序,如 who、w等就需要访问这个文件。

  utmp可能不包括所有******的信息,某些突发错误会终止用户登录会话,当没有及时更新

  utmp记录,因此utmp的记录不是百分之百的可以信赖的。

  而/var/log/wtmp保存了所有的登录、退出信息,以及系统的启动、停机记录,因此

  随着系统正常运行时间的增加,它的大小也会越来越大,增加的速度依赖于系统用户登

  录次数。因此可以利用这个日志用来查看用户的登录记录,last命令就通过访问这个文

  件来获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端

  tty或时间显示相应的记录。ac命令同样也使用wtmp中的数据产生报告,但它的显示方

  式不同。它可以根据用户(ac -p),或按日期(ap -d)显示信息,这样管理员就能获

  得一些非常有用的反常信息,如一个平时不太活跃的用户突然登录并连接很长时间,就

  有理由怀疑这个帐户被窃取了。

  注意:X Window由于会同时打开多个终端窗口,因此会使得用户登录连接时间迅速

  增加。

  lastlog文件保存的是每个用户的***后一次登录信息,包括登录时间和地点,这个文

  件一般只有login程序使用,通过用户的UID,来在lastlog文件中查找相应记录,然后报

  告其***后一次登录时间和终端tty。然后, login程序就使用新的记录更新这个文件。

  这三个文件是使用二进制格式保存的,因此不能直接查看其中的内容,而需要使用

  相关命令。当然也可以通过程序来访问这三个文件,这就需要了解它们使用的数据结构

  。其中utmp和wtmp使用同样的数据结构,而lastlog使用另外一个数据结构,可使用man

  来进行查询具体结构。如果系统的用户数量很多,那么wtmp文件的大小会迅速增加,在

  系统/var文件系统空间紧张的情况下,就导致这个文件系统被占满。系统不会主动控制

  这个文件的大小,因此这需要管理员的干预,需要手工及时******,或编写shell脚本定期

  保存和清除。

  系统还可以提供记账统计的功能,要打开系统的计账功能,需要使用accton命令,

  注意,accton必须跟随记账日志文件的名字作参数,而不带参数的accton将关闭记账进

  程。

  当打开了记账功能后,可以使用lastcomm来检查在系统中执行的所有命令的信息,

  包括执行的命令、执行命令的用户、用户使用的终端tty,命令完成的时间,执行时间等

  。从lastcomm的输出也能帮助管理员检查可能的入侵行为。

  此外可以使用ac命令来查询用户的连接时间的报告,sa命令来查询用户消耗的处理

  器时间的报告。

  Syslog日志记录

  ***初,syslog只是为了sendmail而设计的消息日志工具,由于它提供了一个中心控

  制点,使得sys log非常好用和易配置,因此当今很多程序都使用syslog来发送它们的记

  录信息。syslog是一种强大的日志记录方式,不但可以将日志保存在本地文件中,还可

  以根据设置将syslog记录发送到网络上的另一台主机中。

  支持syslog方式的系统启动了syslogd守护进程,这个程序从本地的Unix套接字和监

  听在514端口(UDP)上的Internet套接字,来获得syslog的记录。本机中进程使用sysl

  og系统调用发送来sy slog记录,然后由syslogd将他们保存到正确的文件或发送到网络

  上另一台运行syslogd主机中去。

  syslogd的设置文件为/etc/syslog.conf,定义消息对应的相应目标,一条消息可以

  达到多个目标,也可能被忽略。

  # $Id: syslog.conf,v 1.9 1998/10/14 21:59:55 nate Exp $

  #

  # Spaces are NOT valid field separators in this file.

  # Consult the syslog.conf(5) manpage.

  *.err;kern.debug;auth.notice;mail.crit /dev/console

  *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

  mail.info /var/log/maillog

  lpr.info /var/log/lpd-errs

  cron.* /var/cron/log

  *.err root

  *.notice;news.err root

  *.alert root

  *.emerg *

  !ppp

  *.* /var/log/ppp.log

  syslog.conf的配置可以分为两个部分,******部分用于区分消息的类型,另一个用于

  设置消息发送的目的地。通常,消息的类型包括消息的产生者,例如kern表示内核产生

  的消息,auth表示认证系统产生的消息,等等,还包括消息的级别,例如emerg表示非常

  重要的紧急信息,alert表示系统告警状态,crit表示关键状态,err 表示一般的错误信

  息,warning表示警告信息,notice表示提示信息,但还不是错误,info表示一般信息,

  debug表示调试信息等,因此一个消息的类型可能为:kern.debug、mail.info等,但页

  可以使用通配符*进行匹配。

  从上面的syslog.conf的设置可以看出,系统正常运行中的很多重要的信息,如错误

  信息*.err、内核调试信息kern.debuf、认证报告auth.notice等被直接输出的console中

  ,另外还有一些比较重要的信息被输出到/var/log/messages文件中,发送邮件的记录将

  被保存在/var/log/mail log文件中,打印记录为/var/log/lpd-errs等,使得管理员可

  以根据这些文件来查询相关记录,进行统计或寻找系统问题。其中使用syslog记录的me

  ssages文件中包括root登录的信息、用户多次登录失败的尝试等对系统安全相当重要的

  信息,因此也是系统遭受攻击之后,攻击者会根据syslog.conf中设置试图******相关文件

  中自己的登录记录。因此对于安全性要求更高的系统,可以尝试将syslog发送到另一台

  计算机上,或者输出到一些设备文件中,如在打印机上立即打印输出。

  系统会使用newsyslog定期检查syslog输出的messages文件和maillog文件,将旧数

  据压缩保存为备份文件,如messages.1.gz等。

  其他日志

  除了系统登录记录和syslog记录之外,其他还有一些应用程序使用自己的记录方式

  。

  系统每天都会自动检查系统的安全设置,包括对SetUID、SetGID的执行文件的检查

  ,其结果将输出到/ var/log/security.today文件中,管理员可以与/var/log/securit

  y.yeste rday文件对比,寻找系统安全设置的变化。

  如果系统使用sendmail,那么sendmail.st文件中以二进制形式保存了sendmail的统

  计信息。

  在系统启动的时候,就将内核的检测信息输出到屏幕上,这些信息可以帮助用户分

  析系统中的硬件状态。一般使用d mesg命令来查看***后一次启动时输出的这个检测信息

  。这个信息也被系统保存在/var/log/dmesg.tod ay文件中,系统中同时也存在另一个文

  件dmesg.yesterday,是上次的启动检测信息,对比这两个文件,就可以了解到系统硬件

  和内核配置的变化。

  lpd-errs记录了系统中lpd产生的错误信息。

  此外,各种shell还会记录用户使用的命令历史,它使用用户主目录下的文件来记录

  这些命令历史,通常这个文件的名字为.history(csh),或.bash-history等。

  24:我怎么才能让Netmeeting通过我的FreeBSD防火墙呢?

  http://www.chinaunix.net/forum/viewtopic.php?t=16320

  25:使用adduser为freebsd添加用户需要注意什么呢?

  我在创建用户时遇到这样的一个问题,请那位大侠指点!!!下面是我做的步骤请问这样做对不对。

  dell2650b# adduser

  Use option ``-silent'' if you don't want to see all warnings and questions.

  Check /etc/shells

  Shell: /usr/local/bin/bash not executable!

  Check /etc/master.passwd

  Check /etc/group

  User ``/wheel/tony'' has gid 1002 but a group with this gid does not exist.

  Usernames must match regular expression: [lydong]:

  Enter your default shell: csh date no sh tcsh [tcsh]:

  Your default shell is: tcsh ->; /bin/tcsh

  Enter your default HOME partition: [/home/lydong]:

  Create /home/lydong

  Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:

  Send message from file: /etc/adduser.message no y [y]: n

  Use passwords (y/n) [y]: y

  Write your changes to /etc/adduser.conf? (y/n) [n]: y

  Ok, let's go.

  Don't worry about mistakes. I will give you the chance later to correct any input.

  Enter username [lydong]: luoyaodong

  Username doesn't match the regexp /lydong/

  Enter username [lydong]: lydong

  Please enter a username

  Enter username [lydong]: oeheonse

  Username doesn't match the regexp /lydong/

  Enter username [lydong]: ^C

  在adduser.conf里usernameregexp指定了用来验证新用户名是否合乎规范的正则表达式,你可以修改这个值来强制用户名符合你的规定。

  默认的情况下应该是:

  usernameregexp = '^[a-z0-9_][a-z0-9_-]*$'

  这是说用户名必须以a-z、0-9以及'_'开头,后边可以跟多个a-z、0-9、'_'、'-'字符,当你加新用户的时候,adduser就会拿这个正则表达式来效验你的用户名是否规范。

  看了你输出结果:

  Usernames must match regular expression: [lydong]:

  这说明你把正则表达式给设置成了lydong,后边应用这个正则表达式来效验你的新用户名自然是通不过了(除非你输入lydong)。

  修改也很简单,修改为usernameregexp = '^[a-z0-9_][a-z0-9_-]*$'就可以了。

  26:怎样才能调优我的FreeBSD系统呢?

  http://www.chinaunix.net/forum/viewtopic.php?t=98645

  这个链接是man tuning的中文版

  27:如何察看已经安装ports的make参数

  [Copy to clipboard] [ - ]CODE:

  例子察看php4-extensions的make install 参数

  cat /var/db/ports/php4-extensions/options

  把/var/db/ports/php4-extensions/下文件拷贝到另一台服务器上相同位置可以省去手动指定make 参数的痛苦

  28:为什么我用PQ调整了分区还是装不上FreeBSD?

  因为FreeBSD不能安装在FAT32或NTFS文件系统中!

  FreeBSD的安装问题:

  首先应该提出几个术语:

  可用空间:即是“分区”里的未使用到的部分

  自由空间:windows里未被划分逻辑驱动器的扩展分区

  未分配空间:当你新买一块硬盘后未经格式化的空间

  很多朋友说他们曾使用PQ之类的软件对磁盘进行过分区的调整(对于PQ能不能调整出“未分配空间内”我就不得而知了,我个人不喜欢那种软件)来安装FB。但各位忽略了一点:UNIX不能安装在windows的扩展分区中,当然也包括各个逻辑驱动器,只能是安装在“未分配空间内”。而大家常犯的错误就是使用PQ将现有的WINDOWS逻辑驱动器进行调整,使得有一个比较大的逻辑驱动器,但FreeBSD在进行分“片”的时候只认win的主分区和扩展分区,具体该扩展分区中包含几个逻辑驱动器BSD并不关心,这也就导致了大家花费大量心血调整出来的XX盘不能安装BSD的原因。

  对于想通过VM来把BSD安装到真实硬盘上的朋友来说,也应该要注意这点,该硬盘上也只能使用的是“未分配空间”,并且选择整个磁盘来安装而不是选择分区来安装。相对来说,选择使用整个磁盘来安装的话,和我们安装双系统时的情况一致,更容易保证大家在安装过程中不会丢失数据。

  FreeBSD系统中的“片(Slice)”和“分区”

  这个问题说来会比较麻烦,我们需要与WIN来进行对照说明。

  在windows中,我们都知道系统把硬盘分为各个逻辑驱动器来进行管理,我们可以把windows中的这种管理方式这样理解:整个硬盘是一栋楼,C、D、E等各盘变成了栋中的一楼、二楼、三楼。。。。每个楼层的房间相当于驱动器中的各个文件夹;而FreeBSD则把这样一栋楼分成一个片(Slice),每个楼层对应一个挂载点:/、/root、/var、/usr......然后每个文件夹对应于该层楼中的各个房间。如果各位还是不理解的话,那么把一个硬盘想像成一个矩形的框,假设该块硬盘分为四部分,对windows来说,那么就有四个逻辑驱动器C、D、E、F,而对FB就变成了/、swap(这个分区也需要手工划分,并且是必须的,具体需要多大要看你的FB的用途,如果是仅供学习研究,那么一般分512MB左右,我是40G的硬盘,空间相对充足,就划分了1G的空间 )、/var(或是其他什么)、/usr (通常情况下建议单独划分出此分区)。

  29:如何在安装ports时缩短下载时间

  方法A: 使用代理。

  在/etc/make.conf中设置:

  FETCH_ENV= "HTTP_PROXY=IP[:端口]"

  如果需要,在FETCH_ENV值后面加入空格,

  HTTP_PROXY_AUTH=basic:*:user:password

  方法B: 在其它机器上fetch

  make fetch-recursive

  ...

  然后将/usr/ports/distfiles拿走。

  方法c:使用wget/axel/proz加速你的port下载

  以下所述功能均通过修改make.conf实现

  对于wget

  ========

  FETCH_CMD= wget

  FETCH_BEFORE_ARGS= -c -t 1

  FETCH_AFTER_ARGS=

  DISABLE_SIZE=yes #这行是必要的,否则...

  前面3行也可以换成

  FETCH_CMD=wget -c -t 1

  如果你要wget穿透***************,请加上下面两行

  FETCH_ENV=http_proxy=http://proxy2.zsu.edu.cn:3128

  FETCH_ENV=ftp_proxy=http://proxy2.zsu.edu.cn:3128

  或者使用其他的穿越代理工具例如proxychains 或者socks5(runsocks)

  则FETCH_CMD=proxychains wget或者runsocks wget

  什么?不知道wget是什么?那就先

  cd /usr/ports/ftp/wget/

  make install clean

  对于axel

  ========

  同样,也可以使用axel来替换fetch来进行多线程下载

  FETCH_CMD=axel

  FETCH_BEFORE_ARGS= -a

  FETCH_AFTER_ARGS=

  DISABLE_SIZE=yes

  或者只写一行

  FETCH_CMD=axel -a

  axel 穿透***************的方法与wget一致

  axel在/usr/ports/ftp/axel位置

  对于proz

  ========

  同样,也可以使用proz来替换fetch来进行多线程下载

  FETCH_CMD=proz -r

  DISABLE_SIZE=yes

  proz 穿透代理服务器的方法与wget一致

  proz在/usr/ports/ftp/proz位置

  添加更快的port下载站点

  ====================

  另外,加上以下两行可以在让make先从更快的站点下载port

  MASTER_SITE_OVERRIDE= \

  ftp://ftp2.tsinghua.edu.cn/mirror/FreeBSD/ports/distfiles/ \

  ftp://freebsd.csie.nctu.edu.tw/pub/FreeBSD/ports/distfiles/ \

  ftp://ftp.hk.freebsd.org/pub/FreeBSD/ports/distfiles/ \

  ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/

  这个是教育网的设置,公网的兄弟可以看着办啦

  30.如何在旧版本ports基础上强行安装新版本ports?

  # make install -D "FORCE_PKG_REGISTER" clean

  好像只在一些不是很重要的ports才有效,我原有glib-2.6.x,强行安装glib-2.8.5成功,不过强行安装linux_base-8貌似失败)

  31、如何使ports在安装时不检查下载软件的MD5和SHA256

  有时我们从ports安装软件的时候会出一些问题,比如VSFTPD我就喜欢改动一些东西然后在安装。这时,我们可以使用

  # make NO_CHECKSUM=yes

  来跳过MD5和SHA256的检验,除非逼不得已或对自己的修改很有信心,否则建议make是不要使用此参数。

  PS:其实很多小技巧都是在make的过程中提示的,大家稍微看下提示也能知道,如果您觉得自己的英文不过关,那就请多看看精华,会有收获的。

  摘自:http://bbs.chinaunix.net/thread-645076-4-1.html

 
客户服务 +more
上门服务
服务承诺
异地恢复
收费标准
付款方式
疑难解答
服务特色 +more
·免费检测
·免费提供3天备份
·专业工程师提供服务
·免费清洁送修的介质
·数据恢复前报价,客户确认后工程师开始数据恢复
·数据恢复不成功不收费
·与客户签订保密协议,对客户的数
 据严格保密,整个恢复过程不会对
 客户的原盘有任何的写操作,以确
 保原盘的数据完全

·免费参观恢复全过程

·工程师在线免费咨询

·专业工程师提供服务
服务器数据恢复 点击这里给我发消

息
数据库修复
点击这里给我发

消息
硬盘数据恢复
点击这里给我发消

息