Linux 基础一(系统分区、格式化与挂载)

时间:2021-09-11 15:24:08

1.Linux 基础之系统分区与格式化

讲分区之前,先说一下硬盘结构:硬盘(机械)的横截面是一个圆,并且被分成等大小的扇区,每个扇区的大小是 512Byte,其中有 446Byte 被用来存储启动信息,剩下的 64Byte 用来进行分区表示,并且每 16Byte 表示一个分区,也就是说一块硬盘最多只能表示 4 个分区(主分区+扩展分区),并且每块硬盘最多只能有 1 个扩展分区。

其中:
主分区——最多只能有 4 个,与硬盘结构有关,与系统类型无关;
<br>扩展分区——最多只能有 1 个,主分区+扩展分区最多只能有 4 个,不能写入数据,只能包含逻辑分区;
<br>逻辑分区——序号从 5 开始;

1.1 系统分区

为什么要分区?

一块硬盘的存储空间通常都有 500GB 至 1TB 甚至更多,为了能让数据类存放,就必须分区。这样,当你去找硬盘中的某个文件时,就不必搜索整个硬盘,而只需要去某个分区中查找就行了。其实硬盘分区的好处还有很多,这里就不再赘述。

1.2 硬盘格式化

分区完了就能直接使用了吗?

不不不,要先格式化硬盘。关于格式化,有一个共同的误区,那就是都以为格式化的目的是用来删除硬盘中的文件的,实际上格式化的根本目的是为了写入文件系统。

常见的文件系统有 FAT16,FAT32,NTFS,EXT2,EXT3,EXT4 等文件系统。其中,越新的文件系统越先进,FAT16 中分区的大小不能超过 2GB;FAT32 中分区的大小能达到 16TB,但是单个文件的大小不能超过 4GB;NTFS 是 Windows 中最先进的文件系统,支持更大的分区和更大的文件;而在 Linux 中能识别的文件系统则是 EXT2,3,4,也是越新的文件系统越先进(CentOS6.3中默认是EXT4)。

Linux 基础一(系统分区、格式化与挂载)

如上图所示,格式化分区主要做了 2 件事情:

  1. 将分区分成等大小的数据块:


    每个块大小为 4KB(视文件系统而定)。若要往其中存储一个大小为 18KB 的数据,需要占用 5 个数据块,存放的位置不一定是连续的,其中第 5 个数据块只存放了 2KB 的数据,且该数据块不能再存放其他数据。
  2. 建立分区列表(二维表格):


    为分区建立一个二维表格,该二维表格的内容有:每个文件的 ID(inode),修改时间,权限和存放的数据块等。当用户需要读取某个文件时,先去分区列表中查找文件的 ID(inode) 号,若存在则判断该用户是否有权限访问,若有权限则从分区数据块中提取出文件的碎片再组合成完整返回给用户。


    其中:在第 1. 步中,将分区分成等大小的数据块,会附带地清空原有数据块的数据,所以格式化宏观上看就是删除磁盘数据的现象,导致常常被人误解。


    所以格式化确实可以删除磁盘中的数据,但是格式化的目的是写入文件系统。

2. Linux 基础之设备文件名与挂载

在 Windows 中:分区 -> 格式化 -> 分配盘符 ;就能使用


在 Linux 中:分区 -> 格式化 -> 给分区起设备文件名 -> 分配盘符 ;就能使用



Linux 中的设备文件名实际上是系统自己检测的(无需手动分配),我们只需要看懂即可,如下图所示:

2.1 硬件设备文件名

![硬件设备文件名](https://i.imgur.com/ROhBvig.png)

如上图所示:

其中,/dev/ 目录专门用来存放设备文件名;中括号 [] 中如 [a-p] 指的是硬盘的分区号,a 代表第 1 块硬盘,b 代表第 2 个块硬盘,以此类推;


例如:/dev/sda5 代表第 1 个 SCSI(SATA) 硬盘的第 1 个逻辑分区(1-4是主分区或者扩展分区,逻辑分区从5开始)

设备文件名是系统起的,我们只要能看懂就行了。

2.2 挂载

在 Linux 中,我们将硬盘分区好了之后,分区的名字保存在 /dev/ 目录下,如 /dev/sda1 是第 1 个 SATA 硬盘的第 1 个(主)分区。那么我们怎么去访问硬盘分区中的数据呢?可以将该分区 "挂载" 到某个目录下,如 /temp/sda1,这样我们去到 /temp/sda1/ 目录下就能看到该硬盘第一个分区的数据了,所以目录就是我们所说的挂载点


具体的挂载命令是 mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点。即 mount /dev/sda1 /temp/sda1

刚装系统时,推荐:

必须分区:

1. `/`(根分区)
2. `swap`(交换分区,虚拟内存):内存在 4G 以内则 swap 为内存的 2 倍,内存在 4G 以上则 swap 要和内存一样大

推荐分区:

1. `/boot`(启动分区,非必须):200MB。
进行 /boot 分区的目的就是为了防止磁盘被写满,导致系统崩溃