Centos7折腾记:进不了系统,提示“Failed to mount /sysroot”

本文记录了一次远程修复华为服务器CentOS系统的经历,从数据备份到解决因swap分区错误导致的系统无法启动问题。通过PE系统、UFS Explorer工具读取和备份数据,然后在救援模式下使用xfs_repair命令尝试修复,最终成功恢复系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这是去年7月写的文章,当时对Linux并没什么了解,但是同学向我求助,也就去折腾了一回!

折腾经过:

前天同学打电话给我,说是某单位的华为服务器(H22H-05)进不了系统(Centos7),昆明的技术员说是要重新做系统,数据会丢失!但是,单位是坚决不允许数据丢失的!所以求助于我。。

说实话,之前我从未接触过Centos,甚至都没有研究过,所以问我我也是一问三不知。。

但是呢,研究问题是我比较喜欢的,所以第二天一早我问他搞定了没有,没有的话我先远程研究一下。。

然后就开始了远程折腾。。

远程操作说明:通过一台笔记本连接到服务器的管理口,然后使用华为的工具可以像管理自己电脑一样操作服务器,包括调整BIOS等。然后笔记本装了个向日葵,我在家使用向日葵远程到那台笔记本进行操作。

      首先看了一下,确实没有进入正常的系统,屏幕上提示了一堆英文,百度了一下,知道了那是救援模式或者叫救急模式。

然后根据屏上的提示,输入了命令:journalctl 查看系统日志。因为是第一次看Centos的日志,一开始看得很认真,还时不时就百度,后面发现不对,日志内容太多了!看到什么时候都不知道!

于是我直接按下end键,跳到了最后一页。屏幕上赫然出现了三行红色的错误提示!第一行就是:Failed to mount /sysroot 两外两行我没记,大概意思也是和这个提示有关。

然后往前翻了翻,还有一个提示是什么 “i8042控制器没有找到” 之类的,这个不影响。

很明显,不能正常进系统的原因必然是因为它:Failed to mount /sysroot

于是,百度之。。

度娘的结果,不敢说100%,99%给出的解决方法都是这个:xfs_repair -v -L /dev/dm-0

我信了!但是呢,有些人说可能会导致数据丢失!这。。

思来想去觉得不保险,研究了一天寻找更安全的方法,也始终没有敢输入这一串命令!

晚上,我打电话让同学安排把服务器抬过来,我打算先进PE里把数据备份一下,然后再折腾!

今天中午1点,服务器抬来了,开始现场折腾~~

首先,当然是插上我心爱的小U盘,想要进PE。结果试了几次都是,一从U盘启动服务器就自动关机!!PE进不去,头疼。。

研究了一下,发现是UEFI的启动方式,于是在BIOS中把UEFI改成了传统方式,再进PE成功了!

Windows是不能直接读取XFS(Centos默认使用的分区格式)格式的分区的,原本我是寄望于DiskGenius这款国产分区神器!

但是很不幸,它并不支持XFS。幸好我有所准备,拿出另一款超级神器:UFS Explorer

正确读出了服务器硬盘上的东西,除了一个分区显示 RAW 无法读取外,其它分区的数据都能看到!

于是我让人拿来一个移动硬盘,把单位需要的数据全部备份。

数据备份花了两三个小时,然后开始尝试修复系统!

我输入了网上查来的那串命令:xfs_repair -v -L /dev/dm-0

没用!!我又输入:xfs_repair -v -L /dev/dm-1

还是没用!!有点懵,我以为一下子就可以搞定的。。

想起在PE里,其它分区都对正常读取,只有那个RAW分区很奇怪,各种折腾之后确定那个是swap交换分区。。

我想,可能我和网上的那些情况不同吧。。导致错误的原因可能是swap分区异常!

于是,我开始折腾起这个分区!

服务器原本的救援模式很多命令都变得不可用了,于是我使用了一个有Centos7的U盘来导引,进入了它的救援模式

一翻折腾后,确定swap分区对应的是/dev/dm-5

于是我输入了:xfs_repair -v -L /dev/dm-5

还是没用!!

我也记不清究竟折腾了多少命令,翻了多少百度。。

用过的命令:mkfs.xfs -f -d agcount=2,su=256k,sw=2 -r extsize=512k /dev/dm-5

agcount=2表示使用两个CPU线程,su=256k表示块大小,sw=2 表示阵列有两个盘,extsize=512k 这个值是su*sw。这台服务器是3个硬盘组的RAID5,所以sw设成了2

…………

最后,好像是这样解决的:

swapoff -a   关闭swap

rm -f /mnt/sysimage/dev/mapper/cl-swap    删除swap。swap原本的路径是/dev/mapper/cl-swap,在U盘启动的救援模式中,会挂载到/mnt/sysimage目录下

xfs_repair /dev/dm-5      原本没报什么希望,所以也没加-v -L这两个参数。加不加这两个参数,我觉得这里的结果都是一样的

看到了不一样的提示,我预感它已经正常了!于是我又输入了一次:xfs_repair /dev/dm-5  然后reboot重启!!

这个时候已经快19点,肚子有点饿,还没等服务器重启好,我们就先去吃饭了~~

吃饭回来一看,久违的 localhost login:   出现了!

再次重启,仍是一切正常,搞定收工~~

skyyx2002

2021.07.18

后话

现在回想,这故障应只是swap分区出错导致!

以我现在对Linux的了解,可能几分钟就搞定了。。

回答: 当虚拟机出现"failed to mount"错误时,有几种可能的解决方法。首先,你可以尝试使用xfs_repair命令来修复文件系统。其中一个解决办法是运行以下命令: sudo xfs_repair -v -L /dev/dm-0 \[1\]。另一种方法是运行命令xfs_repair -L /dev/sda3 \[1\]。这些命令将尝试修复文件系统中的错误。 另外,如果虚拟机中存在swap分区,并且出现了问题,你可以尝试删除swap分区。你可以使用命令rm -f /mnt/sysimage/dev/mapper/cl-swap \[2\]来删除swap分区。请注意,swap分区的原始路径通常是/dev/mapper/cl-swap,在救援模式下会挂载到/mnt/sysimage目录下 \[2\]。 希望这些解决方法能够帮助你解决虚拟机"failed to mount"错误。如果问题仍然存在,请提供更多详细信息,以便我们能够给出更准确的解决方案。 #### 引用[.reference_title] - *1* [Failed to mount /sysroot](https://blog.csdn.net/zhezhebie/article/details/114276961)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Centos7折腾进不了系统提示Failed to mount /sysroot”](https://blog.csdn.net/s806903/article/details/125792214)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyyx2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值