http://hi.baidu.com/itlu8/blog/item/e27959d1a6318dd7562c841f.html

-、补充知识:磁盘分区表示方法(下面解说并不严密,仅仅是个例子而已)

         (1) 磁盘表示方法(IDE接口,SCSI 和 SATA 不明):第一个 IDE 接口磁盘表示方法为

               ad0(主盘) 、ad1(从盘);第二个 IDE 结构表示方法为 ad2(主盘)、ad3(从盘)。

         (2)关于主分区和逻辑分区(slice):主分区表示方法 s1-s4,逻辑分区从 5 开始,而且一定是从

            5 开始。主分区不够 4 个就留空,有一个就占用 s1,留空s2,s3,s4。有两个就占用 s1 和

            s2,留空s3,s4。然后从 s5 开始。不过对于 BSD 来说,一般是从 s1 开始分的,除非人为的

            设定。没有对应于 windows 系列下面的扩展分区(在 FreeBSD下面也算是主分区)。

            注:此步可以对比于 windows 下面的分区 C、D、E、F 等等。

          (3)分区表示(disklabel):从 a 到 h,但是要留空 b,c,d。也就是说每个分区(slice)只能有a,e,

              f,g,h 一共五个 label。如果硬盘足够大,五个表示方法不够用,可以再新建分区的(slice) sn   

              (n=2 to n)。

            注:此步可以对比于windows 盘符下面的文件夹:windows(winnt)、document、program 等等。

             *******************************************************************************************************************

            一个完整的磁盘表示方法:ad0s1a 第一个IDE接口主盘第一个分区且为主分区的第一个label,

              一般默认挂载的是 "/";

           说明:以上是我自己的理解,暂且就这么多。详细解说资料看看手册!以下是我在硬盘安装

                     FreeBSD 和 Linux 的时候对磁盘分区做的一个对比(ad2 表示第二个IDE口主盘,第一个

                     IDE 口接的光驱):

                          FreeBSD     |    Winxp     |      Linux     |     Grub
                             ad2s1           C:(8G)         hda1         (hd0,0)
                             ad2s2       扩展分区(35G)hda2          (hd0,1)
                             ad2s5           D:(12G)       hda5         (hd0,4)
                             ad2s6           E:(12G)       hda6         (hd0,5)
                             ad2s7           F:(11G)       hda7         (hd0,6)
                             ad2s3           --(15G)      hda3         (hd0,2)     

                  ********************************************************************************************************

二、最小系统安装:

         a、无论是光驱安装和硬盘安装,启动过程都是一样的。出现

             CD loader...不用管,自检。

         b、/stand/sysinstall Main Menu   选择 Standard,从标准安装开始。

         c、Fdisk Partition Editor   Fdisk 分区

                        a:使用这个硬盘。如同windows 下面的一个 C 盘(新手推荐)。

                         c:创建slice。相当于创建盘符,不过没有扩展分区的概念。表示方法 ad0sn(n=1 to n)

                         d:删除slice

                         q:退出。

                         s:设定启动分区。如同 windows 下面的 active。

                         u:撤销全部操作。

          d、FreeBSD Disklabel Editor。

                                 a:自动默认(新手推荐)              c:创建                   d:删除       

                                  q:退出(未保存)                                u:撤销上一步        w:写入(保存)

          e、Install Boot Manager for drive ad0? 多重引导程序安装

                                 BootMgr:FreeBSD 的引导程序

                                Standard:标准引导(单系统使用)

                                 None:不使用系统自带的,使用其他系统的引导程序,见于多系统安装。

