Linux磁盘分区及文件系统管理之基础概念

设备文件
关联至设备的驱动程序,是设备的访问入口

设备号
Major 主设备号,区分设备类型,用于标明设备所需要的驱动程序
Minor 次设备号,区分同种类型下的不同设备

创建设备文件
mknod 每一个设备就是一个节点。

查看设备
Linux磁盘分区及文件系统管理之基础概念
10代表的是主设备号
175,235,260代表的次设备号。

引用磁盘设备的方式
1、设备名称 2、卷标 3、UUID

磁盘设备
1、IDE 设备名称为:/dev/hd[a-z]
2、SCSI、SATA、USB、SAS设备名称为:/dev/sd[a-z]
如果磁盘设备有分区该如何标识?/dev/sda1 /dev/sda2
注意:CentOS6 和CentOS7 统统将硬盘设备文件标识为/dev/sd

磁盘分区
磁盘分区有两种方式:MBR和GPT
先来说说MBR 不是MBA哈
0 sector(0号扇区,主引导扇区)用于存放Master Boot Record,主引导记录,比如Windows启动时让你选择启动系统。
每个扇区有512个字节,MBR中如何使用分区空间呢?1、前446字节存放Bootloader,这是个程序,用于引导启用操作系统 2、中间64字节,存放分区表,每16个字节标识一个分区,所以一个磁盘最多有4个主分区,这个是改变不到的。
现在的系统可以将分区表的最后一部分拿来作为指向其他存储空间的记录。这个分区表可以指向一个硬盘,将该硬盘的一部分或者全部作为新的分区表。最后一个主分区改名为扩展分区,这样扩展分区不能用于存储数据。扩展分区指向逻辑分区(逻辑分区的数量不定)
注意:除去主分区就是最后一部分,可以是1个主分区加一个扩展分区,也可以是2个主分区加一个扩展分区。
主分区的分区号只有1 2 3 4
逻辑分区的分区号从5开始。

格式化
低级格式化,是出厂的时候做的,用来划分磁道
高级格式化,就是创建文件系统
高级格式化
在指定的分区内首先创建元数据的存储空间,类似于目录,作用是有效快速的查询数据。这样一个分区就被划分为两种存储空间,一个空间用于存放元数据,另一个空间用于存放真实数据。
文件的元数据是inode-->Index node 索引节点:包含文件大小,权限,属主、属组时间戳、数据块指针(这个指针就限制了单位文件大小),元数据不包括文件名,文件名在数据磁盘中存放,因为文件名是目录文件的真实数据。
其实元数据就是一个数据结构,每个文件的元数据组成元素都一样。格式化的时候就把元数据创建好了,只是元数据的内容是空的。
数据存放
在文件系统中,数据存放并不以扇区为单位,而是以块为单位。若干个扇区组成一个数据块。文件系统用数据块存放数据,数据块的分配是整块分配的,不会出现小数点块。
数据块形成后,由系统分配数据块的存放内容类型,有些数据块存放元数据,有些数据块存放真实数据。
符号链接文件(软链接文件)
普通文件的元数据都是指向真实数据,但链接文件的元数据指向的是另一个文件的元数据(数据块指针存储的是真实文件的访问路径)
符号链接支持对目录创建符号链接,可以跨文件系统(指向不同的分区)。如果原文件被删除,符号链接文件就失效了。访问符号链接文件不能得到任何信息。符号链接的权限为777
硬链接文件
指向同一个inode的不同文件。目录不支持硬链接,硬链接不能跨文件系统,创建硬链接会增加inode计数。
什么时候会用到链接文件
当需要多人同时对一个文件进行修改,但是又不想让操作员知道真实的文件名的时候。

设备文件
再来说说设备文件,设备文件的数据块中存放的是设备的主设备号和次设备号

磁盘块位图索引(bitmap index位图索引)
用于标识磁盘块是否为空,indoe也有位图索引。

预留空间
用于Root用户使用,留多少(CentOS7 预留5%),谁决定?由文件系统管理工具决定,创建文件系统的时候需要指定参数。

块组 data block group
这个概念太底层化了,以后有了具体应用在具体描述。这里只需要知道磁盘并不是只有两个数据区(元数据区和数据区),磁盘先被划分为数据块,由数据块组成块组,每个块组都有元数据区和数据区。元数据区存放了本数据组中可用的数据块的编号。在元数据区还存放了一个叫超级块的数据(super block),这个数据不止一份,这个数据主要是向外告知这个磁盘的基本情况(有多少个块组,每个块组的存储容量)

重点说下inode
Linux磁盘分区及文件系统管理之基础概念
68开头的数字就是inode号,机器是别的是inode号,人识别的是文件名,inode类似于页码,根据页码去找出数据。

文件系统目录
首先,根目录是内核可以识别的(这个是前提,我现在解释不清楚)。根目录的inode在内核中,然后根据根目录的inode找到根目录的元数据,根据元数据找到根目录的数据块存储块。根的数据存储块中包含了根目录下的一级目录的目录名和与其对应的inode编号。

交换文件系统 Swap
这个文件系统简单点说就是把磁盘空间拿来当做内存来用。

系统目录注意事项
/bin /sbin /etc /lib /lib64 这几个分区必须在根分区
/usr /var 这两个目录可以单独分区。

创建文件系统工具
mkfs格式化工具是一个通用工具,针对不不同的操作系统也会有不同的工具。mkfs其实是调用了其他具体的格式化工具,这样可以为管理员提供统一的操作接口。具体的格式化工具有:1、mkfs.ext2 2、mkfs.ext3 3、mkfs.ext4 4、mkfs.xfs等。
检测及修复文件系统的工具
fsck 这个工具也是一个统一的调用程序,具体的工具有fsck.ext2 fsck.ext3
查看文件系统属性的工具
dumpes2fs
调整文件系统特性的工具
tune2fs
内核级文件系统的组成部分
1、文件系统驱动
lsmod查看内核中包含的文件系统驱动,也有可能找不到(可能已经作为内核的一部分)能看到的是额外添加到内核中的。
2、文件系统管理工具,由用户空间的应用程序提供。


本文转自 yueyue207 51CTO博客,原文链接:http://blog.51cto.com/yueyue207/2070026


上一篇:Linux文件系统—源代码导读


下一篇:K8s 从懵圈到熟练 – 镜像拉取这件小事