2023年11月26日发(作者:)

如何合理地给你的Linux系统分区

本文介绍Linxu常用分区挂载点常识以及桌面、服务器分区的推荐配置,当然这个配置是笔者从许多文摘中整

理出来的,分区大小这个话题是仁者见仁智者见智,欢迎大家一起交流这个话题,比如WEB服务、邮件服务、下

载服务等。

分区是什么?

分区就是硬盘格式化过程中的空间划分。当然是逻辑意义上的划分,不是真的叫你把硬盘拔出来用刀子划分。

硬盘分区后就有各种用途了。把分区想象成两个不同的配置过程。分区很方便因为它起到了一种“沙盘式”的作用。

(笔者:沙盘,差不多就算虚拟的概念吧,真实的操作不受影响)如果你有个1TB的硬盘,分成两个区,一个250GB

一个750GB,这样你在这个分区的操作不会影响到另一个分区,反之亦然。你可以把这个分区在网上共享,而不必

担心另一个分区也会被共享出去。一个分区可以装上让木马、病毒肆虐的Windows系统,另一个可以装上过时的打

满安全补丁的Linux系统。二者不会相互影响,除非你把两个分区都搞坏了,或者你的硬盘真的报废了。

另一个分区的好处是,你的分区可以有各种各样的不同文件系统。文件系统就算把硬盘格式化成系统可以读写

操作的一种“表”结构。你只有一个硬盘?没问题啊。你还是可以在一个硬盘上安装不同的系统。省的再买个硬盘

了。

虽然文件系统很多种,但分区类型只有三种:主分区,扩展分区,逻辑分区,其中逻辑分区是在扩展分区中的。

一个硬盘只能有最多四个主分区,这是因为主引导记录的限制。这个只跟硬盘有关,跟操作系统是什么没有关系。

主引导记录告诉机器从哪里启动系统,所以一般来说主分区是安装系统的。但如果你想要多个分区怎么办?这就是

扩展分区的用途了。扩展分区就是其他逻辑分区的容器。你可以在里面放任意多的逻辑分区。(笔者:说是无限多

个,其实还是有限的,至少不能超过你硬盘的大小,而且据我所知是125个,27次方?)

既然扩展分区这么给力,那干嘛不用扩展分区呢?因为你不能从扩展分区启动系统。当然现在牛人很多,是有

法子的。但最好的方法就在事先就准备用主分区装系统。而且分区如何标识也是跟分区的类型有关的。先是主分区

而后再标识逻辑分区。这样的话,如果你在系统间切换就会引起盘符错乱的问题,以后添加或是删除分区也会出现

这个问题。

Linux中的挂载点

Windows系统下的分区很明了,一个分区就是一个盘符。如果有可以兼容的文件系统,系统也可以读写那个分

区。如果是不兼容的文件系统,Windows就忽略这个分区或者提示你格式化。Linux所有类似Unix却不是这样。

Linux就是把所有的一切都放到一颗“树”下。如果你有另外的分区或者硬盘,它们就会被“挂载”到枝干的

子目录中,像是/media/mnt。这个子目录就是所谓的挂载点了。 这个方法跟Linux的“树”概念更好地融合在一

起。你可以把分区挂载到任意的子目录中。Windows就不是这么简单了,一个新的分区就是另外的一个盘。而且

作者:JeeChou 1 / 5 Linux系列

Linux原生支持的文件系统比Windows多得多啊。

还记得硬盘只能有四个主分区吗? 有个牛人安装了145个系统这个是怎么搞的?道理很简单,你一个主分区

挂载/boot,里面安装启动引导程序像GRUB或者LiLo,起到引导系统的作用,然后再把扩展分区里的那么多个系

统启动起来。

我们该如何分区

一般的Linux系统分区是这样的:

12-20 GB 给系统的分区,挂载为/(叫做根分区)

一个比较小的分区用来扩大内存,挂载为swap

一个比较大的用来存储个人数据的分区,挂载为/home

分区大小具体要根据你的需求和情况而定。一般是从swap分区开始,如果你要做很多多媒体编辑或者你的内

存比较小,那swap分区就该大一点。如果你的内存足够大,甚至可以不用swap分区。但是有些Linux发行版在待

