FreeBSD安装与配置


 Unix给人的印象一向是比较专业,难以安装,但是FreeBSD的表现却并非如此。这是因为FreeBSD 主要支持最流行的个人计算机平台,由于多平台问题不是主要考虑对象,FreeBSD的开发者就集中精力建立了一整套适用于个人计算机的高级安装与配置工具 ── Sysinstall。

因此与其他Unix系统不同(包括NetBSD和 FreeBSD),FreeBSD的安装过程相对简单和容易理解,只需要安装软盘或安装光盘启动安装程序,就能顺利完成安装FreeBSD的任务。

  FreeBSD的安装程序支持最流行的网络安装和光盘安装方式,也支持传统的磁带和软盘等其他几种安装方式,支持大多数的流行硬件以及这些硬件的标准配置,并能对系统进行基本配置,如主机名、键盘和屏幕字体、网络设置等。

  但是通常个人计算机上最常使用的还是微软的Windows 9x系列的操作系统,使用者常常习惯用来自于DO S的一些概念来分析系统,这些概念与Unix对同样事物的理解方式有所不同。而FreeBSD是一个完整的Unix操作系统,因此要求使用者要使用Unix的方式去了解个人计算机系统的各个方面。正如一个没有任何DOS/Window s基本概念的使用者,无法正确安装DOS/Windows一样,一个没有任何Unix的基本概念的使用者,也无法正确安装FreeBSD。

安装之前的准备
  安装之前应该了解要安装FreeBSD的计算机硬件配置和Unix的一些基本概念,以及FreeBSD软件的载体 ── 安装介质。这些信息能帮助用户了解这台计算机是否适合安装FreeBSD,是否具备安装FreeBSD的条件。绝大多数情况下使用安装光盘(或软盘)直接进行安装,就能完成安装任务,但了解更多的信息可以帮助安装者处理在特定条件下发生的安装问题。所以建议读者不要忽略安装的准备阶段,充分了解自己要安装的系统的硬件和FreeBSD中的常用概念,可以避免安装过程中出现问题。

  硬件设备

  个人计算机上的硬件种类千差万别,对于用于不同目的的系统,应该会选用不同的硬件。有些硬件对FreeBSD 系统比较重要,如硬盘和网络设备,而有些硬件不太重要,属于可选配置,如用于多媒体系统的声卡等。要安装FreeBS D系统,必须保证这台计算机中包括最基本的硬件设备,如用于安装系统的硬盘,读取要FreeBSD安装介质的设备:软盘驱动器、光盘驱动器或网络等。

  然而也有特定配置的FreeBSD系统,可以仅使用软盘启动和运行,或者是无盘的网络工作站。这些系统用于特定目的,如用作专用防火墙设备或X终端。这些特殊配置的FreeBSD系统不使用标准的安装方式。

