FreeBSD系统需要安装到硬盘中,最简单的情况下,整个计算机只运行FreeBSD一个操作系统,因此FreeBSD系统可以占满整个硬盘,但在更复杂的使用情况下,一个计算机上可以安装多个操作系统,因此同一个硬盘中需要共存多个操作系统。
不管是哪种情况下,安装之前必须做好规划,特别是在磁盘中有数据的时候,因为安装通常需要对磁盘进行重新处理,很可能丢失数据。所以只有进行安装规划,才能避免可能的数据丢失。因此,这就需要明确系统安装的目标:安装的目的硬盘及其分区。
1) 硬盘的命名FreeBSD下的硬盘是以驱动程序的名称来命名的,而不同的硬件需要不同的驱动程序,因而它们的名字也不同。
在 IBM兼容的个人计算机上使用的硬盘控制器有以下种类:
l 古老的 ST-506以及ESDI,当前已经很少人使用这些驱动器,只有在老版本FreeBSD才支持,驱动程序为wd,因此相应的硬盘按顺序分别为wd0,wd1等等;
l IDE和增强型IDE(EIDE),是当前最流行的个人计算机硬盘控制器,通常每台计算机接两个IDE控制器,每个控制器可以接两个设备(硬盘或光驱),分别为主设备和从设备。FreeBSD 3.x之前使用wd驱动程序支持IDE,新版本的FreeBSD系统使用ad驱动程序支持硬盘。第一个IDE控制器的主硬盘为ad0,第一个IDE控制器的从硬盘为ad0,第二个IDE驱动器的主硬盘为ad2,从硬盘为ad3;
l SCSI控制器,由于SCSI控制卡承担了大量的处理任务,降低了中央处理器的负载,更适合用做服务器和高性能工作站的磁盘驱动器。早期的SCSI控制器能接7个设备,而Wide SCSI控制器可以接15个设备,每个设备有一个对应的SCSI ID。FreeBSD采用驱动程序da来支持SCSI控制器之上的各种硬盘设备,SCSI硬盘驱动器也按检测到的顺序排列,从da0向后,依次排列。
l 除了通过 IDE和SCSI来访问硬盘之外,还可以通过专用的RAID控制器来访问硬盘设备,RAID控制器使得多个硬盘能表现为一个统一的存储设备——逻辑硬盘,并提供额外的速度、冗余等功能,已经成为高档服务器和存储系统的标准配置。然而,RAID控制器使用独立的驱动程序,因此,RAID控制器条件下的逻辑硬盘的命名将由该RAID控制器在FreeBSD下的驱动程序的名字决定,例如amr0等等,没有统一的名字。
在 FreeBSD 2.2.x版本中使用的SCSI驱动程序为与3.x版本不同,旧版本驱动程序使用的SCSI硬盘驱动程序为sd。
因此,经常遇到的磁盘名字通常是 ad0、da0,而wd0和sd0则为老版本所使用的名字,当前已经很少遇到。
2) 硬盘分区的命名当了解了 FreeBSD对硬盘的命名之后,进一步还需要了解FreeBSD对磁盘分区和它自己对磁盘的分割方法的命名。因为BSD Unix和个人计算机是由两个方向发展起来,最后融合在一起的,因此它们对硬盘的分割方法,命名方式差异较大,必须了解这些差异,才能了解系统安装的目标,避免不必要的数据丢失。
u 个人计算机磁盘分区在个人计算机中,每个硬盘可以分为四个磁盘分区,其分区信息存储在该硬盘前部的分区表中,而每个分区可以由不同的操作系统进行管理。常见的分区分为基本分区和扩展分区,又根据使用的不同文件组织格式,可以分为 DOS的FAT分区,FreeBSD的UFS分区、NT的NTFS分区,Linux的EXT2FS分区等。
FreeBSD通常按照分区在分区表中的顺序来标识这些分区,例如在磁盘ad0上的四个分区,FreeBSD系统分别称作ad0s1,ad0s2,ad0s3,ad0s4,值得注意的是,为了和DOS相一致,分区的序号从1开始,从s1到s4。而大部分情况下,Unix和C习惯上采用从0开始计数的策略。
除了基本分区之外,一个硬盘上还可以划分一个扩展分区,扩展分区与基本分区不同,它实际上不直接在上面存储实际数据,而是在上面再划分逻辑分区,这样又可以划分四个逻辑分区,这四个逻辑分区也可以使用不同的组织方式保存文件,例如 FAT、EXT2FS等,但是FreeBSD的UFS分区是不能位于逻辑分区之上的。
FreeBSD仍然按逻辑分区的顺序来标识这些逻辑分区,由于基本分区已经占据了s1到s4的位置,因此扩展分区上面的逻辑分区的顺序就从5算起,例如ad0上的逻辑分区为ad0s5,ad0s6,ad0s7,ad0s8。因此一个磁盘上最多只能有8个不同的分区同时存在。
u BSD Unix的Slice必须清楚的是,分区、分区表等概念是属于来源于个人计算机的概念,并非所有的计算机系统都认可这些概念。事实上, BSD Unix就采取另一种截然不同的方法去看待磁盘,形成了自己的管理硬盘和分区的方式了。
当 BSD Unix流行的时候,计算机都是专有系统,很少有用户在一个计算机上安装多个操作系统,也很少有用户频繁的从一种系统切换到另一种系统中,计算机系统通常启动之后就一直提供服务。因此,磁盘上只需要一种操作系统就足够了。这样,BSD Unix就要独占整个硬盘,但也会将磁盘进行必要的划分,以优化存储,这个时候个人计算机还没有出现,也没有磁盘分区的概念。
在 BSD Unix中,磁盘是一种顺序的设备,它使用Slice的概念来表示硬盘上的一个部分,一个Slice是硬盘的一个部分,具备一个起始位置一个结束位置,可以用作一个文件系统也可以用作一个交换空间。Slice的概念与个人计算机传统使用的Partition(分区)概念类似,因此也可以使用分区来称呼它。BSD方式的管理方法能管理多达8个Slice,BSD按字母顺序依次命名他们为ad0a,ad0b等。
按 BSD Unix的习惯用法,第一个标记为a的Slice,如ad0a用于根文件系统 “ / ” ,而ad0b用于交换空间,ad0c用于表示整个硬盘空间,ad0e用于/usr文件系统等。
u 兼容的表示方式然而 FreeBSD毕竟是运行在个人计算机平台上的操作系统,其他操作系统使用分区的磁盘管理方式,而BSD使用Slice,就必须采用一种折衷的方式,使得FreeBSD能和其他操作系统相互协作,否则安装FreeBSD就破坏其他操作系统,必然出现问题。
最终, FreeBSD采用了一种兼容的硬盘使用方式,将原本针对整个磁盘的Slice管理方式转变为管理一个分区。这样一来,每个FreeBSD系统将占用一个独立的UFS基本分区,这个分区与其他操作系统使用分区的方式相同,在分区内再使用BSD的Slice方式进行管理,这种方式就类似于DOS在扩展分区内分割逻辑分区的方式。
假设 FreeBSD使用了第三个分区ad0s3作为UFS分区,则在这个分区内划分的相应Slice就被称为ad0s3a,ad0s3b等,同样,第一个标记为a的Slice,ad0s3a缺省被用做根文件系统。
有些时候仍然可以使用传统的名字 ad0a来称呼ad0s3a,使用ad0b称呼ad0s3b,以BSD传统方式称呼这些Slice,系统能识别这种缩略形式,但条件是ad0s3应该是该硬盘上第一个UFS分区(或唯一的UFS分区),该硬盘上的其他UFS分区就不能使用这种缩略形式,而只能使用全称了。
由于 Slice和Partition都是用于分隔磁盘(或分区),以更方便的利用磁盘空间,为了简捷,可以将在UFS基本分区中划分的Slice,如ad0s3a,称作ad0s3分区的子分区。
3) 准备硬盘如果是在新硬盘中安装 FreeBSD,情况就简单的多,完全可以跳过以下部分,直接进入系统安装。
如果不是在新系统中安装 FreeBSD,安装系统之前还需要进行一些工作,例如需要备份相应硬盘上的重要数据。因为安装过程将直接操作硬盘,对硬盘进行分区和格式化(在Unix下称为建立文件系统),虽然在一定条件下安装者能够不破坏原有的数据,但是由于存在误操作的可能性,因此建议在安装之前对该计算机上的所有重要硬盘数据做一次完整备份。这些数据的备份任务要使用计算机已经安装好的操作系统来完成。
然后需要确定将系统安装在何处, FreeBSD必须独占一个基本分区,要保留出自由空间就行了。硬盘上的自由空间包括两个含义,一是分区表中的位置上的空间,分区表的四个位置没有占满,另一个是硬盘空间,现有的分区没有占满硬盘的所有空间。
只要保留出可供 FreeBSD安装的自由空间,其余任务就可以保留给FreeBSD的安装程序本身来完成了。
然而,如果硬盘上的数据都不再重要的话,安装程序本身能删除现有分区,并重新分割硬盘,而不需要额外的处理。
u 与其他操作系统的协同如果要安装的硬盘上只需要 FreeBSD一个系统,那么就不需要过多的考虑分区问题,否则,在进行磁盘分区时就需要注意。避免FreeBSD创建的磁盘分区,被此后DOS及其他操作系统创建的磁盘分区覆盖,出现不协调或重叠问题。
发生这样问题的主要原因是: BIOS会对磁盘参数进行重新映射。而硬盘映射数据不一致的问题,根源在于个人计算机对硬盘的理解。
个人计算机使用柱面、磁道和扇区的概念来理解硬盘上数据的位置,因此,对磁盘进行分区时,分区表记录的起始与结束位置都与柱面、磁道和扇区等数据有关。然而,这是一种非常早的磁盘参数管理方式,在 90年代中期就遇到了问题:由于硬盘技术的飞速发展,使得其中一个硬盘参数已经超过了BIOS能标示的最大值(仅支持1024柱面的限制)。
人们解决这个问题的办法是采用了一种兼容的模式,就是不放弃对老系统的支持,而是通过对这些硬盘参数的映射,将这些参数的逻辑值告诉操作系统硬盘。就是一来,同一个硬盘,柱面、磁道和扇区是一定的,但可以使用几种不同的映射方式,得到几种不同的硬盘逻辑参数,如果使用一种逻辑参数去对硬盘分区,那么使用另一个逻辑参数来访问,肯定会出现冲突问题。
这个问题是 IDE磁盘的问题,在SCSI磁盘中同样也存在。由于SCSI硬盘本身就是使用的线性地址,没有柱面、磁道和扇区的概念,因此进行逻辑转换是很自然的事情。
通常来讲,操作系统读取 BIOS来确定磁盘的映射参数,但FreeBSD是一个纯32位操作系统,对硬盘的访问是独立的驱动程序,它不去访问BIOS。因此,FreeBSD系统下通常是得到硬盘的物理参数,而不是逻辑参数。但如果磁盘上已经有分区存在的话,FreeBSD能从现存分区中获得硬盘的逻辑参数,FreeBSD这样做的目的是避免划分的分区覆盖原有的分区,保证数据的安全。
例如,在一个新硬盘上安装 FreeBSD系统,但又打算以后还安装DOS等其他操作系统,最好使用DOS程序fdisk.exe先划分出一个分区。这个分区的大小都没有什么意义,它只是用来给FreeBSD安装程序提示BIOS的硬盘数据映射方式的,否则FreeBSD系统在划分分区的时候,可能就与BIOS的映射方式不一致。由于这个分区只起到提示作用,可以在安装过程中删除,重新按照原有的考虑分割硬盘。
当然安装者可以进入 BIOS,记录下硬盘的柱面、磁道和扇区映射数据,在安装过程中手工更改映射数据设置。
Unix也将硬盘等存储设备理解为分为一个个块的简单线形设备,如果计算机上只有FreeBSD一种系统独占硬盘,FreeBSD只需要知道每个Slice的大小就行了,按块读取数据就可以了。
事实上硬盘映射方式没有多少意义,线性的表示方法更为合适,映射方式的主要目的是兼容以前的系统,因为以前的系统都是这么处理的,这样用来划分分区可以保证多个操作系统之间的协同。 FreeBSD本身并不使用任何BIOS调用来处理硬盘,而是使用自己的硬盘驱动程序。因此,只要启动程序将控制权交给FreeBSD系统之后,这些映射方式就没有意义了。
u 系统启动个人计算机启动操作系统的任务是由 BIOS或使用BIOS调用的启动管理程序来完成的,BIOS必须能找到操作系统的启动部分才能载入相应的操作系统。
因此,如果 FreeBSD分区的位置在1024柱面之后,由于BIOS的1024柱面限制,系统将不能正确引导,因此给FreeBSD保留的空间要位于1024柱面之内,才能使安装后的FreeBSD系统能够正常启动。在系统启动之后,FreeBSD就不再使用BIOS进行任何操作,则此时就可以处理1024柱面之后的硬盘了。
在这种情况下, BIOS的硬盘映射能起到帮助作用,因为如果BIOS使用了LBA或其他方式重新映射了硬盘数据,每个硬盘分区就将保留在1024柱面之内,就不存在这个问题了。
注意:在硬盘上已有分区的情况下,不应该调整硬盘的映射数据,因为这将破坏已有的分区分割方式。
u 在已有系统的硬盘上安装系统对于在已安装有操作系统的硬盘上安装 FreeBSD系统,处理分区就更需要小心。大多数预装DOS/Windows的个人计算机通常使用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不能使用 “ Defrag File Only ” (只整理文件碎片)选项,因为该选项并不把所有的文件都移动到硬盘前部。
运行了 Defrag之后,最好使用Scandisk来检查一下是否存在磁盘错误,如果一切正常,并且分区表还没有占满(总计不到四个分区),就可以运行FIPS来分割DOS基本分区了。FIPS执行程序位于安装介质下tools目录中,由于FIPS是一个DOS程序,直接访问硬盘,因此应该在DOS模式运行它。它在运行时能将原有分区表保存到软盘上,命名为RESTORRB.000(如果多次运行FIPS,文件名将依次增加为RESTORRB.00x),可以使用随FIPS一起提供的RESTORRB来恢复原有分区数据。
- 上一篇:谷歌搜索营销业务代理商遭瓜分
- 下一篇:FreeBSD系统安装启动方式
- 推荐内容最近更新人气排行
-
- Solaris10下建立只有ftp权限和指定目录操作
- Freebsd下安装QQ方法(支持輸入法)
- aix下安装gcc编译环境
- solaris系统中查看进程的cpu占用率
- Freebsd系统安装防病毒软件clam
- Solaris批量增加用户方法
- 解决freeBSD下Enter full pathname of shell or RETURN for /bin/sh
- FreeBSD利用密匙让ssh自动登录
- Solaris 10安装SVN客户端
- FreeBSD系统中查看CPU信息
- 详解FreeBSD中的图形界面X系统
- 详解FreeBSD系统内核对象
- FreeBSD的X显示管理器
- FreeBSD用freebsd-update升级过程
- Freebsd一次性口令OPIE配置
- FreeBSD读写NTFS分区设置
- 详解FreeBSD中的GGC编译器
- Makefile文件示例
- Freebsd下设置程序随系统开机启动的方法
- FreeBSD安装工具sysinstall介绍