文件系统检查FSCK基本过程解析

最近一直在熟悉e2fsck的实现过程,为后续快速fsck在用户态的实现做点准备。源码功能细节部分暂时就不贴了,可能多数人也并不关心,将文档基本功能部分分享给大家。

2.1        工具基本结构组成

2.1.1       Pass 1:inode表的检查

检测整个文件系统中的inode, 主要检查以下内容

1)        Inode的mode  field是否合法;

2)        Inode 记录的size和块计数(blockcount)是否正确;

3)        对于device fifo或socket其 size应该为0,如果没有记录则直接置0再写回。

4)        数据block是否有被其他的inode引用(不允许出现);

5)        收集以下信息数据,主要是方便后续其它过程不再读取inode:

inode_used_map:已使用的inode的bitmap
inode_dir_map: 记录的是目录的inode的bitmap

inode_reg_map:记录的是普通文件的inode的bitmap(reg 指regular)

inode_bad_map:记录中出现bad field的inode 的bitmap

inode_bb_map: 记录的是坏块的inode 的bitmap

inode_imagic_map:记录的是imagic的inode的bitmap

block_found_map:已使用的block的bitmap

block_dup_map:被多个inode使用的block

dir_map: 目录inode 的数据块(data block)
备注:如果后续查出不一致性ÿ

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用fsck命令可以检查和修复文件系统中的错误。当文件系统损坏时,可以使用fsck命令来尝试修复。命令的基本格式如下:\[1\] ``` fsck \[选项\] 分区设备文件名 ``` 在修复文件系统之前,务必先进行备份,特别是当文件系统中包含有价值的数据时\[2\]。可以使用以下命令查看系统支持的文件系统类型: ``` fsck ``` 如果想要修复某个分区,可以执行以下命令: ``` fsck -r /dev/sdb1 ``` 其中,`/dev/sdb1`是要修复的分区设备文件名。使用`-r`选项可以进入互动的修复模式\[2\]。 在修复过程中,如果发现存在没有文件系统依赖的文件或目录,fsck命令会提示用户是否找回这些文件。如果用户同意找回,fsck命令会将这些文件放到`lost+found`目录中,并以文件自己对应的inode号来命名\[2\]。 因此,当修复完成后,如果发现分区中有文件丢失,可以到`lost+found`目录中查找。可以使用`file`命令查看文件系统类型,以确定哪些文件是需要的\[2\]。 需要注意的是,不同的文件系统可能需要调用不同的扫描工具。例如,对于ext3文件系统,应该使用`fsck.ext3`命令来进行修复\[3\]。 #### 引用[.reference_title] - *1* *2* [Linux学习-41-检测和修复文件系统fsck命令用法](https://blog.csdn.net/weixin_42045639/article/details/127895766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用fsck修复系统文件错误](https://blog.csdn.net/lileiyuyanqin/article/details/87086127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值