CentOS 开机时遇到 GRUB 引导问题,可能会导致系统无法正常启动,为了帮助用户更好地理解和解决这一问题,本文将详细介绍 CentOS 开机 GRUB 引导的相关内容,包括 GRUB 的基本概念、常见问题及解决方法,以下是详细内容:
1、了解 GRUB 和问题原因
什么是 GRUB?:GRUB(Grand Unified Bootloader)是一个多操作系统启动管理器,广泛用于 Linux 系统,它负责加载操作系统内核和初始化文件系统。
为何会出现“GRUB>”提示符?:当 GRUB 无法找到正常的配置文件时,会进入命令行模式,提示用户手动输入命令来启动系统。
2、找出正确的启动设备和分区
查看设备和分区:在 GRUB 提示符下,使用ls
命令查看可用的设备和分区。
grub> ls
输出示例:
(hd0) (hd0,msdos2) (hd0,msdos1)
(hd0) 表示第一个硬盘,(hd0,msdos2) 和 (hd0,msdos1) 表示该硬盘上的第二个和第一个分区。
3、手动启动 Linux 系统
设置 root 设备:首先用ls
命令查看存在vmlinuz
文件和initramfs
文件的分区目录,
grub> ls (hd0,msdos1)/
假设正确路径为 (hd0,msdos1),则执行以下命令:
grub> set root=(hd0,msdos1)
加载内核和初始 RAM 磁盘:
grub> linux /vmlinuzversion ro root=/dev/sda1 grub> initrd /initramfsversion.img
注意:版本号需根据实际情况修改,根文件系统路径也需根据实际情况调整。
启动系统:
grub> boot
4、修复 GRUB
通过 livecd 修复 GRUB:如果能够成功手动启动系统,接下来可以修复 GRUB,使用 CentOS 安装光盘引导计算机,按 F5 进入系统修复模式,具体操作步骤如下:
1. 输入linux rescue
回车,默认 OK。
2. 选择 Continue 出现下面的界面。
3. 输入chroot /mnt/sysimage
,切换到原来系统的根目录。
4. 继续输入grub
,进入 GRUB 命令行模式。
5. 输入root (hd0,0)
和setup (hd0)
,指定 GRUB 安装位置并安装 GRUB。
6. 输入quit
退出 GRUB 模式,最后输入reboot
重启系统。
编辑配置文件:如果通过上述操作还是无法正常进入系统,可以在输入chroot /mnt/sysimage
之后继续编辑/boot/grub/grub.conf
文件,添加以下内容(以 CentOS 5.9 为例):
vi /boot/grub/grub.conf
添加内容:
# grub.conf generated by anaconda # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuzversion ro root=/dev/sda3 # initrd /initrdversion.img #boot=/dev/sda1 default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18348.el5) root (hd0,0) kernel /vmlinuz2.6.18348.el5 ro root=LABEL=/ initrd /initrd2.6.18348.el5.img
保存并退出,然后输入quit
退出 GRUB 模式,最后输入reboot
重启系统。
5、U盘安装的系统修复
插上 U 盘启动系统:如果系统是通过 U 盘安装的,拔了 U 盘后无法启动,可以采用以下方法修复:
1. 插上 U 盘,正常进入系统。
2. 输入grubinstall /dev/sda
,将 GRUB 安装到硬盘。
3. 编辑/boot/grub/device.map
文件,将(hd1) /dev/sda
改为(hd0) /dev/sda
。
4. 编辑/boot/grub/grub.conf
文件,将(hd1,0)
改为(hd0,0)
。
5. 保存后重启系统,拔掉 U 盘即可正常进入。
6、其他常见问题及解决方法
误删除 /boot/grub 文件夹或破坏 bootloader 所在分区:可以通过 livecd 进入救援模式,使用 rpm 安装内核文件进行修复,具体步骤如下:
1. 使用 livecd 引导系统,进入救援模式。
2. 挂载原系统的 /boot 分区,
mount /dev/sda1 /mnt/boot
3. 重新安装 grub:
grubinstall rootdirectory=/mnt/boot /dev/sda
4. 根据需要补全/boot/grub/grub.conf
文件。
CentOS 开机时遇到 GRUB 引导问题,通常是由于配置文件丢失或损坏引起的,通过手动启动系统并修复 GRUB,或者使用 livecd 进行修复,大多数问题都可以得到解决,对于 U 盘安装的系统,特别需要注意 GRUB 的安装位置和配置文件的修改,掌握这些方法和技巧,可以有效地应对各种 GRUB 引导问题,确保系统的正常运行。