记一次CentOS 硬盘损坏无法启动修复教程

CentOS 硬盘损坏无法启动修复教程

本教程将指导您如何修复 CentOS 系统因硬盘损坏导致无法启动的问题。

方法一:启动时强制文件系统检查

步骤 1:进入 GRUB 编辑模式

  1. 系统启动时,在 GRUB 菜单界面按 e 键进入编辑模式

步骤 2:修改启动参数

  1. 找到以 linuxlinux16 开头的行,例如:

    复制代码
    linux /vmlinuz-3.10.0-xxx.el7.x86_64 ro root=/dev/sda1
  2. 在该行的末尾(root=/dev/sda1 后面)添加以下参数:

    复制代码
    fsck.mode=force fsck.repair=yes
  3. 完整示例:

    复制代码
    linux /vmlinuz-3.10.0-xxx.el7.x86_64 ro root=/dev/sda1 fsck.mode=force fsck.repair=yes
  4. Ctrl + XF10 启动系统

  5. 系统将自动进行文件系统检查和修复


方法二:使用救援模式(Rescue Mode)

如果方法一无法修复,请使用 CentOS 官方镜像的救援模式。

步骤 1:启动救援模式

  1. 使用 CentOS 官方安装镜像启动系统
  2. 在启动菜单中选择 "Troubleshooting"
  3. 选择 "Rescue a CentOS system"
  4. 选择 "1" 继续

步骤 2:激活 LVM 卷

系统进入救援模式后,执行以下命令激活 LVM 卷:

bash 复制代码
sudo pvscan
sudo vgscan
sudo lvscan
sudo vgchange -ay

步骤 3:挂载系统分区

3.1 创建挂载点(如果不存在)
bash 复制代码
sudo mkdir -p /mnt/failed_disk
3.2 挂载根分区

根据 lvscan 的输出,找到根分区路径(通常是 /dev/mapper/centos-root),然后挂载:

bash 复制代码
sudo mount /dev/mapper/centos-root /mnt/failed_disk

注意:如果挂载失败,说明文件系统可能已损坏,需要先修复。

3.3 修复文件系统(如果需要)

如果挂载失败,使用 xfs_repair 修复 XFS 文件系统:

bash 复制代码
# 先尝试正常修复
sudo xfs_repair /dev/mapper/centos-root

如果正常修复失败,使用强制修复(注意:此操作可能导致数据丢失):

bash 复制代码
sudo xfs_repair -L /dev/mapper/centos-root

修复完成后,再次尝试挂载:

bash 复制代码
sudo mount /dev/mapper/centos-root /mnt/failed_disk
3.4 挂载启动分区

/dev/sda1(或您的实际启动分区)挂载到 /boot 目录:

bash 复制代码
sudo mount /dev/sda1 /mnt/failed_disk/boot

步骤 4:挂载必要的系统目录

为了在 chroot 环境中正常工作,需要挂载以下目录:

bash 复制代码
sudo mount -o bind /proc /mnt/failed_disk/proc
sudo mount -o bind /dev /mnt/failed_disk/dev
sudo mount -o bind /sys /mnt/failed_disk/sys
sudo mount -o bind /run /mnt/failed_disk/run

步骤 5:进入 chroot 环境并修复 GRUB

5.1 进入 chroot 环境
bash 复制代码
sudo chroot /mnt/failed_disk
5.2 重新安装 GRUB

注意 :请将 /dev/sdb 替换为您的实际硬盘设备(通常是 /dev/sda

bash 复制代码
grub2-install /dev/sdb
5.3 重新生成 GRUB 配置文件
bash 复制代码
grub2-mkconfig -o /boot/grub2/grub.cfg
5.4 重新生成 initramfs
bash 复制代码
dracut -f --verbose

步骤 6:退出并重启

bash 复制代码
exit
sudo umount /mnt/failed_disk/run
sudo umount /mnt/failed_disk/sys
sudo umount /mnt/failed_disk/dev
sudo umount /mnt/failed_disk/proc
sudo umount /mnt/failed_disk/boot
sudo umount /mnt/failed_disk

重启系统:

bash 复制代码
sudo reboot

注意事项

  1. 数据备份:在执行修复操作前,如果可能,请先备份重要数据
  2. 设备名称 :请根据实际情况替换设备名称(如 /dev/sda1/dev/sdb 等)
  3. 强制修复风险 :使用 xfs_repair -L 强制修复可能导致数据丢失,请谨慎使用
  4. LVM 卷名 :如果您的系统使用不同的卷组名(非 centos),请相应调整命令中的路径
  5. 文件系统类型 :如果您的系统使用 ext4 而非 XFS,请使用 fsck 命令替代 xfs_repair

常见问题

Q: 如何确定我的启动分区和设备名称?

A: 使用以下命令查看:

bash 复制代码
lsblk
fdisk -l

Q: 如何确定我的 LVM 卷组名称?

A: 使用以下命令查看:

bash 复制代码
sudo vgdisplay
sudo lvdisplay

Q: 修复后仍然无法启动怎么办?

A: 检查以下内容:

  • GRUB 是否正确安装到正确的设备
  • /boot/grub2/grub.cfg 文件是否存在且正确
  • 启动分区的挂载是否正确
  • 检查系统日志:journalctl -b 或查看 /var/log/messages

参考资料


最后更新:2025年

相关推荐
小小管写大大码6 小时前
如何让vscode变得更智能?vscode接入claude实现自动编程
运维·ide·vscode·自动化·编辑器·ai编程·腾讯云ai代码助手
嵩山小老虎6 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模6 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
zhang133830890756 小时前
CG-09H 超声波风速风向传感器 加热型 ABS材质 重量轻 没有机械部件
大数据·运维·网络·人工智能·自动化
a41324477 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.8 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
物联网软硬件开发-轨物科技8 小时前
【轨物洞见】告别“被动维修”!预测性运维如何重塑老旧电站的资产价值?
运维·人工智能
程序员允诺8 小时前
[DevOps实战] 彻底解决依赖地狱:如何编译全静态、可移植的 Xorriso 工具
运维·devops
酣大智8 小时前
接口模式参数
运维·网络·网络协议·tcp/ip
一只自律的鸡8 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug