开始linuxfenqu/ target=_blank class=infotextkey>linux分区之前,要掌握下Linux的文件结构,然后对Linux分区建议全面讲述,Linux是由开发工具软件、编辑器软件、CPU图形用户界面、网络工具软件等组成的一个完整的软件包。Linux具备现代一切功能完整的UNIX系统所具备的全部特征,其中包括真正的多任务、虚拟内存、共享库、优秀的内存管理以及TCP/IP网络支持等。
一,Linux的文件结构、挂载与分区建议
Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构。最顶部的为根目录,即/。(/小一点无所谓,据说至少2G,我也没有试验过)。
在根目录下,分为多个子目录,包括/bin、/boot、/dev、/etc、/home、/lib、/media、/mnt、/opt、/proc、/root、/sbin、/tmp、/usr和/var等。这些目录的具体作用在这里就不做详细介绍了。
磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。显然,根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。
上面还提到,Linux分区交换也需要独立使用一个分区,因此,安装一个Linux至少需要两个分区。(事实上,只使用一个分区安装Linux也是可能的,而且,如果电脑的物理内存足够大,交换分区并不是必须的)在不同的linux安装教程中,不同的作者阐述了各种不同的分区建议,本文也不例外。以下的一些建议,有很多都是个人的喜好,因此读者并不一定要完全按照这些建议进行分区,选择最适合自己的方案才是最好的。
原则上/ 和/home基本上最好是要单独挂载两个分区
最顶部的为根目录,即/。(/小一点无所谓,据说至少2G,我也没有试验过)。
/boot:在很多老旧的教程中,都会让用户在/boot目录上挂载一个大小为100MB左右的独立分区,并推荐把该/boot放在硬盘的前面,即1024柱面之前。事实上,那是Lilo无法引导1024柱面后的操作系统内核的时代遗物了。
当然,也有作者宣称,独立挂载/boot的好处是可以让多个Linux共享一个/boot。其实,无论是基于上述的哪种理由,都没有必要把/boot分区独立出来。首先,grub可以引导1024柱面后的Linux内核;其次,即使是安装有多个Linux,也完全可以不共享/boot。
因为/boot目录的大小通常都非常小,大约20MB,分一个100MB的分区无疑是一种浪费,而且还把硬盘分的支离破碎,不方便管理。另外,如果让两个Linux共享一个/boot,每次升级内核,都会导致Grub的配置文件冲突,带来不必要的麻烦。
而且,不独立/boot分区仅仅占用了根目录下的大约20MB左右的空间,根本不会对根目录的使用造成任何影响。值得注意的是,随着硬盘容量的增大,无法引导Linux内核的现象再次出现,这也就是著名的137GB限制。很遗憾,Grub是无法引导137GB之后的分区中的Linux内核的。
如果你不巧遇到了这样的情况(我就遇到过),你就要考虑把/boot独立挂载到位于137GB前方的独立分区中,或者索性就把 Linux分区都往前移动,让根目录所在分区位于137GB之前。
/usr/local:建议把/opt、/usr或/usr/local独立出来的教程,基本上也是非常老的了。使用Ubuntu时,我们一般都是使用系统的软件包管理器安装软件,很少自己编译安装任何软件。而建议独立/usr、/opt、/usr/local的理由无非是为了重装系统时不再重新编译软件而直接使用早先编译好的版本。因此对于大多数的普通用户来说,这个建议通常是没有意义的。
/var:建议把/var和/tmp独立出来的教程通常是面向服务器的。因为高负载的服务器通常会产生很多日志文件和临时文件,而这些文件又经常改变,因此把/var和/tmp独立出来,有利于提高服务器的性能。
我们使用Ubuntu是做桌面的,甚至有些用户根本从来就没有关心过系统日志这玩意儿,所以根本没有必要独立的为/var和/tmp挂载分区。
/home:(相当于windwos的My document)这可能是唯一一个值得独立挂载Linux分区的目录了。
/home是用户文件夹所在的地方。一个用户可能在/home/user中存放了大量的文件资料,如果独立挂载/home,即使遇到Ubuntu系统无故身亡的尴尬局面,也可以立刻重装系统,取得自己的文件资料。
因此,/home是唯一可以考虑独立挂载Linux分区的目录。
SWAP:物理内存小于等于512MB,建议分配实际物理内存容量2倍大小的SWAP;物理内存大于512MB,建议分配与物理内存等容量的SWAP。
看了上面的一些介绍,你可能已经知道我的建议了:
boot、/ 、/home、swap、 原则上分3-4个部分即可。
一般来说,Linux至少要有两个分区,分别是/和swap,但这种分法不太科学,一旦重装系统,硬盘中的数据就很难保留了,所以建议把/usr和/home分出来,以下是我80G硬盘1G内存的分区方案:
/ ---20G,swap ---1.1G,/usr ---22G,/home ---37G
但现在觉得“/”20G有点浪费,根本用不了那么多,所以建议大家分个10G或15G就行了,其余的都给/home。如果系统不同常安装软件,/usr分给20G左右就行了。需要注意的是,“/”和“swap”这两个分区是一定要分的,还有即使你内存很大,也一定要分一个swap。
附Linux各分区作用,大家可以参考一下:
/ 根目录,建议在根目录下面只有目录,不要直接有文件。
swap 交换空间,相当于Windows上的虚拟内存。
/boot 包含了操作系统的内核和在启动系统过程中所要用到的文件,建这个分区是有必要的,因为目前大多数的PC机要受到BIOS的限制, 况且如果有了一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小约在60MB—120MB之间。
/home 用户的home目录所在地,这个分区的大小取决于有多少用户。如果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。
/tmp 用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。这样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操作,所以它通常会比其它的部分更快地发生问题。这个目录是任何人都能访问的,所以需要定期清理。
/usr Linux系统存放软件的地方,如有可能应将最大空间分给它。
/bin
/usr/bin
/usr/local/bin 存放标准系统实用程序。
/srv 一些服务启动之后,这些服务所需要访问的数据目录,如WWW服务器需要的网页数据就可以放在/srv/www中。
/etc 系统主要的设置文件几乎都放在这个目录内。
/lib
/usr/lib
/usr/local/lib 系统使用的函数库的目录。
/root 系统管理员的家目录。
/lost+found 该目录在大多数情况下都是空的,但当实然停电或者非正常关机后,有些文件临时存入在此。
/dev 设备文件,在Linux系统上,任何设备都以文件类型存放在这个目录中,如硬盘设备文件,软驱、光驱设备文件等。
/mnt
/media 挂载目录,用来临时挂载别的文件系统或者别的硬件设备(如光驱、软驱)。
/opt 用于存储第三方软件的目录,不过我们还是习惯放在/usr/local下。
/proc 此目录信息是在内存中由系统自行产生的,存储了一些当前的进程ID号和CPU、内存的映射等,因为这个目录下的数据都在内存中,所以本身不占任何硬盘空间。
/sbin
/usr/sbin
/usr/local/sbin 存放一些系统管理员才会用到的执行命令。
/var 主要放置系统执行过程中经常变化的文件,例如缓存(cache)或者是随时更改的登录文件(log file)。
/var/log 系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日志文件出现了问题,它们也不会影响到操作系统的主分区
转载
开始分区
ok, 我就这样看,首先分一个100M的主分区出来,挂载boot。grub启动时需要的文件都在/ b o o t 目录。这样就算工作分区出了问题,只要这个分区没有问题,同样可以启动。因此最好的办法就是专门为根文件分一个区,大小一般最多64M,我为了保险给了 100M。
之后的分区全部以扩展分区形式存在,扩展分区下很多逻辑分区。
首先创建一个交换分区,大小是实际内存的一倍到两倍大。如果你的内存和我一样是1G,就划1G好了。事实上基本用不到这么大。分区格式记着改成linux-swap。
然后创建一个尽量大的分区,给/usr,因为这里存放有大部分的系统软件,包括X Server等图形界面程序。我分了20G。
接下来创建/home的挂载分区。考虑到我的工作文档比较多,源代码和程序也经常放到这里,所以给了10G。
其他的诸如tmp,var等来说,单用户工作机是不用考虑的。当然不知道我的机器以后会不会有服务器应用,我还是给var分了2G的空间。
其他空间就全部挂载给/。虽然一般2G就够了,但是多多益善么。
注意:很多时候,如果你使用了ubuntu光盘自带的安装工具分区,会出现很多问题。如果遇到问题过不去,推荐两个办法:
1 在live CD的环境中,在终端下直接用sudo fdisk /dev/xxx
来分区,然后w保存后reboot,之后再进安装工具,手工编辑注册表时它认得的就是你编辑的分区表,不用修改直接下一步即可。
2 你也可以同样用livecd的fdisk分好区后,用光盘上的livecd
installer程序,在命令行下安装。不过这个安装程序只需要你挂载/和swap。那么其他分区怎么办呢?可以先在分好,也可以安装完系统再分。如果将其他分区挂载到希望的目录下?举个例子。如果你想把/
home/user挂载到新的sda8分区下,可以这样做:
首先,将/dev/sda8 mount到 /mnt/sda8中。如果没有这个目录就自己mkdir。
然后,cp -R /home/user/* /mnt/sda8/user ,和cp -R /home/user/.* /mnt/sda8/user
最后修改/etc/fstab,增加一行/dev/sda8 /home ext3 defaults 0 2(参数自己确定)即可。
- 双Linux分区方案
/:至少3GB,建议根据实际情况,尽可能多分一些,特别是喜欢玩各式软件的读者。
SWAP:物理内存小于等于512MB,建议分配实际物理内存容量2倍大小的SWAP;物理内存大于512MB,建议分配与物理内存等容量的SWAP。
- 三Linux分区方案
/:至少3GB,建议根据实际情况,尽可能多分一些,特别是喜欢玩各式软件的读者。
/home:根据实际需要分配1GB~100GB或更多,酌情处理。SWAP:物理内存小于等于512MB,建议分配实际物理内存容量2倍大小的SWAP;物理内存大于512MB,建议分配与物理内存等容量的SWAP。
说明:
有些老旧的教程中建议把Linux安装在主分区中,或在/boot下挂载一个主分区。事实上,这也是不需要的。
Linux的所有分区都可以位于逻辑分区中。所以,不要再被这些老旧的教程所误导了,不要再浪费有限的主分区了,放心地把Linux安装在逻辑分区中吧。