恒星手记

  1. 首页
  2. Linux系统问题
  3. 正文

CentOS 7 LVM 根分区启动失败修复完整文档

2026年5月31日 158点热度 0人点赞 0条评论

Table of Contents

Toggle
  • 一、问题背景
  • 二、环境信息
  •  三、完整修复操作步骤
  • 四、操作中遇到的问题及解决方案
  • 五、修复后验证(系统正常登录后执行)
  • 六、预防措施
  • 七、问题总结

一、问题背景

现象描述

系统重启后无法正常启动,进入 GRUB 命令行界面,手动引导系统后进入 Emergency Mode(紧急模式)。


核心报错
1. Dependency failed for Initrd Root File System:无法挂载根文件系统
2. 系统根分区采用 LVM 逻辑卷格式,/boot 为独立普通分区

 根本原因
系统 initramfs 镜像缺少 LVM 依赖的 `dm-mod` 内核模块,启动阶段无法识别 LVM 逻辑卷,导致根分区挂载失败。

二、环境信息

- 操作系统:CentOS 7.9.2009 x86_64
- 分区架构:
1. /dev/sda1:独立 /boot 分区,文件系统 XFS
2. /dev/sda2:LVM 物理卷
3. 卷组:centos
4. 根分区:/dev/mapper/centos-root(LVM 逻辑卷)
5. 交换分区:/dev/mapper/centos-swap

 三、完整修复操作步骤

 步骤1:GRUB 手动引导系统
系统开机进入 grub> 命令行,执行以下命令手动引导:
set root=(hd0,msdos1)
linux /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro
initrd /initramfs-3.10.0-1160.el7.x86_64.img
boot
执行后系统进入紧急模式。

步骤2:紧急模式激活 LVM 卷组、挂载根分区
# 扫描系统 LVM 卷组
lvm vgscan
# 激活所有 LVM 卷组
lvm vgchange -ay

# 将 LVM 根分区挂载到临时目录 /sysroot
mount /dev/mapper/centos-root /sysroot

# 验证挂载(输出 bin、etc、home 等目录即为正常)
ls /sysroot/

步骤3:绑定系统必要目录至 chroot 环境
chroot 环境默认无法识别硬件设备,需绑定 `/dev` `/sys` `/proc`:

mount -o bind /dev /sysroot/dev
mount -o bind /sys /sysroot/sys
mount -o bind /proc /sysroot/proc

 步骤4:进入 chroot 环境,挂载 /boot 分区

# 切换至原系统环境
chroot /sysroot

# 挂载独立 boot 分区
mount /dev/sda1 /boot

步骤5:重建 initramfs 镜像(核心修复)

# 查看当前内核版本
uname -r

# 重建内核启动镜像,加入 LVM 依赖模块 dm-mod
dracut -f --add-drivers "dm-mod" /boot/initramfs-3.10.0-1160.el7.x86_64.img 3.10.0-1160.el7.x86_64

 

步骤6:重新生成 GRUB 启动配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

> 说明:执行过程出现 `Failed to connect to lvmetad` 为警告,不影响系统正常启动。

步骤7:退出环境并重启系统

# 退出 chroot 环境
exit

# 重启服务器
reboot

四、操作中遇到的问题及解决方案

问题1:GRUB 提示 unknown filesystem
- 现象:切换分区后提示文件系统未知
- 原因:选错 /boot 分区
- 解决:依次测试 (hd0,msdos1)、(hd0,msdos2),`/dev/sda1` 对应 (hd0,msdos1) 为正确 boot 分区。

问题2:chroot 内执行 mount /dev/sda1 /boot 提示:no such device
- 现象:找不到 /dev/sda1 设备
- 原因:未将宿主机 `/dev` `/sys` `/proc` 绑定到 /sysroot
- 解决:执行 `mount -o bind` 绑定对应目录后再进入 chroot。

问题3:dracut 提示 Failed to install module lvm
- 现象:加载 lvm 模块失败
- 原因:LVM 依赖内核模块为 `dm-mod`,并非 lvm
- 解决:将参数改为 `--add-drivers "dm-mod"`。

问题4:grub2-mkconfig 警告 Failed to connect to lvmetad
- 现象:无法连接 lvmetad 服务
- 原因:lvm2-lvmetad 服务未开机自启
- 后续优化(系统正常启动后执行):

systemctl enable lvm2-lvmetad
systemctl start lvm2-lvmetad
grub2-mkconfig -o /boot/grub2/grub.cfg

五、修复后验证(系统正常登录后执行)

# 查看分区挂载状态
mount | grep -E "/ |/boot"

# 查看 LVM 卷组状态
vgs

# 检查 initramfs 是否包含 dm-mod 模块
lsinitrd /boot/initramfs-$(uname -r).img | grep dm-mod

六、预防措施

1. 内核升级、系统大版本更新后,必须重新执行 `dracut` 重建 initramfs;
2. 定期备份 `/etc/fstab`、`/boot/grub2/grub.cfg` 关键配置文件;
3. LVM 环境保持 `lvm2-lvmetad` 服务开机自启;
4. 服务器分区使用 LVM 时,建议单独划分 /boot 分区,规避整体故障风险。

七、问题总结

本次故障核心:**LVM 环境下 initramfs 缺少 dm-mod 驱动**,系统启动无法识别 LVM 逻辑卷。
修复核心流程:
GRUB手动引导 → 紧急模式激活LVM → 挂载根分区 → 绑定系统目录 → chroot环境 → 重建initramfs → 重生成GRUB配置 → 重启验证。

标签: 暂无
最后更新:2026年5月31日

数字

各位大哥大姐多多关照

点赞

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 6 月
  • 2026 年 5 月
  • 2026 年 4 月
  • 2026 年 3 月
  • 2025 年 11 月
  • 2025 年 10 月
  • 2025 年 9 月
  • 2025 年 8 月
  • 2025 年 7 月
  • 2025 年 6 月

分类

  • linux工具
  • Linux系统问题
  • OpenStack
  • wordpress
  • zabbix
  • 服务器
  • 未分类
  • 杂记

COPYRIGHT © 2025 恒星手记. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备2025416422号-1