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目录下存放的就是所有硬件的设备文件名。

表中hda1sda1中的hs是用来区分接口类型的。

表中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在根目录下,因此文件会存放到第一块硬盘的第三个分区内。

转自:Linux系统分区_吮指原味张的博客-CSDN博客_linux分区

Logo

更多推荐