学Linux必须了解的系统分区!!!(通俗易懂)

前言

  • 一个分区的正常使用,必须经过四个步骤,分区、格式化、给分区起一个设备文件名、写入挂载点。 这四个步骤的详细内容,耐心的往下看。
  • 系统分区是学习Linux系统必须理解的内容,这样才能深刻的了解Linux系统,并且可以为之后的学习打下坚定的基础。

1.磁盘分区

  • 磁盘分区实使用分区编辑器在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区不同类的目录于文件可以存储进不同的分区。

小提示: (1)通俗一点说就是把大硬盘分成几个小硬盘
(2)硬盘和磁盘的区别为: 硬盘属于磁盘,由磁盘组装而成。圆形的磁性盘片被裝在一个盒 子里密封起来,即可称之为硬盘。这样做的目的是为了防止磁盘表面划伤而导致数据丢失。

1.1分区类型

  • 主分区: 最多只能由4个。
  • 扩展分区:
    最多只能有1个
    主分区加扩展分区最多有4个
    不能写入数据,只能包含逻辑分区
  • 逻辑分区

举个栗子

  • 系统分区也叫做磁盘分区,把大的硬盘,按照需求分成几个小的硬盘
  • 开始举栗子: 小明家里有一面空墙,做个跟墙一样大的柜子,但是里面没有分成小柜子,里面也没有隔板,这时候把家里所有的衣服,比如帽子上衣裤子等等,都扔进去。突然有一天要找一双袜子,本来很简单,柜子打开,拿出即可,但是柜子里所有的衣服都在一块,变麻烦了。相当于从硬盘中取用数据和放入数据的效果会大大降低。 这里的柜子就是我们的硬盘,如果没有合理的规划,我们的硬盘写入和读取都会变得极其低下。所以正确得做法是把大柜子变成合理得小柜子,比如小明家里面有三口人,这是把一个大柜子分成三个小柜子,规定好,第一个放爸爸得,第二个放妈妈的,第三个放小明的。硬盘也是这样,把大硬盘按照我们的需求分成几个分区,比如说c盘放操作系统,d盘放应用软件,e盘放娱乐资料等等,这就是分区的作用。 这样的话,一旦进行合理的分区,我们数据的读取,包括用户进行数据读取的时候,读取的效果会大大增加。
    在这里插入图片描述
    在这里插入图片描述
  • 当硬盘越来越大,四个主分区就不够使用了,这个时候必须把主分区当中,拿出来一个分区划为扩展分区。逻辑分区可以正确的写入数据和格式化。
    小明的爷爷奶奶来看小明,并打算住一段时间,这个时候三个柜子不够,需要五个柜子,可是按照硬盘的限制只能分四个分区,为了解决这个矛盾只能这样做。分区四不能放入数据也不能格式化,唯一的作用是里面包含其他的小柜子,1、2、3是主分区,4是扩展分区,5、6是扩展分区中的逻辑分区,逻辑分区可以正常的格式化并且写入数据。这个限制不是Linux限制的,而是我们的硬盘限制的,只要硬盘的结构不发生变化,这种限制依然都会限制。
    在这里插入图片描述
    在这里插入图片描述

