Linux系统文件修复
文件系统原理
文件系统在进行格式化时,被分成两个部分。即inode(索引)和block(块存储),其中inode存储的数据为指向用户存储数据(存储在块中)的索引,文件进行删除操作时,是删除inode,而非删除块存储的数据(即用户数据依旧存在,只不过被隐藏)。块存储的数据会在其他新数据存储的时候覆盖掉。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kO0jMWIz-1605745422042)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021141228105.png)]
#用于打印“ext2/ext3”文件系统的超级块和快组信息。(inode、block size)
tune2fs -l /dev/sda6
#查看文件索引号
ls -li 文件名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTxi19SE-1605745422044)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021154501869.png)]
删除文件时 重建一个文件,该索引号会使用删除文件的索引号,即存储块内容会被覆盖此时想要找回删除文件数据就比较困难
文件系统分组
文件系统在格式化时,会生成很多个blocks,为了防止存储混乱导致访问速度下降。会对blocks进行分组。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jaA11DO1-1605745422045)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021155316434.png)]
# 查询系统的设备号(sda1)
df
#查询sda6文件系统信息
dumpe2fs /dev/sda1 |more
超级块(superblock 非常主要)
记录文件系统的所有属性信息,Group0为主superblock,Group(1、3、5、7、9)为备份superblock。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4wX0ub2-1605745422047)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021160219780.png)]
破坏文件系统的前10的Group
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kxmUOedD-1605745422048)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021160637935.png)]
破坏后出现的故障信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3uEHx25C-1605745422049)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021160708962.png)]
使用fsck尝试修复(主要修复时先卸载data,防止修复时文件系统搞坏)
umount /data/
#fsck:filesystem check
fsck -v -y /dev/sda6
mount /dev/sda6 /data
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLq1Ojw7-1605745422051)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021160954500.png)]
案例一
1、场景描述
Oracle数据库无法正常启动,数据库所在文件系统故障,使用fsck也无法修复,后导致操作系统也无法正常启动,引导程序出现错误,开机后看见这个界面:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6lmX42z8-1605745422051)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021140449391.png)]
2、解决思路(ext4文件系统)
1、使用fsck 修复不成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Msx3l2NF-1605745422052)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021161342969.png)]
2、使用e2fsck修复
#检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] :
# e2fsck -a -y /dev/sda5
# 采用Group3的superblock备份 98304 也可以采用Group5、...,越往后被破坏的概率越低
e2fsck -a -y -b 98304 /dev/sda6
mount /dev/sda5 /data
#Superblock backups stored on blocks:
# 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
# 从输出可知superblock存在于: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bq2Sv8Hu-1605745422052)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021161813382.png)]
xfs文件系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yEbVqJtE-1605745422053)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021164825591.png)]
案例二
1、场景描述
系统在长时间运行的过程中会产生一些损坏或者问题,不重启时看不出来,重启时可能会导致文件系统挂载不上等等问题。所以没事别重启服务器,让专业的人来,以下系统有问题重启会导致系统出错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0boo4UUK-1605745422053)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021171222146.png)]
**(重启系统)**会出现问题,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mh2h2v2q-1605745422054)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021171425281.png)]
2、解决思路
输入密码进入紧急模式,按mount -a 查看那个设备出现问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QXNgPf6G-1605745422054)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021171600530.png)]
用fsck修复
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQ7G4xZR-1605745422055)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021171800553.png)]
用mount查看是否可以挂载文件系统,成功则重启
图片转存中…(img-QXNgPf6G-1605745422054)]
用fsck修复
[外链图片转存中…(img-OQ7G4xZR-1605745422055)]
用mount查看是否可以挂载文件系统,成功则重启
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TNA5otd-1605745422055)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021171917382.png)]