三:系统配置和软件安装:

   ($ 表示普通用户,# 表示超级用户 root,// 表示注释,==>前表示修改前,后表示修改后)

     #cp /etc/ppp/ppp.conf /etc/ppp/ppp.conf.bak       // 修改前先备份,出现错误以后恢复使用

     #vi /etc/ppp/ppp.conf                            // 陕西西安电信 adsl 上网,其他地方不明

         set   device /dev/cuaa1 ==> set device PPPoE:lnc0    //lnc0为网卡名称,可以用 ifconfig 获得

         set dial "ABORT BUSY ……" ==>set dial # "ABORT BUSY ……"   // 再注释下面一行

         set timeout 180 ==> 注释掉

         set authname USERNAME ==> USERNAME 改为 拨号用户名

         set authkey PASSWORD ==> PASSWORD 改为 拨号密码

         set ifddr 10.0.0.0/0 10.0.0.2/0 255.255.255.0 0.0.0 ==>注视掉

         :wq 保存退出

     #vi /etc/rc.conf

         添加:ppp_enable="YES"

                   ppp_mode="ddail"

                   ppp_profile="papchap"      // 对应于 /etc/ppp/ppp.conf 文件中的 papchap,一改全改。

                   ppp_nat="YES"                // 如果需要 ADSL 共享上网,再添加下面两句

                   gateway_enable="YES"   // ADSL 共享上网

     #ppp -ddial papchap        //可以上网了。断线的时候找到 ppp 进程,kill 掉就可以了

                                                // 如果无法上网,使用 ifconfig 查看 tun0 是否有输出。

     #vi /etc/profile

         添加:export ENABLE_STARTUP_LOCALE=zh_CN.GBK

                    export LC_CTYPE=en_US.ISO8859-1

                    export LANG=zh_CN.GBK

                    export PACKAGESITE=\

                        

                     // 前三行设定 locale,可以使用 locale -a | grep 'zh_CN' 查看系统支持的 locale。

                     // 第四行用来指定 pkg_add 远程安装 package 的地址。

    #vi /boot/loader.conf

         添加:autoboot_delay="2"  

                    snd_es137x_load="YES"   

                   // 第一行启动时候时间延迟改为 2 秒

                   //      装载声卡驱动,可以使用 kldload snd_driver 装载所有的声卡,然后使用

                   //    cat /dev/sndstat 查看适合本机的声卡,再使

                   //      用 cat /boot/default/loader.conf | grep 'snd'

                   //     查看系统是否自带本机声卡。

     #pkg_add -r cvsup-without-gui      //用来更新 ports 和 standard

     #pkg_add -r bash                         //替换普通用户的 sh

     #pkg_add -r axel                          // 下载工具,用来替代 ports 下面的 wget

     #pkg_add -r perl                         // 不用说了吧,好多东西用的到

     #pkg_add -r samba                    // 网络邻居,如果就一台电脑就不用了,我的是虚拟机,

                                                         // 需要互传一些文件的,就装上了。

     #rehash

    $chsh -s bash                            // 修改普通用户的 shell 为bash,输入密码,exit 然后login

                                                        //就可以使用了。比 sh 方便的多。

四、内核编译:

a、更新源码

    #cd /usr/share/examples/cvsup

    #cp standard-supfile ports-supfile ~      //把源码树和ports树复制到当前用户目录下

     #chmod +w standard-supfile ports-supfile   // 默认情况下两个文件都是不可写的

    #vi ports-supfile

         *default host=CHANGE_THIS.FreeBSD.org ==> *default host=cvsup3.cn.FreeBSD.org

     #vi standard-supfile

         *default host=CHANGE_THIS.FreeBSD.org ==> *default host=cvsup3.cn.FreeBSD.org

    #cvsup -g -L 2 prots-supfile

    #cvsup -g -L 2 standard-supfile

b、配置内核

     #uname -a > /home/username/pre-version     //编译前的 uname

     #cd /sys/i383/conf

     #cp GENERIC FW     // 我是想给系统内核添加一个防火墙,备份以后直接修改 FW 就可以了。

    #vi FW

         添加:options   IPFIREWALL

                    options   IPFIREWALL_VERBOSE

                    options   IPFIREWALL_VERBOSE_LIMIT=5

                    options   IPFIREWALL_DEFAULT_TO_ACCEPT  

                    options   IPDIVERT

         修改:ident   GENERIC==> ident FW

         // 以上修改可以参考手册,更详细设定可以查看内核设定、编译章节

c、编译内核

     #cd /usr/src

     #make buildworld     //我在虚拟机上用了差不多三个小时 cer1.7G,192 MEM

     #make buildkernel KERNCONF=FW

     #make installkernel KERNCONF=FW

     #reboot        // 重启之后选择 4,即单用户模式,还需要继续编译

    #cd /usr/src     // 重启之后还需要到 /usr/src 目录下面才能执行下面的命令

     #make installworld

     #mergemaster -p

     #reboot         // 一直到这里才算完成

(完)