记录一次 centos 启动失败

文章目录

    • 现场1
    • 分析1
    • 现场2
    • 分析2
    • 搜索
    • 实际解决过程

现场1

一次断电,导致 之前能正常启动的centos 7.7 起不来了有部分log , 关键信息如下
[1.332724]	XFS(sda3): Internal error xfs ... at line xxx of fs/xfs/xfs_trans.c
[1.332724]	XFS(sda3): Corruption of in-memory data detected . Shutting down file system
[1.332724]	XFS(sda3): Please unmount the filesystem and rectify the problem(s)
[1.332724]	XFS(sda3): Failed to recover intentsGenerating "/run/initramfs/rdsosreport.txt",不敲了,看图吧

在这里插入图片描述

分析1

上面带 [] 的都是linux内核打出来的 , 看来是 没有 mount 上 磁盘文件系统 , 那必定是 磁盘文件系统出问题了
然后告诉我说 错误信息在 一个 .txt 里
然后又告诉我说 进入了 紧急模式 , 那就好办了.
那就先打开 那个txt 看看 ,  紧急模式提供一个shell ,有基础的工具可用.
然后我们再瞅瞅现场问题
文件要 从后往前看,然后再从前往后看.

现场2

// 具体的信息以及截屏都没有了 , 我就从 这个txt 里面抽出来了这两个关键信息
mount /dev/sda3 on /sysroot failed : Structure needs cleaning
sysroot.mount mount process exited , code=exited status=32 

分析2

// 根据这个现场, 我们发现果然是 /dev/sda 磁盘的 分区3 中的文件系统中出问题了.
// 那么我们有两个思路
// 一个是 磁盘问题 , 找磁盘工具
// 一个是 分区中的文件系统问题, 找文件系统工具.
// 这里 很明显说是 文件系统工具问题

搜索

很明显, 现场2 的 信息更加全面, 我们拿 现场2 中拿到的信息直接搜索 , 然后 万军从中 取 敌将首级
找到了一个比较靠谱的解决方案.
https://www.modb.pro/db/5697011.首先尝试mount和umount文件系统,以便重放日志,修复文件系统,如果不行,再进行如下操作。2. 检查文件系统
做此步之前确保分区处于umount状态
xfs_check /dev/sdd(盘符); echo $?
返回0表示正常3. 执行xfs_repair -n,检查文件系统是否损坏,如何损坏会列出将要执行的操作
执行xfs_repair -n,检查文件系统是否损坏,如何损坏会列出将要执行的操作4. 执行xfs_repair修复文件系统
xfs_repair /dev/mapper/rhel-root (ext系列工具为fsck)5. 最后方法:损失部分数据的修复方法
根据打印消息,修复失败时:先执行xfs_repair -L /dev/mapper/rhel-root(清空日志,会丢失文件),再执行xfs_repair /dev/mapper/rhel-root,再执行xfs_check /dev/mapper/rhel-root 检查文件系统是否修复成功。说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。备注:在执行xfs_repair操作前,最好使用xfs_metadump工具保存元数据,一旦修复失败,最起码可以恢复到修复之前的状态。检查是否修复成功, 若返回0则表示修复成功echo $?再次挂载/dev/mapper/rhel-root, 若返回0则表示挂载成功mount /dev/mapper/rhel-root /sysroot;echo $?exit退出修复模式若能成功进入系统则修复完成

实际解决过程

我们的分区肯定没有 被挂载(mount)1. 
我直接一个命令下去
mount /dev/sda3 /root
他报错了, 报之前现场中的信息. // 好的,没问题.下面我就开始修理你// mount 和 xfs_repair 是有的      , 要不然这个紧急模式 就做的有些失败了!
// /dev/sda3 肯定也是有的 , 要不然就提示 /dev/sda3 不存在了, 而不是报 /dev/sda3 上的文件系统有错误.2. 
然后我们直接 执行 
xfs_repair /dev/sda3
发现返回失败,  吐出了一些 提示信息,真贴心啊
建议我们 带 -L 选项 ,并说 可能会丢失数据. // 我在乎数据吗? 我在乎的是他能启动 3.
然后直接开干 , 
xfs_repair -L /dev/sda3
跑了一分钟左右,退出了, 看起来打印正常, 但是我不放心
echo $? 一看, 是个0 , OK , 这个命令已经正确完成了4.
"xfs_repair /dev/sda3" 提示信息历历在目, 它建议我在 "xfs_repair -L /dev/sda3" 成功后再 mount 一下//  你开玩笑 , 我如果能 mount 成功,那么 程序("init进程") 肯定能mount成功,我多费事做这个干啥//  而且我初步判定99%的机率能 mount成功5..重启,启动成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/67468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【狂热算法篇】探秘图论之 Floyd 算法:解锁最短路径的神秘密码(通俗易懂版)

: 羑悻的小杀马特.-CSDN博客羑悻的小杀马特.擅长C/C题海汇总,AI学习,c的不归之路,等方面的知识,羑悻的小杀马特.关注算法,c,c语言,青少年编程领域.https://blog.csdn.net/2401_82648291?spm1010.2135.3001.5343 在本篇文章中,博主将带大家去学习所谓的…

使用arthas监控诊断java应用

使用arthas监控诊断java应用 简介 arthas是阿里的一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常&#xff…

