相信很多人已经接触了Windows操作系统的宴铅电脑(以下称呼为PC),也对PC电脑中的CDEF...盘符印象也比较深,那个就是在PC下,系统对硬盘的各个分区。但是你有没有想过,我们为什么要分区?
我们先来了解一下分区的类型
首先呢,在Linux系统中,我们分区主要分为三种: 主分区,拓展分区和逻辑分区
在Linux系统中,一个硬盘的主分区只能有四个
我们可以对主分区进行 格式化操作 和 挂载操作
当我们的硬盘越来越大的时候,只有四个主分区有的时候不能满足我们的需求,所以就有了 拓展分区 这个概念
对于拓展分区,我们需要注意几点:
至于逻辑分区, 它跟主分区相同的地方就是逻辑分区也可以进行格式化还有挂载的操作 ,但是,逻辑分区在物理上是放在拓展分区中的,逻辑分区可以是任意个数,任意大小(当然这取决于拓展分区的大小)
打个比方,我们假设我们要建房子, 假设有一个规定,你建房子如果要划分空间只能划分四个空间(四个主分区) ,比方我们一个空间给厨房,一个给客厅,一个洗浴室和厕所(三个主分区), 再来一个空间给房间(拓展分区) ,然后, 我们可以在给房间的空间中,我们创建三个房间或者两个房间(房间就相当于是逻辑分区)
Windows适用的文件系统有:
Linux适用的文件系统有:
我们默认使用的文件系统是 EXT4
现在CENTOS可以支持XFS,所以现在使用CENTOS 7 的话默认使用的文件系统时 XFS
还是来拿房子做例子,就比方说我们两个空间(分区),一个分区我们想要用来做厨房,一个我们想要用来做房间。那么你想一下,你觉得厨房的装修风格能适合用来作房间的空间吗?很明显不能,反之用来作厨房的空间也是如此的,这个装修风格你可以理解为格式化。 所以我们进行格式化的时候,我们需要根据自己本身对各个文件系统的需求来进行格式化操作
我们再来聊一下文件系统,文件系统的数据块的存放它有可能不是连续的,可能是"东放一个西放一个",零散地放在分区的各个地方。 在Windows系统中我们可以对盘符进行碎片整理操作,将一些本应连续的数据块连续的放在一起,提高读取效率
既然在Linux系统中,数据块(block)是零散地放在分区中的,那么我们是怎么样取出我们数据的? 是因为我们的数据块都是由编号的,Linux系统是根据数据块的编号来进行读取操作的
具体来说格式化后的操作便是
可能大家在接触Linux的时候就听说过在Linux系统中一切东西皆文件这种说法了,我们的硬件设备对于Linux系统来说也是一个文件,我们插入设备,我们就可以在/dev 这个文件夹中可以找到我们相应的设备文件,不同设备在Linux系统中的命名也是不同的:
我们常见的是设备可能就有/dev/sd[a-p] , /dev/cdrom(可能光驱都很少能见到了) 这种设备
我们只需要把常见到的设备记下来即可
我们刚才说过在Linux系统中,一切东西皆文件,既然我们有设备文件,那么我们肯定也有分区设备文件。 分区设备文件存放的位置跟设备文件存放的位置是一样的,也是/dev下 。为了区分是分区设备文件名, 分区设备文件名的后面有一个1或者2,代表的是1分区或2分区
例如 /dev/sda 这个硬盘的第一分区的文件名字是 /dev/sda1
对于分区设备文件名,我们要注意以下几点:
假设我们只分了两个主分区一个拓展分区,拓展分区有两个逻辑分区。我们在Linux系统中可以将文件列出来,我们发现我们的分区号不是连贯的。 那是为了更好区分是主分区还是逻辑分区文件,第一个逻辑分区文件的号码总是从5开始的
在Windows系统中,我们经常接触一个东西叫盘符。但是,在Linux系统中是没有盘符这样的概念的,类似盘符的概念的说法在Linux系统中我们叫 挂载点 ,我们了解挂载点之前先了解什么是挂载
假设说我们将一个磁盘分区挂载到一个文件夹中,这就代表当我们往这个文件存放文件的时候,在物理方面来说我们是将数据存放在了这个磁盘分区中 ,但是我们如果是往其他文件夹放置文件的时候,并不会放到这个磁盘分区中, 那是因为其他的文件夹不是这个磁盘分区的挂载点
在Linux系统中我们也有要挂载的必须分区
还有一个分区是推荐使用的,那就是 /boot ,如果我们没有对它进行挂载,万一将来我们把 / 写满了之后,我们可能就开不了机了。启动分区不需要太大,只需要200MB就够了
我们会给根分区分配一个磁盘分区,那么我们访问的根分区旗下的二级目录和文件是不是就是在访问同一个磁盘分区呢?答案是不一定,因为如果我把新建的一个分区挂载到一个二级目录下,那么当我访问这个二级目录的时候,我是访问这个新建的磁盘分区的
例如 / 旗下有 home 文件夹,如果我们实现分配了一个磁盘分区,并且挂载到了 /home ,那么当我们访问 /home 的时候,我们是访问了我们分配的磁盘分区,并非挂载到 / 的磁盘分区
/etc
linux的文件系统就是一棵大树,呵呵,听得多了吧,根目录是/,对,就是一个斜杠,这就是跟根目录,它的文件系统都是建立在根目录之上的,没有盘符的区别。我想给你说说它的底层实现机制:
就和链表一样,根目录是个开头,存在一个4K大小的磁盘区(具体大小不清楚,我只是打比方),这个区域是系统直接可以找到的,俗称磁盘引导区MBR,这里就认为是根目录/。
然后呢,裤碰他还有一个index的概念,就是索引,亩纯轿根目录相当于一本书的"目录"俩字,index为0,index记录了它的磁盘位置,那么多文件都是零散的存放在一个磁盘上的,确认它位置的就是这个index,记录文件的开始磁盘位置(在磁盘上所有的东东都是文件)。
那么目录结构是如何连起来形成上下级的呢?链表思想:父文件的内容中含有它所有的子文件的索引位置(index),这样就是目录——文件(子目录)的结构,那么多层这样的结构嵌套就成为了整个以根目录问基础的文件结构。
其实windows的磁盘盘符机制底层也是根目录机制,C就是根,是主分区,他下面最多可迅肆以有4个逻辑分区,就是根目录下最多只有四个子目录......依次类推了。
可能说的比较乱啊,只是我自己的一点想法,供你参考学习~
以上就是土嘎嘎小编大虾米为大家整理的根文件系统存放在第几分区_Linux系统分区相关主题介绍,如果您觉得小编更新的文章对您有所帮助,不要忘记讲本站分享给您身边的朋友哦!!