android ext4 损坏,EXT4文件系统损坏导致的实例无法启动的排查与修复
现象
某现网局点进行POC时,发现某DN core掉,且一直无法启动。
core文件堆栈和dn的pg_log日志中的堆栈信息一致。
堆栈中显示 checkpoint 时进行 buffer 落盘时导致core
log中报错信息为:
could not flush dirty data: Cannot allocate memory
排查
再看操作系统内存,发现还有100G以上空闲,不存在内存不足的可能性。基本排除是因为内存导致的问题。
通过代码排查发现是调用系统函数:sync_file_range ()。但是刷盘函数一般也不会导致无法申请内存。
PS:此函数是Linux 2.6.17之后提供的用于提高IO性能的刷盘函数,作用类似于fsync等。
既然翻车在文件操作函数,可以合理怀疑文件是不是有问题。翻一下操作系统日志 /var/log/messages,发现疑点:
网上查询错误信息,基本上确认为EXT4文件系统损坏,需要对文件系统进行修复
修复EXT4文件系统
修复EXT4文件系统需要使用fsck.ext4命令,与windows的chkdsk命令一样,fsck命令是linux下必不可少的文件系统修复工具。一般都会默认安装的。
使用root用户登录系统
把要修复的磁盘umount掉。使用fsck修复文件系统一定要先把对应的磁盘卸载,否则是非常危险的(这是不如windows的地方)。
首先检查是否有其他进程使用磁盘(也可以使用 lsof /dev/sdh1 查看占用情况)
fuser -mv /dev/sdh1
杀死占用的进程,并确保没有进程占用磁盘(也可以使用 kill 杀掉对应进程)
fuser -kv /dev/sdh1
fuser -mv /dev/sdh1
卸载磁盘
umount /dev/sdh1
使用fsck工具修复系统
运行命令并确认
fsck.ext4 /dev/sdh1
运行过程中会提示 inode 的一些信息,确认即可。
如果不想要点很多次的确认信息,可以加上 -a 参数。
修复完成后,会得到如下提示,表示fs已经修复完成。
通过reboot重启系统,修复工作结束。
附:fsck命令常用选项及注意事项
fsck.ext4的manpage直接跳转到e2fsck,因为他直接调用的e2fsck命令,可以阅读描述:
常用选项和注意事项
android ext4 损坏,EXT4文件系统损坏导致的实例无法启动的排查与修复相关推荐
- centos修改磁盘uuid_Centos更换损坏硬盘UUID改变导致系统不能正常启动处理
Centos 更换损坏硬盘 UUID 改变导致系统不能正常启动处理 一. 适用场景 本文档的适用场景为,更换硬盘导致系统启动时因 UUID 不同,导致 挂载文件读取失败, 系统不能正常启动, 同时本文 ...
- 文件系统损坏导致虚拟机无法正常启动的问题及解决方法
简介 计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必 ...
- [虚拟机-系统重启]文件系统损坏导致虚拟机无法正常启动的问题及解决方法
简介 计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必 ...
- 文件系统损坏导致数据文件异常恢复----惜分飞
今天接到一个客户的服务请求,由于服务器被强制重启,数据库无法启动 ORA-1200报错 这是一个常见的ORA-1200错误,但是文件大小相差的有离谱实际大小729600个block,但是现在只有149 ...
- Chrome 更新导致部分 macOS 的文件系统损坏,无法重启
Chrome 近期自动更新的版本包含了一个 bug,影响到了 Mac 设备的系统完整性保护(SIP)功能以及 OS X 10.11 之前版本的 macOS 用户,并可能造成文件系统的损坏. Googl ...
- Linux 文件系统引起的云盘文件系统异常导致 MySQL 数据页损坏事故恢复复盘
事故的起因是因为当我访问某个数据库的某个表的时候,MySQL 立即出现崩溃并且去查看 MySQL 的错误日志出现类似信息 2019-05-09T05:52:19.232564Z 1027 [ERROR ...
- linux崩溃mysql导出_Linux 文件系统引起的云盘文件系统异常导致 MySQL 数据页损坏事故恢复复盘...
事故的起因是因为当我访问某个数据库的某个表的时候,MySQL 立即出现崩溃并且去查看 MySQL 的错误日志出现类似信息 2019-05-09T05:52:19.232564Z 1027 [ERROR ...
- LWN: 华为EROFS能应对好损坏的文件系统数据吗?
点击上方蓝色"Linux News搬运工"关注我们~ On-disk format robustness requirements for new filesystems By J ...
- 深入理解ext4等Linux文件系统
了解 ext4 的历史,包括其与 ext3 和之前的其它文件系统之间的区别. 目前的大部分 Linux 文件系统都默认采用 ext4 文件系统,正如以前的 Linux 发行版默认使用 ext3.ext ...
最新文章
- 开启基于Query的实例分割新思路!腾讯华科提出QueryInst
- 神经网络模式识别matlab,基于matlab仿真的神经网络模式识别
- Scala集合:ListBuffer的头head和尾tail
- PAT1011 A+B 和 C (15 分)
- android 补签控件,问道手游安卓12月8日维护公告 新增补签功能
- 联想将在CES上展示LePad平板
- 一个让我很不爽的外包项目——奔驰Smart2015新官网
- java 档案管理系统论文_基于JAVA学生档案管理系统论文.doc
- 如何获取客户端MAC地址(三个方法)
- who i am !
- 一个十二年老程序猿的碎碎念
- 极限编程(XP)简介
- php word 生成图片,php如何把word转图片
- 一起变装吧服务器维护,2020年1月16日维护预览
- mysqlfrm 解析mysql frm文件 彻底解决phpmyadmin 管理表 “使用中”问题
- halcon案例分享
- Rasa 文档 中英文翻译版本 3 - Tutorial: Building Assistants
- 火车售票管理系统 问题陈述和词汇表
- Trias技术丨关于椭圆曲线密码学的探究
- dagger2-基础篇
热门文章
- #莫比乌斯反演#BZOJ 2671 洛谷 4466 和与积 Calc
- CCF NOI 1041.志愿者选拔
- 三星c7扩存储加双卡android8,三星C7 Pro官方安卓8.0国行版固件刷机包:CHC-C7010ZCS3CSC1...
- React-native 路由的使用 导航栏
- JavaScript零基础入门 7:JavaScript基础函数
- 传输线的波阻抗与特征阻抗
- 基于jQuery的jsp表格动态合并
- 对称加密和非对称加密(to be continued)
- 识别图片中的文字(ocr)
- 杰理之AC104N、AD14N、AD15N硬件设计注意事项【篇】