gnu grub修复_修复grub文件的几个方法

一、grub配置文件简介

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

ec6ebd15a9cbff4b5b6686f0eec04cd7.png

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配置文件,并重启

0a486177e859da0649ce102d65923d18.png

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

b31f319fc7b2fee5202eadaa1d0eb173.png

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

d2efbb3b37ad76ba45f2415342840237.png

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

014807b220b0d58f0c7655466caba231.png

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

5a0c1a5a1c2d7c16c61cccca9abd1e6d.png

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

(4)、配置root

53a180e1d5e1fcbd8f6bd9d5e0422942.png

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

e53addf3c32b09182ddb863a8bf12717.png

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

f51f51e7527b86c3010b834f30814b35.png

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

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

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

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

482ebf9257f4fb31435bf573d47dfb5c.png

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

d89f4c5339bd4cca2c01cf7091a660a8.png

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

93bca9cc186f721fbddacc01eac15b20.png

(4)、使用grub-install命令安装grubgrub-install root-directory=/ /dev/sda

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

2d485fa7c8a9535de1b94180fabc04a2.png

2、使用setup重新安装MBR

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

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

(2)、指定/boot分区

2dfe7698383302f1b0453a9071144a57.png

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

21e5528920b3d45f70faccee91d7ebdc.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值