2.格式化

  • 格式化(高级格式化)又称逻辑格式化,它是指根据用户选定的文件系统(如FAT16、FAT32、NTFS(Windows能识别的文件系统),EXT2、EXT3、EXT4(Linux能识别的文件系统) 等,在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的硬盘空间。
    小提示: (1)通俗一点说格式化的目的其实就是为了在硬盘当中写入文件系统。
    (2) 格式化最主要的目的是写入文件系统,写入文件系统,主要做的两个工作,把硬盘分成一个一个等大小的数据块,同时建立一个inode列表, 当查找文件的时候,是通过inode号,来找到这个文件的条款,从而知道了这个文件的数据保存到了哪几个数据块当中了。从而打开这几个数据块,拿出数据拼凑出我们完整的文件,这就是格式化的作用。(下面的栗子中详细说说明)
    (3) 硬盘必须经过格式化之后才能写入数据,属于高级格式化。低级格式化:低级格式化是硬盘的操作,不是操作系统当中的操作。

继续举例子:

  • 有了柜子就能放进衣服了吗? 柜子里还要相应的隔板,上面的放被子,下面的放衣服,下面的在放一些其他的。格式化就可以想象成在每个柜子里打入隔板,但是这些隔板必须遵守一定的规则,比如在Linux当中,默认的文件系统ext4,进入格式化的时候,把我们的柜子,一个一个等大小的数据块,
    在这里插入图片描述
    在这里插入图片描述
  • 比如这个数据块默认的标准大小的4kb,每4kb的空间放入一个小隔板,假设有一个数据是10kb,一个隔板放不下,会拆分放入三个隔断当中,当然最后一个隔断只放入了2kb的数据,本身他有4kb,剩余2kb的剩闲空间是不能在被其他文件占用了。但是不一定按顺数储存的或者说保存在同一个位置,也就是说这三个数据块不在一起。 Windows当中有一个工具,这个工具叫做磁盘碎片整理,原理:保存文件的不同数据块,尽量的把他们放在一起,这样更加利于数据的读取。
  • 柜子的打入隔板,或者硬盘的格式化最主要的目的是把文件系统写入,写入文件系统最主要的工作,按照文件系统的规则,把硬盘分割成等大小的数据块,把这个数据块起了一个名字block,这个英文意思也就是数据块的意思。写入了数据块,格式化就结束了吗? 还没有, 还要做一些规则。文件放入了不同的数据块当中,当用户读取想读取这个文件的时候,怎末知道文件当中的数据保存在哪几个数据块当中那??? 这个时候就需要用到文件的分区表。举栗子说明: 这样想象在柜门上贴一个纸条,纸条上写入我的某一件衣服,放入了哪一个隔断。当我需要找那一件衣服的时候,每个衣服都会有一个编号,通过这个表格的编号,对应编号的一行会详细的说明这件衣服在那个位置,这样很轻易的把所需的衣物找出来。计算机中数据量太大了,所以这个表格就是必须的。每个文件都需要有一个编号,找文件的时候实其上靠这个编号来找到这个文件的相关条款,通过这个相关条款,就可以知道这个文件放到了哪几个数据块当中。这个编号相当于一个ID号,每个文件都有一个,理论上来讲,他是唯一的,这个编号把他称作i节点(inode)。
  • 这就是分区最主要的工作,这就是格式化最主要的工作,就是为了把我们的大硬盘分成小硬盘,分成小硬盘之后不能直接使用,还要进行格式化,格式化最主要的目的是写入文件系统,写入文件系统,主要做的两个工作,把硬盘分成一个一个等大小的数据块,同时建立一个inode列表, 当查找文件的时候,是通过inode号,来找到这个文件的条款,从而知道了这个文件的数据保存到了哪几个数据块当中了。从而打开这几个数据块,拿出数据拼凑出我们完整的文件,这就是格式化的作用。

3.硬件设备文件名

硬件 设备文件名
IDE硬盘 /dev/hd[a-d]
SCSI/SATA/USB硬盘 /dev/sd[a-p]
光驱 /dev/cdrom或/dev/sr0
软盘 /dev/fd[0-1]
打印机(25针) /dev/lp[0-2]
打印机(USB) /dev/usb/lp[0-15]
鼠标 /dev/mouse

注意事项:

  • 如果是windows,硬盘进行了分区,然后进行格式化,分配盘符就可以直接进行使用了。但是Linux不行,硬盘分成大硬盘分成小硬盘,分完区之后进行格式化,格式化完成之后,在分配盘符之前还要个每个分区起一个设备文件名,或者说,要给每一个分区,起一个硬件文件名。
  • 在Linux当中所有的硬件设备都是文件。“/”是Linux最高一级目录,也就是根目录。相当于Windows当中的我的电脑,所有的数据都保存在根目录当中,dev的一级子目录,放入了所有的文件都是硬件文件,如果是IDE硬盘,**hd后面加硬盘号,如果只有一个硬盘,hda、如果有第二个硬盘就是hdb.**把硬件文件名称作硬件设备文件名。
  • Windows是硬盘分区,然后格式化,就可以 直接分配盘符,那是因为windows有完善的图形界面,我们能通过这个图形界面看到这个分区在哪,所以可以直接给他分配盘符,所以Linux最早出现的时候,是没有图形界面的,需要让系统知道我要给哪个分区分配盘符啊,这个时需要给每一个分区和或者硬件设备起一个文件名。
  • Windows:分区、格式化、分配盘符就可以使用了
    Linux:分区、格式化、给分区建立设备文件名、分配盘符才可以使用
  • 这个设配文件名是固定的,系统自动检测的,hda代表IDE硬盘接口的第一个硬盘,hdb代表IDE硬盘接口的第二个硬盘硬盘有文件设备名,分区当然也有设备文件名,分区的文件名就是在硬盘的设备文件名之后,加入数字1、2、3、4.
  • IDE硬盘的接口,最主要的区别是传输速度,ide硬盘最古老,最高传输速度是133MB/s 。 SCSI硬盘接口,这种硬盘接口更加昂贵,理论上的传输速度能够达到,200MB/s,这种硬盘主要用在服务器上。这两种基本淘汰。现在使用最多的是sata 1、2、3代。3代最高传输速度500MB,目前不管是个人机还是服务器,使用的硬盘接口一般都是sata硬盘接口。

3.1分区设备文件名

  • 设备文件名
    /dev/hda1(IDE硬盘接口)
    /dev/sda1(SCSI硬盘接口、SATA硬盘接口)

说明:

  • 这个分区的设备文件名也是系统自动检测的。会认即可。1、2、3、4这四个分区号只能给主分区和扩展分区使用,就算一个硬盘当中没有分够四个主分区,我的逻辑分区也不能占用1、2、3、4这四个分区号,这个5都代表第一个逻辑分区。永远都是从5开始的。
  • 详细看这个分区的表示方法: https://editor.csdn.net/md/?articleId=106988329

4.挂载

  • 必须分区
    / (根分区)
    swap分区 (交换分区,内存2倍,不超过2GB)
  • 推荐分区
    /boot (启动分区,200MB)

说明:

  • 有了分区就可以正常使用了吗???还少最后一步,分配盘符。便于理解,才说分配盘符,那是windows当中的称呼。在Linux当中把他叫做挂载。给分区分配盘符的过程叫挂载,把盘符叫做挂载点,盘符是Windows的叫法,在Linux应该说挂载点
  • 分区、格式化、给每个分区起一个设备文件名、写入挂载点。 这个分区就可以正常使用了。Windows是拿C、D、E、F来作为盘符的,但是Linux当中是拿空的目录名称,来作为盘符的, 理论上任何一个目录都可以作为一个盘符,有些目录不可以。如果给根不分区,我们剩余的很多数据都没地方可写了。
  • Swap分区可以理解为虚拟内存, 当我的真正的内存不够用的时候,可以拿这部分的交换分区的硬盘空间来当内存。原因:虚拟内存到底不是真正的内存,如果给的在大,也不能取代内存,到达2GB的时候在给大,就会占用我们的硬盘空间,对我们的系统不会产生更多的影响。有了必须分区Linux就会正常使用,安装。
  • 把/boot目录单独分区,任何一个操作系统,要想正常启动,都必须有一定的空余空间,如果没有给/boot单独分区,所有的数据都放在根目录下,这个时候万一把根目录写满了,这个时候Linux系统会有能起不来,为了解决这个问题,一般会把/boot单独分区。/boot是用来专门保存启动的时候需要的数据。 不在这个/boot分区当中写入任何数据,永远都会有一定的空余空间,就算把根分区写满了,也不会影响Linux的启动。

5.文件系统结构

在这里插入图片描述
在这里插入图片描述

  • 根分区是最高一级目录,在根分区当中保存一级目录,在一级目录下保存二级目录或二级文件。
  • 在Windows中C、D、E盘时并列的,根分区可以单独分配一个磁盘空间的。也可以把根分区的某一个子目录拿出来,指定独立的硬盘空间,
    (1)如果在/etc目录下写入数据,写入的是/dev/sda3的硬盘空间
    (2)如果在/boot目录写入数据,写入的是/dev/sda1的硬盘空间
    (3)如果往/home目录写入数据,写入的是/dev/sda2的硬盘空间。
  • 从Linux系统上看,/home目录和/boot目录都是根分区(目录)的子目录,但是从硬盘上来看, 可以每一个目录都有独立的硬盘空间。

6.总结

  • (1)分区: 把大硬盘分成小的逻辑分区
    (2)格式化: 写入文件系统
    (3)分区设备文件名: 给每个分区定义设备文件名
    (4)挂载: 给每个分区分配挂载点

小提示:

  • 格式化就是为了清空数据?其实不是。 格式化的目的是为了写入文件系统,在写入文件的同时,会附带的把硬盘中的数据清空。
  • 挂载点必须是目录,而且这个目录是空目录,才可以进行挂载的分配。有了这样的操作之后,我们的分区就可以正常使用了。