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磁盘管理——Ext2文件系统的更多相关文章
- Linux磁盘管理——日志文件系统与数据一致性
参考:Linux磁盘管理——Ext2文件系统 数据不一致 上图是Ext2结构图,其他FS结构类似. 一般来说,我们将 inode table 与 data block 称为数据区:至于其他例如 sup ...
- linux 磁盘管理与文件系统
一.磁盘分区的意义 磁盘分区就是为了将磁盘分成不同的逻辑区域,每个分区可以有不同的文件系统 二. 磁盘分区是按照磁盘的柱面进行分区的,由于盘片在转动时的角速度都是一样的,所以磁头在最外层的磁道上读取信 ...
- 详解Linux磁盘管理与文件系统
磁盘基础 硬盘结构 物理结构 盘片:硬盘有多个盘片,每盘片 2 面. 磁头:每面一个磁头. 数据结构 扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区. 硬盘的第一个扇区,叫做引导扇区 ...
- Linux磁盘管理与文件系统
文章目录一.硬盘结构二.MBR与磁盘分区表示三.磁盘分区结构四.文件系统类型●1.XFS文件系统●2.SWAP,交换文件系统●3.Linux支持的其他文件系统类型五.命令部分--检测并确认新硬盘●1. ...
- Linux磁盘管理——虚拟文件系统
前言 Linux支持众多文件系统,包括: 传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模块) / iso9660 (光盘)等等:日志式文件系统: ext3 / ...
- Linux磁盘管理——directory tree与mount point
参考:/sys 和 /dev 区别 Linux磁盘管理——虚拟文件系统 Directory tree Linux内的所有数据都是以文件的形态来呈现的,所以整个Linux系统最重要的地方就是direct ...
- linux基础之磁盘管理与文件系统
上面一篇文章(https://www.cnblogs.com/ckh2014/p/7224851.html)介绍了硬盘的基本结构,那么一块磁盘如何应用取存储数据呢? 它的步骤是这样的: 识别硬盘 -- ...
- Linux 磁盘管理
Linux磁盘管理好坏管理直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fdisk:用于磁盘分 ...
- linux磁盘管理系列-软RAID的实现
1 什么是RAID RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. R ...
随机推荐
- Python - Django - form 组件基本用法
普通 form 表单的处理: reg.html: <!DOCTYPE html> <html lang="en"> <head> <met ...
- fiddler 捕捉不到代码发出去的HTTP请求
检查代码里是不是把代理设置为空了,null. 或是通过.config文件禁用了代理.
- js时间的一些处理
1.判断是否为同一天 function isSameFay(t) { return new Date(t).toDateString() === new Date().toDateString(); ...
- WinForm SetWindowPos窗口置顶使用说明
就是有时候窗口不能够成功置顶,这时需要重新切换下标签,就可以置顶了,本文介绍C# SetWindowPos实现窗口置顶的方法: [DllImport("user32.dll", C ...
- Appcrawler 参数实战经验
https://testerhome.com/topics/10574 https://yq.aliyun.com/articles/277985 https://github.com/sevenir ...
- Linux下Python安装PyMySQL成功,但无法导入的问题
今天使用 Nginx 部署 Django应用.安装python库都显示成功安装. 尝试启动 uwsgi 服务,竟然报错 Traceback (most recent call last): File ...
- Ali-Tomcat 安装
通过在 Eclipse 安装 Tomcat4e 插件,或者在 Intellij Idea 安装配置 Ali-tomcat,可以快 速方便地启动并调试基于 EDAS 服务化框架 HSF 开发的应用. 1 ...
- PB 之多行标题报表
第一种 1.添加一个text,将背景色选为非透明色:position中的layer,选为foreground,这样就可以拖动列宽了 2.在position属性标签页的width里,点右 ...
- R学习笔记2 因子
特殊值: 缺失值 NA(Not Avaiable),是不可用的缩写: NaN为“不是一个数”,意味着计算没有数学意义: NULL值,空值,表示一个空的变量,不会占用任何空间,通过is.null(x)来 ...
- 接口标记为@ResponseBody却不进入ResponseBodyAdvice
一.背景: 我们的接口为了统一,在ResponseBodyAdvice中对返回值做统一处理,默认添加了errorNo和errorInfo字段返回. 最近同事改接口代码的时候,发现接口返回值是空的.乍一 ...