《信息安全系统设计与实现》学习笔记5

《信息安全系统设计与实现》学习笔记5

第十一章

EXT2文件系统

  • EXT2文件系统数据结构

    • 创建虚拟硬盘

      mke2fs [-b blksize -N ninodes] device nblocks
      

    • 虚拟磁盘布局

      Block#0:引导块

  • 超级块

    • Block#1:B1是超级块,用于容纳整个文件系统的信息,是记录整个文件系统相关信息的地方。
    • 重要字段:
      • u32 s_inodes_count://文件系统中节点总数
      • u32 s_blocks_count://文件系统中块总数
      • u32 s_r_blocks_count://为超级用户保留的块数
      • u32 s_free_blocks_count: //文件系统中空闲块总数
      • u32 s_mtime://文件系统的挂接时间
      • u32 s_wtime://最后一次对该超级块进行写操作的时间
      • u32 s_magic ://魔数签名,用于确定文件系统版本的标志
      • u32 s_inodes_per_group://表示每个组块的inode数目,查找文件inode所在块的位置很重要
      • u32 s_mnt_count://文件系统挂接计数
      • u32 s_max_mnt_count://文件系统最大挂接计数
      • u32 s_state://文件系统的状态
  • 块组描述符

    • Block#2:块组描述符块,EXT2将磁盘块分为几个组,每个组有8192个块,用一个块组描述符结构体来描述。
  • 块和索引节点位图

    • Block#8:块位图,位图是用于表示某种项的位序列,也用于分配和回收项。
    • Block#9:索引节点位图,一个索引节点代表一个文件的数据结构。
  • 索引节点

    • Block#10:索引(开始)节点(bginode_able)每个文件都用一个128字节(EXT4中 是256字节)的唯一索引节点结构体表示。

    • 直接块

    • 间接块

    • 双重间接块

    • 三重间接块

  • 数据块
    紧跟在索引节点块后面的是文件存储数据块

  • 目录条目
    目录包含dir_entry结构,且dir_entry是一种可扩充结构。

  • 邮差算法
    Linear_address LA = N*block + house;
    Block_address BA = (LA/N,LA%N);

3级文件系统函数

  • 挂载算法
    mount filesys mount_point

    可将某个文件系统挂载到mount_point目录上

  • 卸载算法

  • 交叉挂载点

    • 向下遍历
    • 向上遍历
  • 文件保护
    9个权限位

  • 文件系统项目拓展

    多个组-4KB大小块-管道文件-I/O缓冲

苏格拉底挑战

EXT2文件系统的苏格拉底挑战

3级文件系统函数的苏格拉底挑战

遇到的问题

问题:当文件系统遭遇故障或数据损坏时,该如何进行数据恢复和故障处理
解决方法:询问GPT
GPT的回答

posted on 2023-10-15 18:05  20211417黄琪凯  阅读(28)  评论(0编辑  收藏  举报