我的Linux实验——第8章(Linux磁盘与文件系统管理)

第8章(Linux磁盘与文件系统管理)

1. 文件系统特性

领会书中的精神,我觉得文件系统就是数据在硬盘上的存放方式。而不同的操作系统所支持的文件系统是不同的。如果操作系统不支持,存储设备(如U盘)的文件系统时,存储设备是使用不了的。
上面说的文件系统,说的是存放数据的模型,也许成为文件系统格式更为合理。而书上的文件系统还有一种意思,一个被挂载的数据为一个文件系统而不是一个分区
一个直接使用的分区,可以被称为一个文件系统。一个分区可以格式化为多个文件系统(LVM),也能够将多个分区合成一个文件系统(LVM,RAID)。

在这里插入图片描述

1.1 查询各个区段与superblock信息:dempe2fs

只能对ext的文件系统使用。如果CentOS 8 使用了XFS的文件系统,当然就查询不了。
在这里插入图片描述
在这里插入图片描述
上半部分会显示superblock内容,下半部分则是blockgroup的信息。

1.2 与目录树的关系

1.2.1 目录

新建目录时,目录会占用inode和block:
在这里插入图片描述
使用ls -li可以查看目录内文件所占用的inode号码:
在这里插入图片描述
使用ll时,目录所占的大小都是block大小的整倍数。

1.2.2 文件

1.2.2.1 读取文件

读取文件/etc/passwd的过程:
在这里插入图片描述

1.2.2.1 新增文件

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

1.2.2 日志系统文件

数据存放区域:inode table,datablock
中间数据(metadata):super block,inode bitmap,block bitmap
系统中断时,同步更新没做完的话,会造成metadata和数据存放区域不一致。为了避免这种情况,就在文件系统中规划出一个块,记录写入或修订文件的步骤,万一系统中断,这个块就会记录下进行到哪个步骤了。这就是日志文件系统。ext2的升级版ext3就是这样的文件系统。

1.2.1 挂载

挂载就是把一个文件系统放在一个目录下,给文件系统一个入口

1.2.1 其他

查看系统支持的文件系统:
在这里插入图片描述
奇怪的是CentOS8中没有ext 2,3的文件夹。

查看系统目前以加载到内存中支持的文件系统:
在这里插入图片描述
Linux VFS(Virtual Filesystem Switch),帮助我们管理了所有的文件系统(自动识别读取文件系统时用什么模块)。

2. 文件系统的简单操作

2.1 列出各文件系统使用情况:df

2.2 列出文件占用大小:du

2.3 创建链接:ln

连接分为硬链接和软链接,创建文件后,建立的就是一个硬链接。
硬链接可以单纯对应inode,直接访问block。相比之下,软链接就是一个二道贩子,先跳转到一个硬链接,再有硬链接访问block。
使用删除命令时,会删除只会删除这一个链接,而不会对文件内容产生影响。但是如果把软链接的对应的硬链接删除的话,软链接当然也会无法使用,毕竟硬链接是软链接的上游。
突然我就又想到了一个问题,到底什么是删除。在学习数据结构时,可以使用数组做线性表。使用数组做线性表和用硬盘存储数据,有相似之处。所谓的删除,真的是删除吗,我只要将数据所对应的所有链接都删除掉,数据就无法访问了,当我下次需要使用硬盘的空间时,直接把硬盘上的原来已经“删除”掉的数据覆盖掉就可以了。虽然我不知道,Linux是不是这么做的。

2.3.1 硬链接是不能跨文件系统使用的

在这里插入图片描述
使用dumpe2fs命令查看superblock:
在这里插入图片描述
每个文件系统的inode都是固定的,假设硬链接可以跨文件系统,那我一个硬链接所对应的inode是56号,那么请问,这是哪个文件分区的56号呢?这就会造成很大困扰,所以硬链接是不能跨文件系统的。

2.3.1 硬链接是不能对目录建立的

(因为需要对目录下的文件都建立硬链接太复杂,所以还不支持)
在这里插入图片描述

2.2 磁盘分区:fdisk

在使用fdisk分完区之后,应该更新分区表。书上说可以使用partprobe命令,更新分区表。
但事实上,CentOS 5 能成功,没有报错。
但CentOS 6 是不能完成的:
在这里插入图片描述
不知道为什么,明明是同样的分区,但是CentOS 6 就无法使用partprobe命令更新分区表。报错为设备忙,会在重启后更新变化。明明同样都是一个硬盘,但CentOS 5和6的结果却不一样。网上的办法都是垃圾,根本无法解决这个问题,等我哪天悟明白了再说吧。

