每个硬盘有一个64字节的分区表,用来记录硬盘的分区信息,每个分区信息的大小是16字节,因此一个硬盘最多可以分成4个主分区。
其中一个主分区可以替换为扩展分区,扩展分区可以继续划分分区,这些分区叫做逻辑分区。
在Linux中,对硬盘和分区的命名与Windows大相径庭。
机器的第一个硬盘称为sda,
第二个硬盘称为sdb,
第三个硬盘称为sdc,
......,以此类推。
第一个硬盘的第一个主分区称为sda1,
第二个主分区称为sda2,
第三个主分区称为sda3,
第四个主分区称为sda4,
第一个逻辑分区称为sda5,
第二个逻辑分区称为sda6,
......,以此类推。
不论前面是否有4个主分区,第一个逻辑分区总叫做sda5。
分完区的硬盘仍然不能正常使用,需要格式化后才能使用。
没有格式化的分区就好比没有货架的仓库,货物只能杂乱无章地堆放在那里,因此,有必要在仓库中放置货架。对分区来说,就是格式化,通过格式化来规定数据的存放方式。
格式化,其实就是在创建文件系统。Windows下常见的文件系统类型是NFTS和FAT32,Linux下常见的文件系统类型是EXT4和SWAP。
Linux文件系统的组织方式十分独特,没有Windows盘符的概念。Linux整个目录是一个树形结构,所有格式化的分区都挂在树的某个分支上,根分区就是挂在根目录上,我们可以通过根目录来访问根分区。
Linux中有个特别的也是必须要有的分区,叫交换区,也叫SWAP分区。当Linux中运行的程序需要的内存比电脑的物理内存还要大时,解决方案就是把存不下来的东西转移到硬盘的虚拟内存中去。另外,也可以将很久不活动的程序转移到虚拟内存中去,等需要的时候再取回。
在Linux中,SWAP分区是专门划分给虚拟内存用的。前面我们讲过,根分区挂在在根目录下,但SWAP分区不能挂在某个目录下,因此在文件目录中我们是看不到SWAP分区的。
至于SWAP分区到底应该划多大,redhat公司给给出了如下建议:
| 计算机系统实际内存大小 | SWAP分区划分大小 |
|---|---|
| ≤4G | ≥2G |
| 4G-16G | ≥4G |
| 16G-64G | ≥8G |
| 64G-256G | ≥16G |
下面是一个非常简单的硬盘分区,只有两个分区,一个是根分区,另一个是SWAP分区。本例中,硬盘内存有20G,所以给SWAP分区划分4G大小的空间。
| 设备 | 大小(MB) | 挂载点 | 类型 |
|---|---|---|---|
| sda1 | 4096 | swap | |
| sda2 | 16383 | / | ext4 |