centos7grub配置文件及排错

rhel7 grub配置文件及排错linux

http://hongge.blog.51cto.com/shell

RHEL7用了grub2,而再也不是grub了网络

MBR分区的前446个字节存放的是系统引导程序grub,中间64字节是分区表,最后2个字节表示结束。那么什么是grub是怎么工做的呢?ide

简单的说,开机会经历如下几步:ui

一、BIOS自检,检查硬件;加密

二、激活MBR,MBR上不存在文件系统,能够视做硬件一部分,所以能够被直接读取命令行

三、grub加载到内存,生成一个微系统,微系统内置了精简版的文件系统3d

四、经过这个微系统,他会去引导分区,好比默认通常是sda1上去找内核文件如vmlinuz,而后再调用grub的配置文件。blog

grub的主要把他的配置文件放在了3个地方。进程

/boot/grub2/grub.cfg  (/etc/grub2.cfg是/boot/grub2/grub.cfg文件的符号连接)

/etc/grub.d/ 

/etc/default/grub

以下所示。他们的关系是 grub.cfg里面经过 ####BEGIN  ##### 这种格式按照顺序调用/etc/grub.d里面的脚本实现不一样的功能。grub.d目录里面有不少数字开头的脚本,按照从小到大的顺序执行。以00__header为例,他又会调用 /etc/default/grub 配置文件来实现最基本的开机界面配置

clip_image002

例如:在/etc/grub2.cfg是文件里面调用 /etc/grub.d/10_linux 来配置不一样的内核,这里面有2个 menuentry (菜单入口),因此咱们开机的时候会看见两个默认选项,一个是普通模式,一个是救援模式

clip_image004

这个是/etc/default/grub 文件。和其余的脚本比较起来,很是简单直观了。后面会举例如何修改

须要注意的是,最好不要直接去修改 /etc/grub2.cfg 文件。这个是由于若是后期升级内核,全部的配置都会失效。若是须要自定义这个文件,咱们能够修改对应的脚本或者 /etc/default/grub文件,而后经过 grub2-mkconfig 从新生成grub.cfg文件。

例1:修改启动的等待时间

rhel7默认启动等待时间为5秒,下面将启动时间修改成3秒(注:若是改成-1,那么每次启动时需手动确认才能够)

修改/etc/default/grub文件,以下图所示:

clip_image006

修改以后从新编译生成grub.cfg文件

clip_image008

例2:修改网卡的显示名字,这个前面作网络配置的时候提到过,这里不赘述了。

例3:加密grub

开机界面的时候若是输入e,会打开编辑窗口,咱们能够根据须要进入rescue, emergency 或者 shell 模式。如何限制访问。

在/etc/grub.d/00_header 文件末尾,添加如下内容

clip_image009

从新编译生成grub.cfg文件

clip_image011

重启以后输入e,就须要用户和密码才能进入编辑窗口了

以上设置的是明文密码,那如何设置密文口令呢?

加密密码由命令grub2-mkpasswd-pbkdf2生成

clip_image012

在/etc/grub.d/00_header 文件末尾,添加如下内容

cat <<EOF

set superusers=’用户名’

password_pbkdf2 用户名加密密码

EOF

以下图所示:

clip_image014

从新编译生成grub.cfg文件

grub2-mkconfig–o /boot/grub2/grub.cfg

重启验证

注:在文本终端模式下,安装并启用gpm后就可复制粘贴了。

clip_image016

在这个编辑窗口,咱们能够根据须要进入 rescue,emergency和 shell引导的3种模式。这3种模式对于系统启动排错颇有帮助,好比某个服务卡住了没法加载咱们能够经过这3种模式来排错。

rescue模式: 在commandline的配置末尾添加s ,相似rhel6以前的单用户模式

clip_image018

按ctrl+x启动

普通模式须要加载的服务不少,可是这个rescue模式加载的就少不少了,输入管理员密码就能够进入了。

clip_image020

emergency 模式和rescue模式相似,不过加载的服务更少,把s改为 emergency就好了

那么若是忘记root密码了怎么办?

方法1:

一、重启系统,按e

二、在linux16那行的最尾部加上一下信息

rd.break console=tty0

clip_image022

三、按ctrl+x启动

四、从新挂在文件系统

clip_image024

五、改变根目录

clip_image025

六、修改root密码

clip_image027

七、在根目录下建立相关文件(用于从新标记selinux环境值)

clip_image028

八、退出,系统将会重启

clip_image029

方法2:

在linux16 的最后一行删除 rhgb quiet, 而后添加 init=/bin/sh, 他会用shell替代默认的daemon进程

clip_image031

按ctrl+x启动

挂载文件系统为可写模式,缘由很简单,根目录加载的权限是ro,只读,从新加载成 rw的权限。

clip_image032

这个时候就能够修改密码了,执行passwd,按提示修改root密码

clip_image033

如何以前系统启用了selinux,必须运行如下命令,不然将没法正常启动系统:

clip_image034

建立这个文件会自动在开启的时候从新作标签即用于从新标记 SELINUX 环境值

运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启

注意:红帽考试时建议使用方法1,方法2在考试环境中以过期了。

开机排错

例1. grub故障:好比把MBR的前446个字节都覆盖了。

clip_image035

系统重启后则出现以下故障现象

开机的时候会自动尝试从本地,光盘和网络加载引导程序(若是光盘、网络等引导失败则会operatiing system not found);这里是从个人光盘加载的,由于本地的引导程序已经没有了.

clip_image037

选择troubleshooting (排错)

clip_image038

选择resure a red hat enterprise linux system

clip_image040

选择continue,注意有耐心多等一下,有的时候会卡个10秒才有反应

按照提示,切换根到本机的系统

clip_image042

fdisk -l 看看启动分区是哪一个,有星号的就是

clip_image044

重装一下 grub2 到启动分区就能够了

clip_image045

重启就OK了

例2:若是grub引导程序没问题,可是咱们把内核文件或者grub.cfg配置文件给删除了怎么办

clip_image047

重启以后,直接进入grub的救援模式,这代表引导程序木有问题,可是引导文件找不到了

clip_image048

和前面同样,光盘启动,切换根目录,挂载一下光盘到光盘挂载点, 顺便看看/boot目录,里面空荡荡的,内核文件和配置文件都没了

clip_image050

解决方法就是从新安装内核,能够用rpm 或者yum,用yum须要先卸载当前的,再安装; rpm能够强行--force覆盖安装。

clip_image052

装完内核以后,从新安装一次 grub2, 输入 grub2-install /dev/sda, 而后从新编译一下grub2就好了

clip_image054

重启系统就能够了。

重启以后,若是碰见如下问题:

问题是开机直接进入命令行模式,即便runlevel显示的是5,手动输入startx同样报错。

解决方式是从新安装图形化界面

yum grouplist

yum groupinstall 'Server with GUI'

http://hongge.blog.51cto.com/

相关文章
相关标签/搜索