一、grub配置文件简介

      grub是一个来自GNU项目的多操作系统启动程序,可用于在计算机启动时选择希望运行的操作系统或操作系统内核。grub由系统安装程序自动安装于MBR中,通常其引导主程序位于/boot分区的grub文件夹,配置文件为grub.conf。

修复grub文件的几个方法_第1张图片


grub.conf配置文件各字段说明
default 指定默认启动的内核或OS,值为数字
timeout 等待用户选择要启动的内核或OS的时长,值为数字,单位为秒
splashp_w_picpath 指定使用的背景图片,路径开头要使用类似于(hd0,0)表示哪块硬盘、硬盘的哪个分区
hiddenmenu 是否隐藏菜单,有这个字段则表示隐藏菜单,没有则表示显示
title 每个可选系统的名称
root 表示系统/boot分区所在硬盘的位置,也就是grub所在的位置,(hd0,0)在grub中用hd开头表示硬盘,并紧跟一个数字做各磁盘设备的标记,从0开始编号,第二个零表示硬盘的第一个分区,0-3为主分区。
kernel

指定内核文件及传递给内核的参数

内核文件路径以/boot为根路径;

ro 表示只读方式挂载,为了不让设备损坏,之后还要重新以读写方式挂载设备;

root=/path/to/Device 指定真正的根分区设备,表示把此设备给内核真正的根分区使用

quiet 内核初始化以静默模式执行,表示不输出任何初始化信息


initrd 此文件为加载内核的引导工具,通常以cpio归档,并使用gzip压缩,通常以.img作为文件名后缀
password

给 grub菜单添加密码,须要指定加密方式例

password --md5 $1$dnyTb1$VhieitehIKjT4Q3r/h/YT/


二、grub修复

   当grub错误后,通常进不了系统,如果系统还没有关机则可以手动添加grub.conf配置文件。如果系统已经关机了,则可以使用grub命令进入grub命令行模式引导系统。如果grub.conf文件存在,但是grub的其它程序出错了,则可以使用setup命令重新安装MBR,或者可以使用grub-install命令重新安装grub并添加grub.conf配置文件。

1、使用grub命令引导系统

(1)、首先我们模拟一个出错的环境,手动移动grub.conf配置文件,并重启

wKiom1MatGaDc0soAAAmpN4HnJY206.jpg

(2)、开机后grub因为找不到grub.conf配置文件,因而引导程序会自动进入grub命令行模式。

修复grub文件的几个方法_第2张图片

输入:help 可以获得帮助命令

修复grub文件的几个方法_第3张图片

(3)、我们需在此环境下使用grub手动配置一个临时的grub.conf文件先让系统能够正常开机。从配置文件的几个参数中可知道,我们要先找到/boot分区所在位置,如果不知道则可以使用find命令查找内核文件(文件名通常为vmlinuz开头),因为内核文件所在路径即为/boot分区。假设我们不知道/boot分区在哪块硬盘的哪个分区,于是我们从(hd0,0)开始使用find命令试。

wKiom1Matq2ga3ePAAATQ_98F5E418.jpg

按Tab键试试能不能自动补全。

wKioL1MatsDzFeC9AAAkMu8CnZQ501.jpg

文件自动补全了,说明/boot分区就在(hd0,0)中。接下来可以开始配置其它参数了。

(4)、配置root

wKiom1Mat2zxNXxgAAA9I8uk8Tg112.jpg

(5)、配置kernel,指定内核文件路径,以只读方式挂载,指定根分区设备,静默模式

wKiom1Mat8axqK1uAABf6n4Ygaw375.jpg

(6)、配置initrd,指定initrd文件

wKiom1MauD-y5Gy_AABP9Uzlk5g061.jpg

(7)、配置好后,输入 boot 就可以进入系统了,进入系统的第一件事情就是先在/boot/grub/目录下,创建grub.conf文件。


2、使用grub-install命令重新安装grub

假如计算机开机连grub命令模式也进不了,怎么办呢。这时使用安装光盘引导系统进入紧急救援模式,使用grub-install命令重新安装grub然后再配合使用grub命令进入系统添加配置文件。

(1)、使用光盘引导系统,选择紧急救援模式进入系统。

修复grub文件的几个方法_第4张图片

(2)、根据提示可以知道,系统根目录挂载于/mnt/sysp_w_picpath,进入shell环境。

修复grub文件的几个方法_第5张图片

(3)、使用chroot命令切换根目录

wKioL1MavWaD4g_hAAAhdGUn7Po496.jpg

(4)、使用grub-install命令安装grub

grub-install root-directory=/ /dev/sda

--root-directory参数的值的/boot分区的父目录,在当前系统下也就是根,/dev/sda表示安装在第一块硬盘。

修复grub文件的几个方法_第6张图片


2、使用setup重新安装MBR

同上使用光盘引导系统,进入救援模式,并且 chroot /mnt/sysp_w_picpath 切换根目录。

(1)、使用grub命令,进入grub模式

(2)、指定/boot分区

wKiom1Mav_aw4vHKAABChbnvM68602.jpg

(3)、使用setup命令安装MBR,并且指定哪块硬盘。

setup (hd0)

修复grub文件的几个方法_第7张图片

(4)、安装成功后,进入系统的/boot/grub目录,手动配置一个grub.conf文件,修复成功。