FreeBSD支持的硬件
  标准的FreeBSD最小能够安装在一台只有5MB内存,40MB硬盘,使用Intel 80386芯片的机器上。事实上运行FreeBSD只需4MB就足够了,只是FreeBSD的安装程序要将软盘上的数据首先展开到内存中的MFS文件系统中(相当于虚拟磁盘),因此要求至少5MB的存储空间。如果要求系统能运行X Window图形界面,那么就应该至少有8MB内存,250MB硬盘。

  FreeBSD在这种低配置的计算机中仍然能完成相当多的任务,然而处理器的速度和内存的大小也限制了它的任务处理能力,显然更高配置的计算机能表现出更出色的性能,完成更复杂的处理任务。例如,安装软件需要额外的硬盘空间,而复杂的软件会要求更大的内存和处理器速度提供支持。通常太低配置的计算机对于用作个人工作站并不适合,但其处理能力也能满足完成某些处理专有任务的特定用途方面。例如用作拨号访问Internet的网关,一台软盘启动的386也就能满足其56Kbps流量的处理要求。

  不同的工作用途,对硬件的要求也不相同,也应该选用不同种类的硬件。如果用作个人工作站或专用X终端,至少应该拥有大屏幕、高清晰的图形显示器。如果是用作支持数百人同时访问的Internet服务器,就必须考虑使用最高级P entium II处理器,SCSI硬盘以及大量的内存。将FreeBSD系统用作软件路由器、防火墙或网桥设备时,就应该根据网络结构和数据流量采用高性能的网卡,例如采用ATM网卡或千兆以太网卡。

  FreeBSD支持ISA、EISA和PCI总线的硬件设备,包括标准的IDE/EIDE硬盘驱动器,各种S CSI控制器,IDE和SCSI界面的磁带驱动器和光驱,其他的一些ATAPI界面的光驱,标准串口、并口,各种类型的鼠标,与SoundBlaster兼容的声卡,VGA兼容的显示卡等个人计算机上使用的大部分硬件。只有一些太古老的,或者使用很少的硬件,或者生产厂家不愿公开其技术资料的硬件,FreeBSD不能提供支持。对于这样的情况,就必须更换硬件设备才能安装FreeBSD。同时也必须注意到,由于FreeBSD下的硬件支持并不是由硬件厂商提供支持的,而是由FreeBSD开发者根据硬件厂商提供的资料开发的。因此当一种新设备出现之后,并不会立即出现FreeB SD下的驱动程序,而需要一定的滞后时间。

  字符模式下,只需要标准VGA显示设备就可以了,但在X Window下,显示卡的VGA兼容方式只能提供1 6色及640x480的分辨率,而大多数显示卡能显示更高的分辨率及更丰富的色彩,这需要显示卡的驱动程序提供支持,这种支持是由X Server来完成的,因此对不同种类显示卡的支持应该检查X Free86的硬件支持列表。

  在每个FreeBSD安装介质中,都包括一个该版本的FreeBSD支持硬件的列表文件──HARDWARE .TXT,也可以到FreeBSD的往页中获得各个版本的硬件支持列表文件。然后可以对比这个文件中的硬件列表,来判断自己计算机上的硬件是否满足安装FreeBSD的要求。在订购计算机硬件时,也可以参考这个文件的内容来选择购买F reeBSD支持的硬件。

  但是,FreeBSD支持的硬件并不一定是FreeBSD的标准安装程序支持的硬件,由于要在安装软盘中不可能包括所有硬件的驱动程序,而只放置了对安装系统所必要的一些驱动程序。有的硬件设备对于系统安装来讲用处不大,如声卡等多媒体设备,那么其驱动程序就不包括在安装软盘和标准内核中。支持这些硬件便需要重新定制FreeBSD内核,安装盘支持的硬件也在HAREWARE.TXT中进行了描述。

  当前计算机硬件发展速度非常迅猛,当前Intel平台的计算机完全能满足不同用途FreeBSD的要求。然而由于硬件发展很迅速,新型硬件不断出现,就使得这些硬件从出现到被FreeBSD支持,需要经过一段时间。如果某些硬件在最新的release版本中不支持,可以查看FreeBSD-current分支是否支持该硬件,因为-curr ent分支通常包括更多新硬件的驱动。

硬件资源及配置
  个人计算机的硬件由主板和多个的板卡组成,每种硬件必须占用不同的硬件资源。这些资源包括端口号(ports ),中断请求号(IRQ),直接内存访问通道号(DRQ),输入/输出存储器地址(I/O memory),硬件使用的资源不能够相互冲突,否则冲突的硬件就无法正常工作,甚至会影响整个系统的正常运转。

  在个人计算机中,硬件资源的分配遵循一定的习惯,这样在使用的板卡数量较少时就不会形成冲突。但是在硬件较多时,缺省配置就不一定十分合适。为了避免硬件冲突,就需要对板卡使用的资源进行设置。而不同的板卡,采用三种不同的资源设置方式:

