zoukankan      html  css  js  c++  java
  • 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虚拟文件系统来调用各种不同的文件系统   
    文件系统的简单操作
  • 相关阅读:
    获取Delphi焦点位置的方法,及所在的控件、以及如何通过控件名称访问控件并赋值
    常用自定义函数
    Delphi编程SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
    throw new Error() 真实的用法和throw error 的却别
    分别基于和不基于unittest单元测试框架对一个加法做单元测试
    PAT 甲级 1073 Scientific Notation (20 分) (根据科学计数法写出数)
    python flask框架学习(三)——豆瓣微信小程序案例(二)整理封装block,模板的继承...
    第一章 概述
    python flask框架学习(三)——豆瓣微信小程序案例
    python flask框架学习——开启debug模式
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7896379.html
Copyright © 2011-2022 走看看