CentOS 恢复引导
CentOS 系统在遇到引导问题时,可能会无法正常启动,本文将详细介绍如何在 CentOS 系统中恢复引导过程,包括修复 MBR、GRUB2 以及处理 Windows 双系统的引导问题,以下是具体的步骤和操作指南:
一、修复MBR(Master Boot Record)
1. 备份MBR
dd if=/dev/sda of=/root/mbr.bak count=1 bs=512
此命令将硬盘的主引导记录备份到/root/mbr.bak
文件。
2. 破坏 bootloader
dd if=/dev/zero of=/dev/sda count=1 bs=200
此命令会破坏当前的主引导记录。
3. 修复方式
借助其他系统挂载磁盘修复
使用其他 Linux 系统挂载磁盘,然后执行以下命令:
grub2install rootdirectory=/mnt/sysimage /dev/sda
此命令会重新安装 GRUB2 到指定的设备上。
借助安装光盘修复
使用 CentOS 安装光盘启动系统,选择“Troubleshooting”选项进入救援模式。
按回车键继续,选择磁盘挂载模式,并确认以读写模式挂载分区。
输入以下命令:
chroot /mnt/sysimage grub2install /dev/sda reboot
此命令会重新建立引导记录并重启系统。
二、修复GRUB2
GRUB2 配置文件丢失或损坏,可以通过以下步骤进行修复:
1. 进入 GRUB 命令行模式
开机后按c
键进入 GRUB 命令行模式。
2. 设置根目录和加载模块
insmod xfs set root=(hd0,1) linux16 /vmlinuzxxxxx root=/dev/mapper/centosroot ro initrd16 /initramfsxxxxx.img
命令用于设置根目录并加载必要的模块和内核文件。
3. 重建配置文件
进入系统后,重新生成 GRUB 配置文件:
grub2mkconfig o /boot/grub2/grub.cfg
注意:centos7 使用的是 GRUB2,配置文件与旧版本不同,务必备份原配置文件以便恢复。
三、恢复Windows引导
在修复 CentOS 引导后,如果需要继续恢复 Windows 的引导项,可以按照以下步骤操作:
1. 安装 NTFS3G 支持
首先确保 CentOS 能够识别 Windows 所在的 NTFS 分区:
yum install ntfs3g
2. 重新生成 GRUB 配置
通过以下命令重新生成 GRUB 配置文件,自动添加 Windows 引导项:
grub2mkconfig o /boot/grub2/grub.cfg
此命令会自动扫描所有操作系统并添加到 GRUB 菜单中。
四、UEFI环境下的GRUB修复
对于较新的系统,使用 UEFI 固件进行引导修复:
1. 启动救援模式
使用最新版的 DVD 或 ISO 映像启动系统,选择“Troubleshooting”>“Rescue a Red Hat Enterprise Linux system”。
2. 挂载本地文件系统和ISO镜像
mount /dev/sr0 /mnt mount /dev/sdaX /mnt/sysimage # X为实际分区号
3. 修复/boot目录和GRUB2
yum reinstall kernel grub2efi shim grub2mkconfig o /boot/efi/EFI/redhat/grub.cfg
4. 重启系统
reboot
此方法适用于 RHEL7/CentOS7 系统在 UEFI 环境下的 GRUB 修复。
五、常见问题及解决方案
Q1: 如果通过上述操作还是无法正常进入系统怎么办?
A1: 可以尝试手动编辑/boot/grub/grub.conf
文件,添加以下内容(以CentOS 5.9为例):
title CentOS (2.6.18348.el5) root (hd0,0) kernel /vmlinuz2.6.18348.el5 ro root=LABEL=/ initrd /initrd2.6.18348.el5.img
保存并退出后,重启系统。
Q2: 如果系统是通过U盘安装的,拔下U盘后无法启动怎么办?
A2: 插上U盘正常进入系统后,执行以下命令:
grubinstall /dev/sda vi /boot/grub/device.map # 修改为 (hd0) /dev/sda vi /boot/grub/grub.conf # 修改里面的(hd1,0)为(hd0,0)
保存并重启系统,拿掉U盘即可正常启动。