跳线或DIP开关,板卡上有几个不同的跳线,选择不同的跳线方式使板卡使用不同的硬件资源; 软件设置,板卡厂商附送设置软件(一般是DOS程序),能够对板卡使用的资源进行设置。有的板卡还提供驱动程序,可以自动探测空余的资源,并重新更改板卡使用的资源设置,这种能通过软件驱动改变资源设置的板卡被称为无跳线板卡( Jumpless)。只是其提供的驱动基本都是DOS/Windows驱动; 即插即用(PNP, Plug & Play),板卡遵循PNP标准由系统分配空余资源;
  对于这三种不同的硬件类型,更改板卡资源配置的方式也不同,对于前两种方式的板卡,可以直接更改跳线或DIP 开关,或者在DOS下使用设置软件来设置它占用的资源。即使是Jumpless的板卡,由于硬件厂商提供的驱动只是D OS/Windows驱动,因此只能使用其缺省资源设置而不能利用其自动探测的优势,当然设置程序可以帮助更改其缺省的资源设置。

  而对于Plug and Play的ISA板卡,问题较为复杂,因为PNP板卡要求系统为其分配资源设置。有些板卡的设置软件,可以设置这个板卡不使用Plug and Play方式,而直接指定占用的硬件资源。这样就将PN P类型的板卡用作软件设置的板卡,由安装者来保证没有硬件设置冲突存在,这是一种思路简单的解决办法。

  如果使用Plug and Play的方式为板卡分配资源,可以选择两种不同的分配方式,一种是由BIOS设置硬件的资源,BIOS在自检时就分配资源给PNP卡,然后当操作系统启动时根据这个设置分配板卡占用的资源。另一种方式完全由操作系统分配PNP卡占用的资源,BIOS不给PNP卡分配硬件资源。

  FreeBSD能够支持Plug and Play,但是由于ISA总线的PNP卡通常是某种标准ISA板卡的兼容产品,驱动程序不会自动分配资源,因此就需要在UserConfig中进行手工设置或调整,PCI PNP卡就不存在这个问题。为了避免烦琐的手工调整,可以使用BIOS给Play and Play板卡分配初始资源,如果必要再手工调整设置。支持PNP卡的主板BIOS中通常有一个Plus & Play OS选项(或类似描述词句),这个选项用于决定是否为PNP板卡分配资源,应该将该选项关闭(选择 “Disable” , “No” , “ non-Win95” 等),让BIOS为板卡分配初始资源。

  通过更改硬件的设置,来解决硬件冲突问题。此后将这些硬件配置信息记录下来,用来解决安装过程中的问题。即使计算机上不存在硬件冲突问题,记录下这些配置信息也是非常有用的。可以通过查看各个硬件的手册或硬件提供的设置软件来了解这些硬件的配置情况,如果计算机上已经安装有操作系统,可以使用这个操作系统上的软件来辅助了解硬件的配置信息,例如DOS下的MSD,Windows 95下控制面板中的系统选项等,这些软件中将显示出当前计算机已经配置过的硬件信息。

  对于PNP卡,由于系统资源是计算机启动后才获得的,因此使用DOS/Windows下的软件能更快捷的获得必要的信息。虽然PNP中资源是动态分配的,但是这个值仍然能起到非常有用的参考作用,尤其对于使用BIOS来分配资源的板卡,这个资源设置就更有意义一些。

安装介质
  为了安装FreeBSD,必须还要有FreeBSD系统的安装介质,FreeBSD支持的安装介质有以下几种:

CD-Rom
  由于光驱已经成为个人计算机的标准配置,因此使用FreeBSD的安装光盘来安装FreeBSD是最容易也最常见的安装方式。并且当个人计算机系统支持CD-Rom启动时,就可以直接使用光驱来安装FreeBSD,而不需要启动软盘的帮助。使用CD-Rom做安装介质要求计算机配有FreeBSD可以识别的光盘驱动器。

网络服务器
  安装文件位于网络服务器上,安装程序通过ftp或者nfs,远程访问网络安装服务的相应服务器上,获得安装所需的各个文件。网络安装要求系统必须连接到网络上,而且网络的传输速度也要比较稳定才合适。被安装的计算机必须具有网卡或广域网接口,以支持网络。

磁带
  这是一种较老式的安装方法,但十分有效。如果有tar格式的安装磁带,安装过程十分简单。使用这种安装方式,计算机必须拥有一台磁带机。

软盘
  也是一种较古老的安装介质,除非条件限制,很少有人有耐心使用软盘作安装介质,因为这需要太多的软盘,并且软盘是不可信赖的存储介质,很难保证复制的软盘没有错误。FreeBSD之所以支持这种方式,是因为软盘驱动器是个人计算机的标准配置,这使得FreeBSD能够在最恶劣的特殊条件下也能进行安装。

硬盘
  将FreeBSD的安装文件预先拷贝到计算机系统中已有的硬盘分区中,该分区的类型可以是DOS分区或者 FreeBSD分区。这要求计算机中有足够的硬盘空间并已有格式化后的分区。这种方式是前面几种方式的折中方式,如果网络不稳定,或者光盘质量有问题,或者要保留安装介质以便再次安装,都可以先复制必需的内容到硬盘上。

