Linux系统分区
Linux系统中,系统分区主要分为四步。首先对硬盘进行,然后对每个分区分别进行,接着Linux系统给每个硬件(包括磁盘的分区)自动进行的定义,最后给每个分区分配。
Linux系统中,系统分区主要分为四步。
1)首先对硬盘进行分区。
2)然后对每个分区分别进行格式化(创建文件系统)。
3)接着Linux系统给每个硬件(包括磁盘的分区)自动进行设备文件名的定义。
4)最后给每个分区分配挂载点(挂载文件系统)。
1、磁盘分区
磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分。碟盘一旦划分成数个分区,不同类的目录与文件就可以存储进不同的分区。
简单来说,磁盘分区的目的就是为了更快捷更方便的存储数据与使用数据。
1.1、两种分区表格式
首先说明,无论是Linux系统还是Windows系统,都有这两种分区表格式。换句话说,磁盘分区是在操作系统的底层,先要有磁盘分区,再安装操作系统。
1.1.1、MBR分区表
MBR(Master Boot Record,主引导记录分区表)。
MBR分区表,是最古老的分区表。最大支持2.1TB硬盘,最多支持4个分区(每块硬盘)。即如果给电脑装上超过2.1TB的硬盘(比如3TB),那么电脑将只能识别2.1TB的存储空间,剩下的1TB将不能使用。
1.1.2、GPT分区表
GPT(GUID Partition Table,全局唯一标识分区表)。
GPT支持9.4ZB的硬盘,理论上支持的分区数没有限制,但Windows限制128个主分区。
1.2、分区类型(MBR分区表)
1)主分区:最多只能有四个。
2)扩展分区:每块硬盘最多只能有一个;主分区加扩展分区最多有四个;不能写入数据,不能格式化,只能包含逻辑分区。
3)逻辑分区
为什么除了主分区之外,还要增加扩展分区和逻辑分区呢?本质上是因为,如果只有主分区的话,那么MBR最多只能分四个区,如果我们需要更多分区的话,就需要进行改进。
扩展分区以及逻辑分区的组合即可以实现增加分区的效果,虽然扩展分区加主分区最多只能有四个,但是扩展分区内部可以分成若干个逻辑分区,这就实现了超过四个的分区数量。
接下来举两个例子来解释分区类型。
第一个例子是Windows系统的磁盘分区。
如下图所示,D和F都是主分区,E是扩展分区下的一个逻辑分区。如果需要更多分区的话,可以先压缩E卷获得空间,然后在扩展分区内再新建两个及以上的逻辑分区。
第二个例子是衣柜。更直观一些。
最后要注意的是,一块儿硬盘如果要安装操作系统,则必须要留有一个主分区,因为操作系统只能安装在主分区内,扩展分区和逻辑分区都不行。
2、格式化
首先纠正一下错误的观点,格式化的目的不是为了清空数据,格式化的目的是为了写入文件系统,附带把数据清空。并且,格式化针对的是硬盘的各个分区,而不是硬盘。
格式化(高级格式化)又称逻辑格式化,它是指根据用户选定的文件系统(Windows中:FAT32、NTFS、exFAT等;Linux中:EXT2、EXT3、EXT4、XFS等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。
文件系统有很多种,简单来说,越先进的文件系统,支持的分区容量越大、支持的单个文件大小越大、读写速度越快、越安全。
举个通俗的比喻,一块硬盘就像一个块空地,文件就像不同的材料,我们首先得在空地上建起仓库(分区),并且指定好(格式化)仓库对材料的管理规范(文件系统),这样才能将材料运进仓库保管。
文件不会受所在分区的文件系统影响,就像同样是汽车轮胎在A仓库可能直接堆在地上,而B仓库则会挂在墙上,仅仅是放置和管理方法不同而已,因此,在不同文件系统的分区的文件可以随意在分区间移动,内容不会因此产生任何不同。
3、设备文件名
最开始的Linux系统,是没有图形用户界面的,因此为了找到硬件设备,需要给每个设备定义一个设备文件名。
再直接一点来说,在Windows系统中,系统分区的最后一步是分配盘符,由于有GUI,因此在硬盘分区格式化后,可以直接右击分区,分配盘符了。但是在Linux中,由于没有GUI,我们就需要一个中介来找到硬盘的每个分区,然后给硬盘的每个分区分配挂载点(类比于Windows系统中的盘符),这个中介就是硬件的设备文件名。
每个硬件有了设备文件名之后,系统就能够索引到所有的硬件设备了。
如下是常用的设备文件名。
其中,硬盘分区的设备文件名如下表所示。
硬件接口 | 设备文件名 |
---|---|
IDE硬盘接口 | /dev/hda1 |
SCSI硬盘接口、SATA硬盘接口、USB接口 | /dev/sda1 |
表中/
表示Linux的根目录,是Linux的最高目录。在根目录下有一个一级目录dev
,全称为device,在dev
目录下存放的就是所有硬件的设备文件名。
表中hda1
和sda1
中的h
和s
是用来区分接口类型的。
表中sda1
中的a
指的是第一块硬盘,以此类推,第二块硬盘对应的设备文件名就是sdb1
。
表中sda1
中的1
表示的是第一个分区,也就是说这块硬盘的第二个分区对应的设别文件名就是sda2
。
但这里要注意的是,对于MBR分区表来说,设备文件名中的1、2、3、4
只能分配给主分区和扩展分区,无论主分区或扩展分区有没有全部用完1、2、3、4
,逻辑分区都只能从5
开始,如下图所示。
举几个例子:
-
/dev/sda2
:第一块SATA接口硬盘的第二个主分区。 -
/dev/sdb5
:第二块SATA接口硬盘的第一个逻辑分区。
最后说明,在Linux系统中,设备文件名是自动识别的,也就是说,当一个硬件设备接入电脑后,Linux系统扫描后,就会自动给硬件设备分配设备文件名。
4、挂载点
在Linux系统中,要使用已存在的空目录作为挂载点。
这一点与Windows是有所区分的,Windows中是使用英文字母作为盘符符号的。
可以这样理解:挂载点与盘符的作用基本一样,挂载点就是进入分区,访问分区内数据的入口。即挂载点可以当成盘符来理解。
但要记住,在Linux系统中,只有挂载点一说,没有盘符一说。
将设备文件名与挂载点连接起来的过程就称为挂载。
4.1 用哪些已经存在的空目录作为挂载点?
首先,有三个必须存在的分区:
1)/
:根分区。根分区是Linux的最高级别的目录,如果未分配根分区,就无法存储数据。
2)swap
:交换分区。可以将其与虚拟内存进行类比,即当真实内存不够时,使用这部分分区来顶替内存,提升计算机性能。此分区是给内核使用的,普通用户是无法向其写入数据的。分配swap
分区时:如果真实内存小于4GB,swap
为内存的两倍;如果真实内存大于4GB,swap
应和内存一致;实验环境(无客户端访问,服务器压力很小的情况),swap
应不大于2GB。
3)/boot
:启动分区。如果没有增加/boot
分区的话,系统有可能出现开不开机的情况。首先明确,系统在启动时需要释放一部分文件,占用几十兆的空间才能启动成功。当系统只有/
和swap
两个分区的话,系统写入数据时会只向/
分区内写入数据,当/
分区写满数据时,由于系统在启动时无法释放文件,因此就会出现无法开机的情况。因此,一定需要增加/boot
分区。
其次,根据服务器的不同需求,可以增加不同的分区:
1)/home
:用于文件服务器。
2)/www
:用于Web服务器。
理论上,所有的空目录,包括新建的目录都可以作为挂载点。但是/bin
、/etc
、/lib
等目录不能作为挂载点。
4.2、文件系统结构图
从Linux上来看,根目录是最高目录,其余目录为根目录的子目录,如下图所示。
但从硬盘来看,如果给硬盘的某个分区挂载到某个目录上,那么向这个目录中存放文件时,相当于向与目录连接的硬盘分区内存放文件。
如下图所示,将/dev/sda1
挂载到目录/boot
,将/dev/sda2
挂载到/home
,将/dev/sda3
挂载到/
。
1)当我向/home
目录下写入文件时,虽然在Linux系统结构中,/home
在根目录下,但此文件会存放到第一块硬盘的第二个分区内。
2)若向/etc
目录下写入文件,由于/etc
并未挂载硬盘,又/etc
在根目录下,因此文件会存放到第一块硬盘的第三个分区内。
更多推荐
所有评论(0)