机和休眠时会因此出现问题。swap分区大小的原则是根据你的内存大小而设置,一般就是内存的1.52倍大。

且最好把swap分区放在硬盘的最前面或者最后面以便读写。(笔者:如果只有一块硬盘,个人推荐还是放在最后

面,最前面需要留给主分区做系统引导的)就算你要装很多软件,20GB的根分区也足够了。现在的Linux流行的是

ext3ext4的文件系统,这些文件系统有自动整理碎片的功能呢。这个功能要求最好有25%-35%的剩余空间最好,

不管剩下多少空间都划分给/home分区,来存储个人数据。这个和Windows下的“用户”文件夹很像,保存了软件

的设置,音乐,下载的文件,文档等等以及其他用户的文件。最好给这个/home独立挂载一个分区,这样不论你以

后是升级还是重装系统都不用备份你的个人数据了。是不是感觉比Windows方便多了。而且啊,你的软件设置,你

的系统界面相关的置都会保留。

如果你运行的是一台服务器或者媒体文件比较多,你最好多安装个硬盘。一块固态硬盘装系统是最完美的,最

32GB,另一块1TB2TB的硬盘开头就挂载swap分区,其余的就挂载/home。如果你对此比较了解的话,还可以

给其他目录独自挂载一个分区,像临时目录(temporary directory (/tmp), 服务器目录 (/var/www),软件目

(/usr),日志目录 (/var/log)

Linxu挂载点须知:

挂载点 主要功能 必须性

/ 安装Linux的最基本的挂载点,是必须的。

/boot 记录系统启动的信息,在这个目录下存放的都是系统启动时要用到的程序。

/home

类似于WindowsMy Documents文件夹,保存个人设置的内容,例如你有一个用户名

123的用户,那么就会有/home/123的文件夹,里面会有桌面,文档等。

用来存放不同程序执行时产生的临时文件。/tmp是一个文件大小经常变化的目录,但是

对于个人用户来说,里面内容很少,单独分一个区也没必要。但和 / 分区混在一起有总

觉得有一种“一滴鼻涕毁一锅粥”的感觉。推荐的解决方案是把原来的/tmp目录删除,

而做一个到/var/tmp目录的链接,就像系统本身就有的/usr/tmp目录一样。还有/root目录/tmp

大小也经常发生变化,推荐也把其删除,做一个/var/root的链接。这样,系统中所有大

小经常变化,易引起文件系统碎片的东西都归档到/var分区上。这就叫“烂也只烂一个

苹果”,以后可以只整理/var分区。

储存所安装的程序和系统的配置等文件,不同的发行版里具体内容可能也有些不同。同

时这也是Linux系统中占用硬盘空间最大的目录,用户的很多应用程序和文件都存放在/usr

这个目录下。

如果Linux用作服务器,那么通常需要安装大量的软件。 /usr/local

每一个Linux都有一个内核(Vmlinuz,我们在这个内核上添加可以完成各种特定功能

的模块,每个模块就体现在Linux中各个不同的目录上。当然,各个不同的发型套件,

其目录有细小的差别,但主要结构都是一样的。我们还要将Linux的功能模块和各个应/vmlinuz

用程序结合起来。这样才能是Linux系统为你服务。在/vmlinuz目录下存放的就是系统

的内核。

如果你是以超级用户的身份登录的,这个就是超级用户的主目录。 /root

2 / 5 作者:JeeChou Linux系列

/bin 下找到Linux常用的命令。在有的版本中还可以找到一些和根目录下相同的目录。是存

/sbin 这个目录用来存放系统管理员的系统管理程序。

/etc 各个配置文件和子目录。我们要用到的网络配置文件,文件系统,X系统配置文件,设

显而易见,bin就是二进制(binary)英文缩写。在一般的系统中,你都可以在这个目录

放标准系统实用程序的。

这个目录是Linux系统中最重要的目录之一,在这个目录下存放了系统管理时要用到的

备设置信息,设置用户信息等都在这个目录下。

dev是设备(Device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目

录中包含了所有Linux系统中使用的外部设备。但是这里并不是放外部设备的驱动程序。

这一点和我们常用的WindowsDOS操作系统不一样。它实际上是一个访问这些外部设

备的端口。我们可以非常方便地去访问这些外部设备和访问一个文件、一个目录没有任

何区别。例如:我们在系统中键入:cd /dev/cdrom我们就可以看到光驱中的文件了。同

理,我们键入:cd /dev/mouse就可以看看鼠标的相关文件。在这个目录下,有一个null

设备,这个东西本身没有任何意义。如果你向这个目录写入文件或内容,他们统统有去

无回。

这个目录在你刚刚安装系统的时候是空的,你可以将光驱文件系统挂在这个目录下。例

如:mount /dev/cdrom/cdrom

这个目录在一般情况下也是空的,你可以临时将别的文件系统挂在这个目录下。 /mnt

lib是库(Library)英文缩写,这个目录是用来存放系统动态连接共享库的,几乎所有的

应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,/lib

一旦发生问题,系统就不能工作了。

这个目录大多数情况下都是空的,但是如果你正在工作突然停电,或是没有正常方式关

机,在你重新启动机器的时候,有些文件就会找不到应该存放地方,对于这些文件,系/lost+found

统将他们放在这个目录下,就像为无家可归的人提供一个临时住所。

可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。 /proc

是给主机额外安装软件所摆放的目录。举例来说,FC4使用的是Fedora社群开发的软件,

如果想要自行安装新的KDE桌面软件的话,可以将该软件安装在这个目录下的意思。 /opt

过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。

主要是为了在内核启动之后能够判断哪些硬件驱动需要加载,哪些不需要,文件系统有

没有问题等等,最终使得根分区能顺利加载。在scsisata设备上启动,usb启动盘,

无盘服务器等都需要initrd来做判断,这样可以提高linux内核的通用性。所以大部分发

行版都是用initrd的。但是如果自己编译内核,不需要考虑通用性,可以将scsiata

usb等开机所需要的模块编译进内核,只要内核启动时那几个驱动程序随之一起启动,

那么就不需要initrd了。

Linux中添加新的外部设备时,只需为其添加对应的驱动程序即可。介绍另一种驱动

程序的编写方式,即采用MISC类设备。其实质也是一个字符设备。可将用户各种不同

的驱动设备类型合成到一种类型中,共用一个主设备号,通过不同的次设备号和设备节

点名来区分。可方便管理这些驱动模块。字符型的驱动设备模块在挂载时都要分配主设

备号、次设备号和创建设备节点名,在卸载驱动设备时还必须同时删掉设备节点名。通

过采用MISC类设备,在挂载设备驱动时无须再用到mknod命令分配主设备号、次设备

号和创建设备节点名,在insmodl挂载之后,只须mdev-s就能自动装配/dev目录下的设

备文件。

用来存放系统中经常变化大小的日期文件。系统的所有日志文件、PID文件、RPM数据

文件等。这些大小经常发生变化的文件都放在这个目录下。所以这个目录是最容易产生

碎片的。如果不能单独制定一个分区而和 / 混在一起的话,很容易弄乱 / 文件系统,/var

使系统性能下降,特别是一个多用户环境和对外服务的网站主机系统,更应该如此。对

于个人用户,这个分区大小在300~500M就可以了。

3 / 5 作者:JeeChou Linux系列

/dev

/cdrom

/initrd

/misc

/srv 用来存放Service服务启动所需的文件资料目录,不长改变。

/chroot

/cache 是为Proxy服务器准备的。如果不打算安装Squid Proxy服务器,不必创建/cache分区。

是为yDNS服务器、Apache服务器和其他需要改变根目录的服务器准备的。也是改变程

式执行时所参考的根目录位置。

备注:“√”代表必须,“〇”代表推荐,“—”代表可忽略。

分区实例:1~4为主分区或者扩展分区,5之后为逻辑分区(用于安装LinuxWindows双系统)

分区名 挂载点 文件系统 大小 作用

/dev/hda1 / Ext4 3G

/dev/hda2 /mnt/hda2 Ext4 3G

/dev/hda3 /mnt/hda3 NTFS 3G

/dev/hda5 /mnt/hda5 Ext4 4G

/dev/hda6 /mnt/hda6 NTFS 4G

包括/boot/bin/sbin/etc/usr/dev/lib以及如下空目录

和挂载点:/home/var/mnt/opt/proc/misc/initrd

主要是用来装一些实验性的系统,如新版的Linxu,而swap

/home可以和原来的那套系统共用。

Windows下显示为C盘。

存放音乐,电影等大而固定不变的文件。

Windows下显示为D盘,主要用来临时性的存放电影、音乐、

虚拟光盘镜像、GHOST镜像文件等。

存放我的文档,下载的软件,书籍,图片等。重装系统的时候

也不需要动这个分区,就算格式化也只格式化掉//var/swap

分区,其他分区上的内容都可以保留,在装系统的时候再挂装

到系统里。

编译大型软件用的临时分区。

系统中经常变化大小的日志文件。

交换分区。

/dev/hda7 /home Ext4 2G

/dev/hda8 /mnt/hda8 Ext4 1G

/dev/hda9 /var Ext4 400M

/dev/hda10 swap swap 160M

Linux单系统桌面、服务器分区推荐方案:

下面以80G独立硬盘安装Ubuntu为例,列一下简单的分区方案。

1、普通桌面用户推荐分区方案(示例:80G桌面用户)

挂载点 大小 说明

/boot 200M

/ 20G

/home 50G

swap 2G

挂载点 大小 说明

/boot 200M

/ 10G

/tmp 2G

/var 2G

/usr 10G

/home 50G

swap 2G

挂载点 大小 说明

/boot 200M

/ 10G

/tmp 2G

/var 5G

/usr 10G

作者:JeeChou 4 / 5 Linux系列

余下空间

适用于内存为768~1024M的机器

要安装一些常用软件

余下空间

适用于内存为768~1024M的机器

系统安装程序软件使用

2、服务器用户推荐分区方案一(示例:80G硬盘WEB服务器用户,用户程序与系统程序合用usr

3、服务器用户推荐分区方案二(示例:80G硬盘WEB服务器用户,用户程序与系统程序分用optusr

/opt 10G

/home 35G

swap 2G

用户安装程序软件使用

余下空间

适用于内存为768~1024M的机器

大数据库一般要加大/usr挂载点

多用户、下载类、多储存文件等要加大/home挂载点

文件小,用户多要注意/tmp/var挂载点大小

Linux分区结构化

本人开始部分就已经提到,分区主要分:主分区、扩展分区、逻辑分区三种,那么如何让结构合理化,请继续

往下阅读。对于新手而言,可能会注意到之前的分区实例(用于安装LinuxWindows双系统)中为什么没有/dev/hda4

这个分区名。因为上述例子中,我们可以看到主分区有3个,从hda1~hda3,扩展分区有hda5~hda10,此硬盘没有

主分区4,所以也没有显示住分区hda4,但逻辑分区不可能从4开始,因为那是主分区的位置。

还有些新手疑惑hda到底代表什么?这是硬盘设备(包括移动存储设备)Linux或者其他类Unix系统的表示。

IDE硬盘在Linux或者其他类Unix系统的一般表示为hd*,比如hdahdbhdc等。有时我们只有一块硬盘,在操

作系统中看到的确实hdb,这与硬盘的跳线有关。另外hdc大多数表示光驱设备,如果有两块硬盘,大多是hda

hdbSCSISATA硬盘在Linux通常也是表示为sd*,比如sdasdb等等。

1)分区结构之一:四个主分区,没有扩展分区

【主丨分区1【主丨分区2【主丨分区3【主丨分区4

这种情况,如果想在一个磁盘上划分五个或五个以上分区,这样就行不通了。

2)分区结构之二:三个主分区,一个扩展分区

【主丨分区1【主丨分区2【主丨分区3【扩展分区】

3)分区结构之三:三个主分区,一个扩展分区,四个逻辑分区

【主丨分区1【主丨分区2【主丨分区3【扩展分区】【逻辑丨分区5【逻辑丨分区6【逻辑分区7【逻辑

丨分区8

4)最不合理的分区结构:扩展分区在两个主分区之间或留有空白未分区空间

【主丨分区1【主丨分区2【扩展分区】【主丨分区4【空白未分区空间】

后记

把分区基础写出来,主要是想让新手兄弟知道什么是合理化的分区结构,如果把硬盘分区规划好了,也为学习

省却了不少麻烦。

作者:JeeChou 5 / 5 Linux系列