fsck 是如何工作的

Yiran at 
fsck 是如何工作的的配图
背景在平时会遇到不少系统崩溃之后文件系统异常的情况,通常我们会通过 fsck 工具进行修复,今天来了解下 fsck 做了什么,是怎么做的。工作负载示例假设现在存在一种工作负载,将单个数据块附加到原有文件。通过打开文件,调用 lseek() 将文件偏移量移动到文件末尾,然后在关闭文件之前,向文件发出单个 4KB 写入来完成追加。假定磁盘上使用标准的简单文件系统结构,包括一个 inode 位图(inode bitmap,只有 8 位,每个 inode 一个),一个数据位图(databitmap,也是 8 位,每个数据块一个),inode(总共 8 个,编号为 0 到 7,分布在 4 个块上),以及……