安装介质中的内容
  无论哪种安装介质,其中都是存储了要构建一个FreeBSD系统所需要的系统软件,由于CD-Rom和Internet 越来越普及,CD-Rom和网络安装方式是最常用的方法。这里就以FreeBSD的安装光盘为例,简单介绍 FreeBSD安装介质上的主要内容。

  FreeBSD使用的安装光盘是标准的ISO 9660格式的光盘,这种格式缺省只支持8.3格式的文件名( 8个字符的基本文件名,3个字符的扩展名,不区分大小写),由于Unix下的文件名比较长,且区分大小写,因此Fre eBSD及其他Unix通常使用Rock Ridge方式对文件名进行映射,在每个目录下使用一个文件TRANS.TBL 记录8.3格式的文件名与Unix使用的长文件名之间的对应关系。

  FreeBSD安装光盘中的内容可分为三类:

  第一类为安装说明文件,这些文件位于安装介质中的根目录下:

  ABOUT.TXT: 关于FreeBSD的简单信息
HARDWARE.TXT: FreeBSD支持的硬件列表
INSTALL.TXT: 介绍如何安装FreeBSD的说明
README.TXT: 介绍安装介质上其他文件,应该首先阅读
RELNOTES.TXT: 发行这个版本的FreeBSD系统时的一些通知
LAYOUT.TXT: FreeBSD安装系统的文件分布的说明
UPGRADE.TXT: 进行升级FreeBSD的一些注意事项


  第二类是进行安装时能用到的DOS工具程序,主要用于制作启动软盘。

  tools目录: 准备安装所需要的DOS工具程序,包括制作启动软盘的DOS程序,以及帮助整理硬盘的 工具,从DOS下启动FreeBSD的程序等。
floppies目录: 包含安装软盘、启动软盘、系统修正软盘的镜象文件的目录


  第三部分就是FreeBSD系统的安装文件

  XF86333目录: 包含XFree86软件的目录,其中版本号会随着系统升级而提升到更新的版本
bin目录: 系统基本文件的安装目录,这是安装FreeBSD所需的必备目录
catpages目录: 格式化后的普通文本方式的系统手册
compat1x、 compat20、 compat21 和compat22目录: 包含与以前各个版本的FreeBSD相兼容的库
des目录: 由于美国法律的限制,包含DES算法的软件未经许可不能出口到美国和加拿大之外, 因此FreeBSD缺省使用MD5算法以避开这个问题,这个目录中包含与des算法的相关软件,以便需要这个 算法的使用者可以从北美之外的Internet上获得并安装。
dict目录: 系统字典安装目录
doc目录: 系统文档安装目录
games目录: 包含一些Unix小游戏
info目录: GNU info文档的安装目录
manpages目录: 系统手册的安装目录
packages目录: 包含最常用的软件
ports目录: Ports Collection的源代码
proflibs目录: 系统运行库
src目录: 系统源代码的目录


  这些安装文件可分为三类,一类是系统软件,用于构建基本的FreeBSD系统。这些软件存储在安装介质下的b in, des, dict, doc, games, info, manpages,catpages, com pat1x, compat20, compat21, XF86333和proflibs目录中。为了便于管理,这些文件使用tar和gzip进行打包压缩,其中前六个目录下的文件被分割为大小为240,640字节的文件,这样在需要的时候,可以拷贝到软盘上进行安装。然而并不是所有的内容都必须安装,可根据不同的安装选项,有选择的安装不同目录下的不同内容,只有bin目录下的系统软件才是必须的。

  另一类是可选软件,如果说基本系统是骨架,那么应用软件就是血肉。没有应用软件,一台FreeBSD系统就不能充分发挥它的全部功能。FreeBSD使用Ports Collection的机制来管理应用软件,将应用软件移植到FreeBSD下,每个移植的软件被预编译为一个个的二进制软件包,称为Package,存储在安装介质的pack ages目录下,因此二进制软件包的管理机制又称为Packages Collection。由于空间的限制,安装光盘上并不能包含所有软件的二进制形式的Packages,但在FreeBSD的ftp站点上提供了所有最新的软件包。

  此外就是系统的源代码,包括内核的源代码、各个程序的源代码以及Ports Collection的源代码。一个正常的FreeBSD系统至少应该安装内核的源代码,以便根据自己计算机的实际情况来定制内核。这些安装文件位于 src和ports目录下。

  其他安装方式下的安装介质内容与CD类似,但在内容上也略有不同。因为安装组件都是可选的,因此不同的安装介质将可以选择不同的安装组件。例如软盘安装介质可能只包括最基本的系统(bin目录下的文件),而FreeBSD的主 ftp站点ftp.freebsd.org上,包括了所有的安装文件。

  要根据不同情况和条件,来选择不同安装介质。如果计算机系统具备网络界面并与Internet的连接快速且稳定,那么就可以使用网络安装方式,这仅仅需要制作启动软盘(如果计算机上已经安装有DOS,甚至可以连启动软盘都不需要了),以启动FreeBSD和安装过程。如果购买了FreeBSD的安装光盘,就可以选用光盘安装方式等等。

  当前由于硬件发展非常迅速,因此光驱对于个人计算机已经是标准配置,因此使用光盘作安装介质应该是最为方便的首选安装方式。

