鸟哥学习之Linux文件系统

   最近学习鸟哥linux私房菜之文件系统,觉得写的很好,所以将重要的知识点做一下总结,以备不时之需。

 

一、ext系列文件系统 

磁盘分区表主要是有两种格式:

1、MBR:限制较多

2、GPT:较新且限制较少

 

linux文件系统ext2通常会有三个部分:

超级区块:记录此文件系统的整体信息,包括inode和数据区块的总量、使用量、剩余量以及文件系统的格式和相关信息等。

Inode:一个文件占用一个inode,记录文件的属性和权限;同时记录文件的数据所在的区块号码。

数据区块:实际记录文件的内容,当文件过大的时候,会占用多个区块。

 

每个文件都仅会占用一个inode,系统读取文件时,需要先找到inode,分析inode所记录的权限和用户是否符合,若符合才能读取数据区块的内容;

 

目录树:

读取某个文件时,会经过目录的inode的区块,然后才能够找到读取文件的inode号码,最终找到文件的区块数据。如果有多级目录也会一级一级的查找。

 

文件系统新增文件的步骤:

第一步:先确定用户对新增文件的目录是否具有权限wx

第二步:根据inode对照表,找出没有使用的inode号码,并将新文件的权限、属性写入

第三步:根据区块对照表,中找到没有使用的区块号码,将实际的数据写入其中,并更新inode的区块指向数据;

第四步:将刚刚使用了的inode和区块更新到inode对照表和区块对照表中,并更新超级区块的内容。

 

日志式文件系统:

为了解决数据不一致需要恢复的问题,ext2由于需要将超级区块中的状态和实际数据存储状态进行对比,系统文件容量较大时,会造成主机恢复时间过长,所以产生日志式文件系统的功能。Ext3、ext4具有这种功能。

 

系统文件损坏的原因:

系统将数据加载到内存中,此时数据为clean状态,如果内存中的文件数据被修改,此时数据是dirty状态,系统会进行不定时的sync进入磁盘,以保持数据得一致性。由于异常掉电,数据未写入磁盘中,导致文件系统损失。

 

挂载:

文件系统需要链接到目录树才能被我们使用,文件系统和目录树的结合,称为挂载。目录是挂载点的入口。

 

查看当前linux支持的文件系统有哪些:

ls –l /lib/modules/$(uname –r )/kernel/fs

其实这里都是驱动。

 

centos7默认的文件系统已经由原来的ext4变成xfs文件系统,原因是:ext系统当前虽然支持度最广,但是格式化最慢。慢的原因是:预先规划处所有的inode、区块、元数据(超级区块、inode对照表、区块对照表)等数据。

 

二、xfs文件系统

Xfs文件系统主要划分为三个部分

l  数据区

数据区和ext系列差不多,也是包括inode、数据区块、超级区块

l  文件系统活动登录区

相当于日志区,文件变化会在这里记录,任务完成后,该记录结束。异常掉电后,会根据记录做恢复。

l  实时运行区

当有文件被建立时,xfs会在这个区域找一个或者数个extent区块,将文件放到这个区块,等分配完毕后,再写入data section的inode和区块中。

 

显示文件格式:

[root@ldx ~]# df -T /home

Filesystem     Type 1K-blocks    Used Available Use% Mounted on

/dev/vda1      xfs   41931756 8733072  33198684  21% /

 

查看每个目录所占的容量

du -sm /*

 

三、软连接和硬链接

软连接:类似windows的快捷方式功能的文件

硬链接:通过文件系统的inode链接产生新文件名

名称

链接目录

跨文件系统

链接不存在的文件

硬链接

不可以

不可以

不可以

软连接

可以

可以

可以

 

四、磁盘操作

系统里新增一块磁盘,需要做到:

l  磁盘分区

l  格式化

l  文件系统检测

l  挂载

4.1 磁盘分区

l  MBR分区表使用fdisk

GPT分区表使用gdisk

可以用parted命令对两种进行分区,且不需输入交互命令

l  分区完成后,使用partprobe更新分区表信息

 

删除分区后也需要执行partprobe更新分区表信息,删除分区之前需要将该分区进行卸载。

 

4.2格式化

对于xfs来说,使用mkfs.xfs来进行格式化

对于ext4来说,使用mkfs.ext4来进行格式化

其他文件系统mkfs[tab]可以进行联想

 

4.3文件系统检测

对于xfs来说,使用xfs_repair来进行检测

对于ext4来说,使用fsck.ext4来进行检测

 

4.4 挂载

Blkid

Mkdir –p /data/xfs

Mount UUID=”**” /data/xfsq

 

取消挂载umount

卸载后面接设备或者挂载点都可以,但是由于a on b,a可能是文件目录,它里面可能被他其他挂在了,所以一般建议umount b

注意:在进行卸载的时候,工作目录不能是卸载的目录,否则会报设备繁忙

 

产生uuid:

Uuidgen

 

自动挂载配置文件/etc/fstab

实际挂载的文件的记录是在/etc/mtab和/proc/mounts

当由于异常操作,导致/只读了,无法修改、etc/fstab,也无法更新/etc/mtab,可以利用:

Mount –n –o remount,rw /

 

4.4 loop挂载

镜像文件不用刻录就挂架使用

方法一:

挂载镜像文件

Mount –o loop **.iso /dir

 

方法二:

建立大文件用来制作loop设备文件

dd if=/dev/zero of=文件名 bs=1M count=512

然后将文件进行格式化

最后进行挂载mount 文件名 挂载目录

需要配置在/etc/fstab中,否则重启之后就没有了

文件名 挂载点 文件类型 默认参数 dump备份命令 是否以fsck检测扇区

 

 

fsck -cvf /dev/**进行修复

不显示信息什么的,可以直接:fsck -cvf /dev/**

posted on 2021-02-19 22:16  星星眨着眼  阅读(94)  评论(0编辑  收藏  举报

导航