CentOS 硬盘损坏无法启动修复教程
本教程将指导您如何修复 CentOS 系统因硬盘损坏导致无法启动的问题。
方法一:启动时强制文件系统检查
步骤 1:进入 GRUB 编辑模式
- 系统启动时,在 GRUB 菜单界面按
e键进入编辑模式
步骤 2:修改启动参数
-
找到以
linux或linux16开头的行,例如:linux /vmlinuz-3.10.0-xxx.el7.x86_64 ro root=/dev/sda1 -
在该行的末尾(
root=/dev/sda1后面)添加以下参数:fsck.mode=force fsck.repair=yes -
完整示例:
linux /vmlinuz-3.10.0-xxx.el7.x86_64 ro root=/dev/sda1 fsck.mode=force fsck.repair=yes -
按
Ctrl + X或F10启动系统 -
系统将自动进行文件系统检查和修复
方法二:使用救援模式(Rescue Mode)
如果方法一无法修复,请使用 CentOS 官方镜像的救援模式。
步骤 1:启动救援模式
- 使用 CentOS 官方安装镜像启动系统
- 在启动菜单中选择 "Troubleshooting"
- 选择 "Rescue a CentOS system"
- 选择 "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
注意事项
- 数据备份:在执行修复操作前,如果可能,请先备份重要数据
- 设备名称 :请根据实际情况替换设备名称(如
/dev/sda1、/dev/sdb等) - 强制修复风险 :使用
xfs_repair -L强制修复可能导致数据丢失,请谨慎使用 - LVM 卷名 :如果您的系统使用不同的卷组名(非
centos),请相应调整命令中的路径 - 文件系统类型 :如果您的系统使用 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年