准备硬盘和软盘
  在IBM兼容的个人计算机上使用的硬盘控制器有以下种类:

最古老类型的ST-506以及ESDI,当前已经很少人使用这些驱动器,但是FreeBSD的wd驱动程序仍然支持它们; IDE和增强型IDE(EIDE),是当前最流行的个人计算机硬盘控制器,每台计算机能接两个控制器,每个控制器可以接两个设备(硬盘或光驱),分别为这个控制器上的主设备和从设备。FreeBSD的wd驱动程序支持EIDE,wd驱动程序探测到的第一个IDE控制器的主硬盘为wd0,第一个IDE控制器的从硬盘为wd1,第二个IDE驱动器的主硬盘为wd2,从硬盘为wd3; SCSI控制器,由于SCSI控制卡承担了大量的处理任务,降低了中央处理器的负载,更适合用做服务器和高性能工作站的磁盘驱动器。早期的SCSI控制器能接7个设备,而Wide SCSI控制器可以接15个设备。SCSI板卡种类繁多,对不同的SCSI控制器,FreeBSD需要使用不同的驱动程序来进行支持。与IDE驱动器相同,SCSI硬盘驱动器也按检测到的顺序排列或在内核中规定的顺序,从da0向后,依次类推。
  在FreeBSD 2.2.x版本中使用的SCSI驱动程序为与3.x版本不同,旧版本驱动程序使用的SCSI 硬盘设备名为sd0等。

