在安装Linux的过程中,有一个步骤是决定如何划分硬盘。如果你已习惯那种将所有东西都放在同一个分区的操作系统,你可能会觉得此步骤似乎有点复杂。然而,将文件系统分散到多个分区(甚至是不同的磁盘)其实有许多好处。

1.系统考虑

在规划Linux的磁盘布局时,有几项因素需要考虑,包括:

磁盘的容量。
系统的规模。
系统的用途。
预期的备份方法与备份空间。

除了只读的文件系统(CD-ROM或共享的/usr/分区),Linux的大多数文件系统都应该保留一些可用的弹性空间。用于保存个人数据的文件系统(例如/home),应该要有足以满足用户所需的最大可用空间。但如果顾虑到磁盘实际空间,你可能必须设法在“文件系统的数量”和“可用空间容量”之间取舍,找出最能够有效利用磁盘空间的配置方法。

 

2.有限磁盘空间的规划方案

若磁盘空间有限,你可以减少文件系统的数量,让原本应该放在个别分区的文件系统共享同一块连续可用空间。比方说,假设你只有1GB磁盘空间来安装Linux,则应该尽量减少分区数量。以下是可能的划分方式之一:

/boot
50MB。用一个小型的/boot文件系统当第一分区,可确保所有内核映像文件的位置必定在磁盘的1024-cylinder之前。

/
850MB。用一个大的root分区来容纳/boot之外的所有东西。

swap
100MB。

就此例而言,由于整个root分区都位于1024-cylinder之前,所以/boot其实也可以直接并入root分区。

 

3.充裕磁盘空间的规划方案

在资源比较充裕的大型系统,其磁盘布局方式主要是以“功能性”作为基本考虑因素,像是备份方式、各文件系统的规模等。以一个具有100GB磁盘空间的文件服务器为例,假设它的主要用途是提供共享磁盘空间给局域网络上的用户(透过NFS或Samba),则我们应该将它的“系统软件”与“数据存储”空间分开。以下是可能的规划方式之一:

/boot
50MB。确保内核映像文件的位置必定在磁盘的1024-cylinder之前。

swap
1GB。文件服务器系统的内存用量相当大。

/
500MB(至少)。

/usr
4~8GB。用于存储系统程序。

/var
2~4GB。将日志文件(log file)放在专属分区,可在日志文件规模意外扩大到塞满文件系统时,避免影响到系统的稳定性。

/tmp
500MB。将临时盘在独立的分区,可避免在文件系统被塞满时影响到系统的稳定性。

/home
90GB。供所有用户用于存放数据的专属分区。

在实际操作中,重要的文件服务器会使用备份储媒(例如RAID 0、RAID 5)或是将/home放在具有硬件控制器的磁盘阵列上。

 

4.系统角色

系统担任的角色也会影响磁盘布局。举例来说,用于服务无磁盘驱动器工作站的NFS服务器的/usr、/home、/var的空间应该要比较充裕些;邮件服务器与网页服务器的/home与/var应该要有比较多的空间;而日志服务器只要让/var或/var/log有足够空间即可。

 

5.备份方法

备份方法也会影响磁盘分区的划分方式。例如,某些备份方法是以磁盘分区为备份单位,也就是说,列在/etc/fstab里的每个文件系统都会被当成个别的备份单位,所以这些文件系统的容量就不能超过备份储媒的存储能力。

事实上,“系统角色”与“备份方法”这两个因素有时候会互相影响。比方说,若你希望备份文件服务器的/home文件系统,但是备份储媒只能容纳32GB,则存放/home文件系统的分区就不应该超过32GB,除非你采用不以分区为单位的备份方法。

 

6.交换空间

在安装Linux的过程中,你会被要求设置一个swap分区。这个特殊的磁盘空间是让操作系统拿来作为主存储器使用,利用这种方法,内核可同时运行比主存储器容量更多的程序。

有一条古老相传的经验法则可帮助你决定交换空间应该设为多大:主存储器(RAM)的总容量的两倍。举例来说,若你的系统有512MB RAM,则交换空间至少要有1GB。当然,这只是经验法则,实际需要的交换空间取决于系统的用途、负载状况、同时运行的进程数量与程序规模,但基本原则是不低于主存储器容量的两倍。

 

7.一般性的划分原则

就某种程序上来说,如何规划分区算得上是一种艺术。你的经纶越丰富,就越懂得如何规划才算妥当。没有所谓绝对正确的规划方法,是否妥当,取决于规划结果是否能满足实际需求。这里只能提供一般性的指导原则供你参考:

1.保持一个小的root文件系统(/),将目录树的其余部分分散到其他分区。root文件系统受损的机会与其容量成正比,小型root文件系统比较不容易受损。

 

2.将/boot文件系统独立于一个小分区,而且该分区的位置一定要在1024-cylinder之前。

3.将/var独立出来。给它可容纳日志文件的足够空间,但不宜过多。日志文件轮替机制(rotation)会尽量保持所有文件的大小在合理范围内,并自动删掉过期的日志文件。独立的/var文件系统可避免轮替机制意外失效时,成长过量的日志文件排挤了系统其余部分所需的磁盘空间。

 

4.将/tmp独立出来。其容量依应用程序实际需求而定,一般而言,它应该要足以容纳所有用户同时活动时所产生出来的全部临时文件。

5.将/usr独立出来。其容量要大到足以应付重编译内核的需求。独立的/usr使得其他工作站可透过read-only NFS共享此文件系统。

 

6.在多人使用的系统中将/home独立出来。如果用量庞大,应该将它放在一个磁盘阵列子系统。

7.交换空间至少是主存储器容量的两倍大。如果主存储器容量不大(少于64MB),则应该让交换空间有三倍或四倍于主存储器的容量。