linux磁盘与文件系统管理

linux文件系统

文件系统特性    索引式文件系统
格式化的作用  使操作系统能够利用特定的文件系统格式进行操作
新技术LVM与磁盘阵列 可以将一个分区格式化为多个文件系统    也可以将多个分区合成一个文件系统
linux中文件的权限rwx和文件属性owner   group   time等分别放在不同的区块    权限和属性放置到inode中,至于实际的文件数据则放置到datablock区块中    还存在一个超级区块superblock会记录整个我呢间系统的整体信息    包括inode与block的总量、 使用量   剩余量等等。
简略说明
superblock记录文件系统的真题信息   包括所有的inode/block 的总量   使用量等的统计信息
inode 记录文件的属性   一个文件占用一个inode    同时记录文件的数据的block号
block 实际记录文件的内容    如果文件太大会占用多个block
 

MBR  一块硬盘有一个MBR   引导区块

boot sector 引导区域   整个文件系统前面有一个启动扇区    此扇区可以安装开机管理程序    例如grub Lilo等等 如此可以将不同的开机管理程序安装到个别的文件系统的最前端   而不用覆盖整个硬盘的唯一的MBR    所以才会有多重引导的环境   
  上图中的说明
datablock     数据区域    block的大小决定最大单一文件的大小和最大文件系统总容量的大小   】
 格式化之后不能再改变
每个block内最多只能放置一个文件的数据
如果文件大于block的大小    则此文件会占用多个block
如果文件小于block的大小    则block的剩余容量不能再被使用了
inode table        inode 表格内容如下
该文件的存取模式     读   写还是执行
文件的owner     group
文件的容量
文件建立或状态改变的时间ctime    status-time
文件最后读取的时间 atime access-time
文件最后修改的时间 mtime modify-time
文件特性    flag   例如setuid
文件真正内容的指向   pointer    指向内容的指针  
 
每个inode大小固定为128字节
每个文件仅仅会占用一个inode
所以文件系统能够建立的文件数量与inode的数量有关
系统读取文件时先找inode      并且分析inode表中的权限与用户是否符合    如果符合才能开始实际读取block的内容   即读取文件的真实数据
inode与block的关系如下   分为4种不同的类型

  superblock   超级区块    一般大小为1024字节

记录整个filesystem相关信息的地方   没有superblock    就不会有这个filesystem   
记录的主要信息有:
block与inode的总量
未使用与已使用的inode/block数量
block与inode的大小
文件系统的挂载时间     最近一次写入数据的时间    最近一次检验磁盘fsck的时间等文件系统 的先骨干信息
一个vllid bit数值    如果文件系统挂载  则此值为0     否则为1
一般的一个文件系统仅有一个superblock    如果后续的block group含有superblock  那么也是第一个superblock的 备份   达到救援的目的
filesystem description   文件系统描述说明
区域描述每个block group 的开始与结束的block号码   以及说明每个区域 superblock bitmap inodemap   datablock 分别介于哪个block号码之间    可以通过dumpefs来观察
block bitmap    区块对照表   记录哪些block是空的   包括删除文件后释放的block号码
inode bitmap   inode对照表   对应于block bitmap 记录已经使用的block号码      
 
 
dumpe2fs        b   列出保留为坏磁道的部分
h列出superblock的数据  仅仅
 
df 列出当前挂载的装置
 
 
与目录树的关系
建立一个目录时    文件系统会分配一个inode与至少一块block给该目录      其中inode记录该目录的相关权限与属性   并记录分配到那块block号  
inode本身不记录文件名    文件名的记录是在目录的block中   
举例   系统读取   /etc/passwd文件的过程
ll   -di / /etc  /etc/passwd
2 * * /
1912 ** /etc
1913 ** /etc/passed
前面的数字分别为目录文件的inode号
如果用普通用户身份访问文件的方式
1 /的inode
通过挂载点的信息找到    inode 为2
2 /的block块    实际文件的存储位置
通过1步骤可以得到block的号码   并且找到该内容有etc目录的inode号为1912
3 /etc/的inode
读取1912号  inode   得知  普通用户具有rx的权限所以可以读取/etc/的block的内容
4 /etc/的block
通过3 可以取得block号   并找到该内容有passwd文件的inode号码    1913
5 /etc/passwd  的inode
读取1913  得知有r的权限  所有可以读取passwd的所属block的内容
6. passwd的block的内容读取
 
LINUX文件系统的运行       文件系统的异步处理    在文件加载到内存后   如果文件有改动  系统会随时将文件写入到硬盘   而不是等到最后文件修改完成后  统一写入到硬盘中
 可以手动利用sync指令来强迫写入硬盘
 
挂载点的意义   mount point
每个文件系统都有独立的inode    block    superblock  等信息       将文件系统与目录树相结合的动作我们称为挂载       
挂载点一定是目录   该目录为进入该文件系统的入口    因此必须要挂载到某个目录后  才能够使用该文件系统
系统通过VFS虚拟文件系统来调用各种不同的文件系统   
文件系统的简单操作
原文地址:https://www.cnblogs.com/dongguolei/p/7896379.html