硬盘分区方式及命名
  在个人计算机中,每个硬盘可以分为四个磁盘分区,其分区信息存储在该硬盘前部的分区表中,而每个分区可以由不同的操作系统进行管理。常见的分区分为基本分区和扩展分区,又根据使用的不同文件组织格式,可以分为DOS的FAT分区,FreeBSD的UFS分区、NT的NTFS分区,Linux的EXT2FS分区等。

  一个硬盘上可以划分一个扩展分区,扩展分区与基本分区不同,它实际上不直接在上面存储实际数据,而是在上面再划分逻辑分区,这样又可以划分四个逻辑分区。使用DOS/Windows操作系统的计算机必须拥有一个使用DOS的F AT文件系统的基本分区,这个将对应于DOS下的C盘,然后将其他空间划分到扩展分区中,在扩展分区中再划分DOS逻辑分区,相应的FAT分区依次对应于D盘、E盘等。当其他的操作系统使用硬盘时,这个操作系统应该单独占用一个分区,在这个分区上使用自己的文件组织格式。

  DOS只能使用C、D等盘符来标志FAT格式的磁盘分区,它不能标识其他文件组织格式的磁盘分区,如果一个硬盘上没有FAT格式的磁盘分区,那么就不会存在C盘、D盘等。然而其他更强大的操作系统通常能识别多种文件组织格式,通常按照分区在分区表中的顺序来标识他们。例如FreeBSD将记录在分区表上的分区,分别称作wd0s1,wd0s 2,wd0s3,wd0s4,wd0为第一个IDE硬盘,使用s1标识第一个分区等。如果某个分区(例如第二个分区w d0s2)为扩展分区,那么其上面的逻辑分区,其顺序就从5算起,为wd0s5,wd0s6,wd0s7,wd0s8 。因此一个磁盘上最多只能有8个不同的分区同时存在。

  然而毕竟扩展分区上的逻辑分区和基本分区还有所差别,因此不是所有类型的文件组织方式都可以适合在逻辑分区中使用。FAT、NTFS和EXT2FS类型可以被在逻辑分区上使用,但是FreeBSD使用的UFS不能被逻辑分区使用,只能是在基本分区中使用UFS文件组织格式。这是由于FreeBSD是一个完全独立的操作系统,使用的分区方式继承自BSD Unix,早在个人计算机出现之前,BSD就已经形成了自己的管理硬盘和分区的方式了。

  BSD Unix传统的使用硬盘方式是独占整个硬盘,只有文件系统或交换空间而没有分区的概念,也不使用硬盘的分区表来保存分区信息,因此也不存在基本或扩展分区。BSD使用Slice来表示硬盘上的一个部分,一个Slice 是硬盘的一个部分,它可以是一个文件系统也可以是一个交换空间。Slice的概念与个人计算机传统使用的Partit ion(分区)概念类似,因此也可以使用分区来称呼它。BSD方式的管理方法能管理多达8个Slice,BSD按字母顺序依次命名他们为wd0a,wd0b等。按习惯用法,wd0a用于根文件系统 “/” ,wd0b用于交换空间,w d0c用于表示整个硬盘空间,wd0e用于/usr文件系统等。

  然而FreeBSD毕竟是运行在个人计算机平台上的操作系统,其他操作系统使用Partition,而Fre eBSD使用Slice,就必须采用一种折中的方式,使得FreeBSD能和其他操作系统相互协作,处理磁盘分区。F reeBSD的磁盘管理方式就是一种兼容的硬盘使用方式。每个FreeBSD系统将占用一个独立的UFS基本分区,这个分区与其他操作系统使用分区的方式相同。在基本分区内再使用BSD的Slice方式进行管理,这种方式就类似于DO S在扩展分区内分割逻辑分区的方式。

  假设FreeBSD使用了第三个分区wd0s3,则在这个分区内划分的相应Slice就被称为wd0s3a, wd0s3b等,其中wd0s3a缺省被用做根文件系统等。这时仍然可以使用传统的名字wd0a来称呼wd0s3a,使用wd0b称呼wd0s3b,以与BSD传统方式兼容的方式称呼这些Slice,但条件是wd0s3应该是wd0硬盘上第一个UFS类型的基本分区(或唯一的UFS基本分区),wd0盘上的其他UFS分区中的Slice就只能使用全称了。由于Slice和Partition都是用于分隔磁盘(或分区),以更方便的利用磁盘空间,为了简捷,可以将在 UFS基本分区中划分的Slice,如wd0s3a,称作wd0s3分区的子分区。

  下面为DOS和FreeBSD(多操作系统并存)下常用硬盘分割的方式。

 准备硬盘
  如果不是在新系统中安装FreeBSD,安装系统之前需要备份相应硬盘上的重要数据。因为安装过程将直接操作硬盘,对硬盘进行分区和格式化(在Unix下称为建立文件系统),虽然在一定条件下安装者能够不破坏原有的数据,但是有可能由于某次误操作,导致重要数据的无法恢复。因此建议对该计算机上的所有硬盘数据做一次完整备份。这些数据的备份任务要使用计算机已经安装好的操作系统来完成。

  然后需要确定将系统安装在何处,FreeBSD必须独占一个基本分区,要保留出自由空间就行了。硬盘上的自由空间包括两个含义,一是分区表中的位置上的空间,四个分区表没有占满,另一个是硬盘空间,现有的分区没有占满所有的硬盘。然而,安装程序也能删除现有分区,并重新分割硬盘。

  如果是在一个新硬盘上安装FreeBSD系统,但又打算以后还安装DOS等其他操作系统,最好使用DOS程序 fdisk.exe先划分出一个基本分区。这个分区的大小都没有什么意义,它只是用来给FreeBSD安装程序提示B IOS的硬盘数据映射方式的,否则FreeBSD安装程序就不考虑BIOS的映射方式。由于这个分区只起到提示作用,可以在安装过程中删除,重新按照原有的考虑分割硬盘。如果没有这样的分区,FreeBSD安装程序中的硬盘映射数据可能和BIOS中的设置不一致,当然安装者可以进入BIOS,记录下硬盘的柱面、磁道和扇区映射数据,在安装过程中手工更改映射数据设置。

  硬盘映射数据不一致的问题,来源于个人计算机BIOS与Unix对硬盘的理解不同。个人计算机使用柱面、磁道和扇区的概念来理解硬盘上数据的位置,而Unix只将硬盘等存储设备理解为分为一个个块的简单线形设备。这就导致Fr eeBSD中的Slice和BIOS中的Partition划分时的不同。如果计算机上只有FreeBSD一种系统独占硬盘,FreeBSD只需要知道每个Slice的大小就行了,按块读取数据,不会出现任何问题。但如果与另一种操作系统共享硬盘,那么就必须首先确定相应的Partition位置,这就受到BIOS的限制。一旦FreeBSD对柱面、磁道和扇区理解与BIOS设置的不同,必然就发生不能找到分区的正确位置问题。

  一般情况下,找不到分区位置的情况不会发生,因为FreeBSD系统能够侦测到硬盘的数据。但是个人计算机上的BIOS会对柱面、磁道和扇区数据重新进行映射,导致BIOS以与硬盘本身并不一致的方式来分割硬盘上的Parti tion。因此对于在一个新硬盘上安装FreeBSD,BIOS又对磁盘数据进行了重新映射的情况下,就需要记录下B IOS映射的数据用于纠正可能出现的映射数据问题。BIOS对硬盘数据进行映射发生于两种情况下,一种情况为使用SC SI硬盘时,SCSI硬盘本身使用线性地址,而BIOS必须要求柱面、磁道和扇区的概念,因而BIOS就对SCSI硬盘进行映射。另一种情况是对EIDE硬盘,由于个人计算机BIOS的设计问题(系统调用仅支持1024柱面的限制),支持大硬盘的BIOS也要将EIDE硬盘重新映射为合法的硬盘数据(使用LBA或其他映射方式)。因此即使在安装系统之后,如果随意更改BIOS中的硬盘映射方式,就会使得分区的位置被映射到一个错误的位置上,发生启动错误。

  FreeBSD本身并不使用任何BIOS调用来处理硬盘存取,而是使用自己内部的硬盘驱动程序。因此,只要启动程序将控制权交给FreeBSD系统之后,BIOS中的硬盘映射方式就没有意义了。但是,启动系统的任务是由BIO S或使用BIOS调用的启动管理程序来完成的,BIOS必须能找到操作系统的启动部分才能载入相应的操作系统。这样就有两种有趣的情况发生,第一种情况下,虽然BIOS的映射数据可能被改动了,但是改动之后的数据中操作系统分区的初始位置没有变化,这样BIOS仍然能载入操作系统的启动部分,来启动FreeBSD。这种情况最常发生在让FreeBS D系统独占整个硬盘的情况时,这样操作系统的启动就基本不受BIOS的映射数据的影响了,这种情况就是传统的BSD的硬盘管理模式,硬盘中不存在Partition。

  另一个情况发生在FreeBSD分区的位置在1024柱面之后,由于BIOS的1024柱面限制,它不能引导 1024柱面之后的分区。因此给FreeBSD留的空间要位于1024柱面之内,才能使安装后的FreeBSD系统能够正常启动。在系统启动之后,FreeBSD就不再使用BIOS进行任何操作,则此时就可以处理1024柱面之后的硬盘了。在这种情况下,BIOS的硬盘映射能起到帮助作用,因为如果BIOS使用了LBA或其他方式重新映射了硬盘数据,每个硬盘分区就将保留在1024柱面之内,就不存在这个问题了。因此,如果大硬盘使用的是LBA等模式,就不存在启动问题,如果BIOS没有映射硬盘数据,就要注意分区的位置,以便系统能正确启动。但是,在硬盘上已有分区的情况下,不应该调整硬盘的映射数据,因为这将丢失已有的分区数据。

  因此如何处理分割分区就需要安装者仔细考虑。对于一个新系统,可以选择让FreeBSD独占整个硬盘或者保留一个小的DOS分区。让FreeBSD独占整个硬盘的好处是硬盘不受BIOS的影响,因此这个硬盘可以立即安装到其他 FreeBSD系统下,而不需要考虑不同BIOS的不同映射方式。但是保留一个小DOS基本分区也存在相当多的好处,因为Intel平台下的多数硬件配置和诊断程序为DOS程序,将这些配置程序保留在DOS分区内,便于更改硬件配置和诊断故障。具体如何选择依赖于安装者的考虑,一般建议保留一个DOS分区。

  对于在已安装有操作系统的硬盘上安装FreeBSD系统,处理分区就更需要小心。大多数预装DOS/Wind ows的个人计算机通常使用DOS基本分区和扩展分区占满了整个硬盘空间,没有空余的自由硬盘空间留给FreeBSD 。因此就需要将一个分区留给FreeBSD,就需要在安装之前把这个分区中的数据都进行备份。此外还需注意如果是要将扩展分区留给FreeBSD,就必须将整个扩展分区留给FreeBSD,FreeBSD不能在扩展分区中的某个逻辑分区上安装。如果使用者想保留已有分区和数据,情况就比较复杂了,有一些软件能够在不损失数据的条件下,更改已有分区大小,这样就能从现存分区中挤出空余空间来安装FreeBSD,这些软件有自由软件FIPS(在安装光盘中提供),商业软件PartitionMagic等。

  FIPS能够将FAT类型的DOS基本分区分割为两个分区,第一个分区保留原有数据,而可以使用FIPS分出的第二个分区安装FreeBSD。然而这种操作直接操作硬盘,具有非常大的危险性,如果操作失误,很可能导致分区错误及数据丢失。建议在FIPS操作之前,备份硬盘上的重要数据。此外,还应该首先使用磁盘整理工具来整理磁盘上的文件。长期使用计算机,使硬盘上的文件被零零碎碎的放在硬盘的不同位置上,因此必须将所有的文件都移动到硬盘的前面,以减少错误发生的可能性。微软的Defrag工具以及其他第三方厂商的工具,如Norton SpeedDisk,都提供了这个能力。

  Defrag程序不移动系统和隐藏文件,因此对于可能位于磁盘后部的系统和隐藏文件,必须在运行Defrag 之前使用微软的attrib命令去除这些属性(包括Windows的交换文件),由于有这些属性的DOS系统文件IO .sys和MSDOS.sys总是位于磁盘的前部,因此不需要对它们进行处理。运行Defrag不能使用 “Defr ag File Only” (只整理文件碎片)选项,因为该选项并不把所有的文件都移动到硬盘前部。

  运行了Defrag之后,最好使用Scandisk来检查一下是否存在磁盘错误,如果一切正常,并且分区表还没有占满(总计不到四个分区),就可以运行FIPS来分割DOS基本分区了。FIPS执行程序位于安装介质下tool s目录中,由于FIPS是一个DOS程序,直接访问硬盘,因此应该在DOS模式运行它。它在运行时能将原有分区表保存到软盘上,命名为RESTORRB.000(如果多次运行FIPS,文件名将依次增加为RESTORRB.00x),可以使用随FIPS一起提供的RESTORRB来恢复原有分区数据。

