ext3添加了日志功能,下面是研究通过日志恢复文件时的一点心得,工作需要,未作深入研究。
只言片语,不成体系,个人理解,可能不对!
jbd日志过程:(ordered为例)
1. 对元数据的修改(以块为单位)先记录到日志中(这时的数据应该还在内存)
2. 对文件内容进行相应操作
3. 进行commit操作,表示此次操作完成,日志中的元数据可以生效
4. jbd守护进程定时把日志中的元数据flush到磁盘
删除操作为例:
1. 在内存中将inode的数据修改,修改后的inode写入日志
2. 文件数据清空(实际上只是清除指针,可能在上一步已经做完)
3. 日志中append一个commit操作,表示删除操作完成
4. 修改后的inode被jbd守护进程flush到磁盘
故被删除的文件想要恢复,只能祈祷inode所在块,在之前的日志记录中,被写到了日志中
参考:
http://bbs.chinaunix.net/thread-1922346-1-1.html
本文探讨了日志功能在文件恢复过程中的作用,通过实例解析了日志记录流程,包括元数据修改、文件内容操作及commit操作等,并强调了删除操作下恢复文件的条件。
1万+

被折叠的 条评论
为什么被折叠?