如果我为虚拟机多加一块硬盘sdb,对sdb进行相同的分区操作,连partprobe都不需要用,分区表自己就更新了。
在这里插入图片描述
CentOS 8 变化过大,让我难堪:
在这里插入图片描述
变化太大,先放着,有时间再说吧。

2.2 磁盘格式化:mkfs,mke2fs

刚才我们用fdisk把磁盘分区了,但是仅仅是分区而已,划分出的分区系统是无法使用的,因为分区还没有系统认识的文件系统(格式)。
可以使用mkfs格式化分区:
在这里插入图片描述
mkfs在格式化是会使用默认的参数。如果想要设置label,block大小,inode数量等信息,可以使用mke2fs命令格式化分区。

2.2 磁盘检测:fsck,badblocks

fsck用来检查与修正文件系统错误的命令。文件系统有问题时才使用这个命令,正常状况下使用这个命令,可能会对系统造成损害。执行fsck时,被检查的分区不能挂载。ext2/ext3文件系统的最顶层会存在一个lost+found目录,这个目录是放置fsck检测有问题的文件的,不应该有任何数据,如果有数据,就要注意了。

badblocks用来检查硬盘或软盘扇区有没有坏轨。

2.3 磁盘挂载与卸载mount,umount

2.4 磁盘参数修改

2.4.1 手动创建设备文件:mknod

在这里插入图片描述

2.4.2 修改卷标:e2label

2.4.3 调整文件系统参数:tune2fs

-l:类似dumpe2fs -h。读出superblock数据。
-j:将ext2的文件系统转换成ext3。
-L:类似e2label,修改卷标。

在这里插入图片描述

2.4.3 调整IDE硬盘参数:hdparm

我从小到大没见过IDE接口的硬盘,全是SATA接口的。。。这个命令对我而言毫无意义。
在这里插入图片描述

3. 设置开机挂载

3.1 开机挂载/etc/fstab及/etc/mtab

内容有六列:

  1. Device(设备名称或卷标)
  2. Mount point(挂载点,给个目录)
  3. filesystem(指定文件系统的格式)
  4. parameters(读写,同步方式,是否会被主动挂载测试等设置)
  5. dump(是否要dump备份)
  6. fsck(是否开机fsck检验文件系统是否完整(clean))

/etc/fstab是开机时的配置文件,实际文件系统的挂载是记录到/etc/mtab与/proc/mounts当中的。

3.2 特殊设备loop挂载

mount -o loop 可以挂载DVD镜像。

制作大文件挂载,制作分区:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 swap的构建

3.2.1 物理内存构建

使用fdisk创建一个分区,并修改系统ID:
在这里插入图片描述
使用mkswap,制作swap分区:
在这里插入图片描述
free查看内存使用,swapon打开swap分区:
在这里插入图片描述
swap -s列出使用的swap设备:
在这里插入图片描述

3.2.2 文件构建

dd做大文件,mkswap格式化:
在这里插入图片描述
最后swapon启动即可。
也可以使用swapoff取消挂载。

如果想开机挂载,修改/etc/fstab文件即可。

4. 文件系统的特殊查看与操作

4.1 boot sector 与 super block的关系

在这里插入图片描述
根据这张图boot sector是在super block之前的。
在这里插入图片描述
分两种情况:block为1kb时,boot sector 与 super block各占一个block。
block大于1kb时,boot sector 与 super block公用一个block,该block剩余部分闲置不用。

4.2 磁盘空间的浪费

上图的所有主分区1中,除了data block部份外,其他的部分被用来记录一些其他信息了,所以会浪费磁盘空间。
而data block中,每个block块也不一定会被填满,而没被填满的部分,也是没法使用,被浪费掉了。
ll -s 红色部分代表实际使用的容量(实际block数 x block大小):
在这里插入图片描述

如果想要查询某个目录所占用的所有空间,使用du(可以用选项换单位)。
在这里插入图片描述

4.3 大分区parted

fdisk最多只支持2T的分区,所以大分区需要使用parted。
参数:
新增分区:mkpart
分区表:print
删除分区:rm

4.3.1 显示分区

在这里插入图片描述

4.3.2 新增分区

在这里插入图片描述

4.3.3 删除分区

这个命令不是fdisk那样,还有w保存退出。所以要格外小心。
在这里插入图片描述

发布了12 篇原创文章 · 获赞 2 · 访问量 516

猜你喜欢

转载自blog.csdn.net/qq_45582319/article/details/104345547
今日推荐