Linux磁盘管理——Ext2文件系统
前言
通常而言,对于一块新磁盘我们不是直接使用,而是先分区,分区完毕后格式化,格式化后OS才能使用这个文件系统。分区可能会涉及到MBR和GPT问题。至于格式化和文件系统又有什么关系? 这里的格式化指的是高级格式化,由于每种OS所设置的文件属性/权限并不相同, 为了能够操作这些文件,就需要对partion进行格式化,以满足OS能够利用的“文件系统格式(filesystem)”。
上面说对partion进行格式化,这种说法不严谨。
对于早期技术而言,可以认为Partion与FS是1:1的关系,这两种是等价说法。但是在引入RAID(Redundant Arrays of Independent Drives)和LVM(Logical Volume Manager)后,整个存储概念就被池化,Partion与FS不再是1:1关系,可以认为一个可被挂载的目录就是一个FS。
Ext2脑图
Ext2文件系统
作为Linux上最传统的文件系统,Ext2的很多概念对于理解其他文件系统很有帮助。
Ext2整体结构
结构剖析
Boot Block
也可以称为boot sector,里面存放有boot loader
Superblock
- 记录整个 FS相关信息
- 备份策略:首个Block Group保存Superblock,后续Block Group保存Superblock备份
- 查看命令:dumpe2fs
- 包含:
- block 与 inode 的总量
- 未用与已用的 inode / block 数量
- block 与 inode 的大小
- filesystem 的挂载时间
- filesystem最近一次写入数据的时间
- filesystem最近一次检验磁盘 (fsck) 的时间
- valid bit。0表示FS为被挂载,1表示FS已被挂载
GDT
- 块组中从哪里开始是 inode table
- 块组中从哪里开始是Data Blocks
- 块组中从哪里开始是Inode Bitmap
- 块组中从哪里开始是Block Bitmap
- 块组中从哪里开始是GDT
- 块组中从哪里开始是Superblock
Block Bitmap
用于标记block是否使用,0表示未用,1表示已用。
Inode Bitmap
用于标记inode是否使用,0表示未用,1表示已用。
Inode Table
- 每个 inode 大小均固定为 128 bytes
- 每个文件都仅会占用一个 inode 而已,因此FS能够创建的文件数量与 inode 的数量有关
- 寻址Block方式
包含:
- 该文件的存取模式(read/write/excute)
- 该文件的拥有者与群组(owner/group)
- 该文件的容量
- 该文件atime、ctime、mtime
- 该文件真正内容的指向
Ext2是索引式FS,几乎可以一次性去除全部block(二级及以上寻址的不能一次性取出),而且几乎不需要磁盘重组
Windows的FAT是按图索骥式FS,不能一次性取出全部Block,而且需要经常磁盘重组
Data Blocks
用于最终放置文件内容数据
支持block大小:1K、2K、4K
注意:
block大小、数量格式化后不再改变
每个 block 内最多只能够放置一个文件的数据,多余空间不退,少了的空间再补充一个block。
相关文章
- 如何在Linux上实现文件系统的自动检查和修复?
- 【Linux开发】Linux磁盘管理
- linux文件管理 cp mv mkdir rm rmdir
- linux 账户管理 经验练习 useradd goups
- 如何在Linux中显示和设置主机名(适用ubantu、centos等版本)
- Linux磁盘管理——虚拟文件系统
- [Linux]常用命令之【du/fdisk/df/ls】#磁盘管理/文件管理#
- 在Linux下安装和使用MySQL
- linux命令——磁盘管理pwd
- 鸟哥的linux私房菜学习记录之账号管理与权限设定
- 鸟哥的linux私房菜学习记录之档案与目录管理
- 【转载】Linux磁盘管理:LVM逻辑卷管理
- Linux Rsyslog系统日志管理
- 在Linux中用于RPM包管理的‘DNF‘命令
- Linux、Windows Server Password Security Policy Strengthen
- linux下包管理命令yum与apt-get以及开发环境配置
- [Linux] Linux学习笔记(5)-文件与目录管理
- 高端内存映射之kmap_atomic固定映射--Linux内存管理(二十一)
- Linux内存描述之内存页面page--Linux内存管理(四)
- Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四)
- 让Linux终端同时运行多个Linux命令
- linux用户管理中两个重要的“父子”配置文件