【k8s面试题2025】3、练气中期

体内灵气的量和纯度在逐渐增加。 文章目录 在 Kubernetes 中自定义 Service端口报错常用控制器Kubernetes 中拉伸收缩副本失效设置节点容忍异常时间Deployment 控制器的升级和回滚日志收集资源监控监控 Docker将 Master 节点设置为可调度 在 Kubernetes 中自定义 Service端口报…

Linux安装docker,安装配置xrdp远程桌面

Linux安装docker,安装配置xrdp远程桌面。 1、卸载旧版本docker 卸载旧版本docker命令 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine现在就是没有旧版本的d…

Ubuntu20.04取消root账号自动登录的方法,触觉智能RK3568开发板演示

Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力…

LeetCode | 解锁数组与字符串的秘密:经典题型详解与高效解法

1.理论 1. 1.核心概念 1.1.1.数组(Array) 定义:存储相同数据类型的元素的线性集合。 特点:支持随机访问(通过索引);元素存储在连续内存中,支持高效的读写操作。 时间复杂度:访问:O(1);插入…

怎么修复损坏的U盘?而且不用格式化的方式!

当你插入U盘时,若电脑弹出“需要格式化才能使用”提示,且无法打开或读取其中的数据,说明U盘极有可能已经损坏。除此之外,若电脑在连接U盘后显示以下信息,也可能意味着U盘出现问题,需要修复损坏的U盘&#x…

数据结构漫游记:动态实现栈(stack)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…

【spring boot统一功能处理】拦截器

拦截器 在Spring Boot中,拦截器(Interceptor)是用于在处理请求前后进行一些自定义操作的组件,常用于日志记录、权限检查、性能监控等。拦截器的使用依赖于HandlerInterceptor接口和WebMvcConfigurer接口。 1. HandlerIntercepto…

qt自定义加载字体库ttf

在开发过程中,我们会用到其他的开源字体库,然而在打包后会在不同的电脑上遇到没有安装该字体的问题,以下是通过代码在main.cpp中添加字体示例,以供参考: int main(int argc, char *argv[]) {QApplication app(argc, a…

骑砍2霸主MOD开发(11)-可编程渲染管线Shader编程

一.固定渲染管线&可编程渲染管线 固定渲染管线:GPU常规渲染算法,将3D模型经过四大变换计算得到2D屏幕图像 可编程渲染管线:定制化GPU渲染算法,需要提交Shader至GPU中,GPU根据定制化算法得到2D屏幕图像 二.CoreShader&TerrainShader CoreShader:游戏中使用的静态shader…

w163美食推荐商城

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

计算机网络 (47)应用进程跨越网络的通信

前言 计算机网络应用进程跨越网络的通信是一个复杂而关键的过程,它涉及多个层面和组件的协同工作。 一、通信概述 计算机网络中的通信,本质上是不同主机中的应用进程之间的数据交换。为了实现这种通信,需要借助网络协议栈中的各层协议&#x…

Mysql--实战篇--大数据量表的分页优化(自增长主键,子查询主键主查询全部,查询条件加索引,覆盖索引等)

当Mysql数据表存储大量数据时(百万级别数据),分页查询的性能问题是一个常见的挑战。特别是当使用LIMIT和OFFSET时,随着OFFSET的增加,查询性能会显著下降。原因在于MySQL需要扫描并跳过前面的行,这会导致I/O…

【Linux】Mysql部署步骤

一、JDK安装配置 在home目录下执行命令:mkdir Jdk 1.将JDK 上传至该文件夹,有些终端工具可以直接上传文件,比如:MobaXterm 可以看到安装包已经上传上来了 2.直接安装 命令:rpm -ivh jdk-8u311-linux-x64.rpm 3.安装成…

【0391】Postgres内核 checkpointer process ① 启动初始化

相关文章: 【0108】checkpointer运行原理(概念篇)(1) 【0278】checkpointer 共享内存(CheckpointerShmem)初始化(3) 文章目录 1. 启动 checkpointer process1.1 初始化 checkpointer PID1.2 注册 signal1.3 初始化 last checkpoint time2. 确认 config 的 shared memo…

归子莫的科技周刊#2:白天搬砖,夜里读诗

归子莫的科技周刊#2:白天搬砖,夜里读诗 本周刊开源,欢迎投稿。 刊期:2025.1.5 - 2025.1.11。原文地址。 封面图 下班在深圳看到的夕阳,能遇到是一种偶然的机会,能拍下更是一种幸运。 白天搬砖,…

你需要什么样的资源隔离?丨TiDB 资源隔离最佳实践

导读 资源隔离是数据库性能优化的重要环节, TiDB 在当前版本已经实现了从数据级隔离到流控隔离的全面升级 ,无论是多系统共享集群、复杂负载隔离,还是小型系统整合和 SQL 精细化控制,TiDB 都提供了灵活且高效的解决方案。 本文以…

w162体育馆管理系统

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

Java中对list数据进行手动分页(可直接复用版)

1.获取list列表数据 // 这边用的mybatisplus查询的sql。条件自己组装 List<实体类> result baseMapper.getPageData(lambdaQuery); 2.计算总记录数 // 计算总记录数 int totalRecords result.size(); 3.创建分页对象&#xff0c;并塞入结果值 // 创建分页对象 IPa…