2021.1.29 P210 ~ P220
一个可被挂载的数据可称为一个文件系统,而非一个分区。
文件的权限属性放到inode中,而实际数据放在区块中。
FAT类文件系统没有inode结构。
文件系统中的目录:inode记录目录权限属性、分配到的区块号码;目录区块记录该目录下的文件名与占用的inode数据
新建文件:找到未使用的inode号码、根据bitmap找到未使用的区块号码、更新inode中的指向区块号、更新inode的bitmap与block的bitmap、更新超级区块。
日志式文件系统的流程:在日志记录区块中记录、实际写入数据、更新元数据、在日志记录区块中完成该文件的记录。
正常关机时,关机命令会调用sync将内存数据写回磁盘内。
2021.1.30 P220 ~ P231
ext文件系统格式化较慢。
xfs文件系统:分为数据区、文件系统活动登录区(记录文件系统的变化)、实时运行区(建立文件时,现在这里分配区块,分配结束后再写入数据区。
文件系统相关命令:df:列出文件系统整体磁盘使用量;du:查看文件系统的磁盘使用量
可以看到很多设备。注意:df读取的是范围主要是超级区块内的信息。
注意:有时运行du等命令,发现/proc下经常报错:【No such file or directory】,是因为程序在内存中,进程结束后释放空间,因此找不到是正常的。
软链接与硬链接:
硬链接:多个目录下的文件名对应到同一个inode号码。因此将任意一个文件名删除,inode与block不会改变。不支持链接目录原因:连接的数据需要与目录下的所有数据链接,增大开销。
软链接(符号链接【ln -s】):建立独立的文件,数据读取指向它链接的那个文件。(理解为快捷方式即可)。解决硬链接不能链接目录的问题。修改符号链接文件时,修改的其实是原始文件。链接数量:即有多少个入口可以进入此目录。
2021.1.31 P231 ~ P243
UUID:全局唯一标识符,可作为挂载或是使用这个设备或文件系统。
fdisk、gdisk操作磁盘分区不能加上设备号,因为磁盘分区是针对整个磁盘设备,而非单个分区vda1等。
fdisk针对MBR分区,gdisk针对GPT分区。
partprobe更新Linux内核的分区表信息。
格式化的含义:创建文件系统
可以用mkfs命令将虚拟设备磁盘分区转化为不同的文件系统。例如/dev/vda4分区为xfs文件系统,/dev/vda5是ext4文件系统。这些都需要调用【mkfs -t <fsType> <directory>】实现。
文件系统检验的目的是修复错乱的文件系统,修复时,该文件系统不能被挂载。(正常情况下修复,可能对系统造成伤害)
将文件系统挂载(调用【mount】命令)到目录下的时候,需要注意:挂载点目录应该是空目录,否则原有文件会暂时消失。
流程:在磁盘上格式化分区,生成文件系统;检查该文件系统,此时还未被挂载;将该分区(文件系统)挂载到目录上,然后就可以从该目录访问挂载好的分区(文件系统)。
2021.2.1 P243 ~ P252
CentOS找出待挂载文件系统类型的方法:读取文件系统的超级区块,并搭配自己的驱动程序去测试挂载。
可以为mount命令加上–bind选项,将两个目录做软链接,从而增加进入文件系统的入口(当然文件系统不能重复挂载到两个不同的目录)。
卸载文件系统时,必须将工作目录离开该文件系统的挂载点,调用umount命令,后接挂载点目录。
文件的major与minor数值代表Linux下的设备。
/etc/fstab,即filesystem table配置文件,用于开机自动挂载文件系统,这里存放着所有mount命令挂载时读到的选项和参数,包含:
- 设备文件名/UUID/Label,设备文件名诸如/dev/vda2(不是挂载点目录名!!),三选一,建议使用UUID
- 挂载点(目录)
- 磁盘分区的文件系统类型(如xfs、ext4等)
- 文件系统参数(异步或同步、自动挂载或非自动挂载、可写或只读、可执行或不可执行、允许或不允许用户挂载(一般不允许一般用户挂载,太危险了)等等)
- 能否被备份命令作用
- 是否用fsck检验扇区
使用【mount -a】命令,系统依据/etc/fstab将未挂载的文件系统挂载到目录下。
针对镜像文件,不需刻录成光盘,即可挂载:通过loop设备解决挂载问题。【mount -o loop】
【dd】命令可以用于建立空文件,选项有if(输入文件)、of(输出文件)、bs(每个block大小)、count(block数量)等。
2021.2.2 P252 ~ P260
/etc:存放系统配置文件;/usr:存放共享的系统资源;/lib:存放共享库、内核模块;/mnt:临时文件系统的安装点;/var:存放程序运行时的变量
mkswap:创建内存交换分区,格式化一个文件为swap类型分区;然后使用swapon命令将上述分区启动。