准备软盘
  常用的启动FreeBSD安装程序方式主要有三种,光盘启动、DOS启动和软盘启动。如果计算机的不支持光盘启动,并且没有安装有DOS系统或没有DOS启动程序fbsdbot.exe和kernel文件,那么就需要使用启动软盘启动。

  在安装介质的floppies目录中保存有启动软盘的镜象文件boot.flp,使用者可以在其他计算机中的 DOS或者Unix下制作出这张软盘。然而,在新版本下这个镜象文件是2.88MB的高密度软盘镜象,必须要求计算机支持2.88MB的软盘驱动器才可以,因此一般不使用这个镜像文件,它更常用来作为启动光盘的启动盘镜像。系统也提供了两个1.44MB的普通磁盘镜象文件kern.flp和mfs.flp,其中kerm.flp为系统内核,mfs. flp为将被读到内存中MFS文件系统中的root文件系统,一般需要制作这两个软盘,用来启动安装系统。由于磁盘镜像要占满整个磁盘,因此对软盘要求很高,软盘中不能有坏块。如果制作的软盘不能正常启动,最大的原因就是使用了非10 0%完好的软盘,

  制作启动软盘必须使用一个现存Unix或DOS系统。

  在DOS下,使用程序rawrite.exe或fdimage.exe(tools目录下)来将一个软盘镜象文件复制到软盘中。可以使用它来制作启动软盘、fixit软盘等。

E:\TOOLS:> FDIMAGE E:\FLOPPIES\KERN.FLP
  在FreeBSD或其他Unix中要使用dd命令制作启动软盘,然而要注意在不同的Unix下,软驱对应的设备文件名字是不同的,FreeBSD下为rfd0。

# dd if=/cdrom/floppies/kern.flp of=/dev/rfd0

本文作者:



相关阅读:
win2003服务器asp.net权限设置问题及解决方法
JS调用服务器时间的方法
Php Image Resize图片大小调整的函数代码
大大缩短Windows 7安装所需的时间
juqery 学习之三 选择器 层级 基本
CSS优化2-(常用CSS缩写语法总结)
php数组函数序列之array_splice() - 在数组任意位置插入元素
Sql Server 2005 默认端口修改方法
PHP数据库操作面向对象的优点
在jQuery 1.5中使用deferred对象的代码(翻译)
运行多个MYSQL服务器
IIS中ASP.NET连接SQL Server出错的解决方法
CSS入门教程:计算CSS盒模型宽和高
Apache的proxy指令
快速导航

Copyright © 2016 phpStudy |