GRUB配置与应用,启动故障分析解决

摘要:
根定义GRUB的根目录设备,即内核所在的分区。修改/etc/grub后。conf配置文件,您需要键入相应的键,以便下次输入GRUB。

一、GRUB启动位置

GRUB是现今大多数Linux系统采用的自举程序,这里先来看一下Linux的程序顺序:

执行顺序  动作
固件Firmware(CMOS/BIOS) POST(Pwer On Self Test)加电自检
  
自举程序Bootloader(GRUB) →在MBR(Master Boot Loader)读取Bootloader,载入内核
   
 载入内核 →驱动硬件 (内核中较大部份是硬件驱动,可通过启动过程查看。)
   
 启动init进程 →init进程(PID恒为1的初始化进程,是所有进程的父进程。) 
  
读取执行配置文件/etc/inittab  

从以上启动顺可以看出,自举程序是在POST动作之后执行的。

二、GRUB配置文件

GRUB配置文件位于/etc/grub/grub.conf处,或者/etc/grub.conf(软链接):

GRUB配置与应用,启动故障分析解决第1张

 /etc/grub.conf的配置文件内容详细说明,更详细的可点击这里

项目说明
default定义缺省启动的操作系统,值为0时,表示启动第一个title处的系统,依此类推。
timeout定义缺省等待的时间,单位为秒。
splashimagegrub启动界面的图片,640*480分辨率,色深为14的图片,(hd0,0)表示第1块硬盘的第1个分区。
hiddenmenu隐藏菜单。
title定义启动菜单项的名称。
root定义GRUB的根目录设备即内核所在分区。
kernel定义内核所在位置,ro表示载入的时候内核是只读,。
initrd定义加载镜像文件。


GRUB配置与应用,启动故障分析解决第2张

三、单用户模式(Single User Mode)

Linux系统的单用户模式相当于Window的安全模式,其作用是当忘记ROOT密码、异常断电或者重启可能造成的数据不同步或磁盘扇区错乱等都需要要进入到单用户模式进行修复工作,单用户模式只有root用户可以登陆系统,而root用户登陆系统是不需要密码的。

如何进入单用户模式,先看一下在GRUB操作界面下的几个命令:

e:编辑当前的启动菜单项

c:进入GRUB的命令行方式

b:启动当前菜单项

d:删除当前行

esc:返回GRUB启动菜单界面,取消对当前菜单项所做的任务修改

GRUB配置与应用,启动故障分析解决第3张

按e键编辑当前启动菜单项,进入所选菜单项后选择kernel所在内行,再按e键可进入grub命令行,然后在kernel行的命令行末尾处加上相应在的运行级别(1或s为单用户运行级别),回车后在kernel所在行按b键即可以单用户模式启动。

GRUB配置与应用,启动故障分析解决第4张

四、设置GRUB密码

通过以上操作,似乎任何人只要在服务器前都可以更改root用户密码,这是极其不安全的,为了安全起见,可以为GRUB本身加上密码。

设置GRUB密码有两种方式:

1、使用GRUB自带的grub-md5-crypt命令

GRUB配置与应用,启动故障分析解决第5张

2、在GRUB交互命令行界面中使用md5crypt命令

GRUB配置与应用,启动故障分析解决第6张

注意,通过以上两种任何一种方式,并未完成对grub加密,还需要将生成的密钥更新到/etc/grub.conf文件(命令:password --md5 密钥字串,注意命令位置必须在全局环境中,即title命令行之上)。

GRUB配置与应用,启动故障分析解决第7张

通过上图方法修改/etc/grub.conf配置文件后,下次进入GRUB时需要键入对应的密钥才能进入。

五、操作案例

1:root密码忘记

操作步骤:

①、按照上面操作进入单用户模式;

②、在所登陆单用户模式下用“passwd root“即可以修改root密码;

2:/etc/grub.conf文件损坏

如果/etc/grub.conf文件损坏,会导致系统无法启动,这时需要进入GRUB的命令行模式,手工重新引导GRUB即可。

操作步骤:

①、进入GRUB命令行模式;

②、依次手动键入以下命令并回车(cat /etc/grub.conf命令查看配置文件)

root    指定启动分区

kernel  指定内核所在位置

initrd   指定镜像文件

3:/etc/inittab文件丢失

如果/etc/inittab文件丢失,系统将无法启动,这种故障只能通过linux安装光盘进行修复。

①、在BIOS程序内设置以光盘启动;

②、启动时按F5键进入linux的Rescure(修复、挽救)模式;

③、键入linux rescure回车进行系统修复;

④、根据提示执行相应操作步骤,然后进入命令提示符,根据提示改变根分区目录chroot /mnt/sysimage;

⑤、恢复/etc/inittab文件(通过备份恢复);

⑥、exit命令退出,系统自动重新引导,完成修复;

免责声明:文章转载自《GRUB配置与应用,启动故障分析解决》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ftp上传文件CPT中文预训练模型:理解和生成下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vps安全设置

适合新手及才接触VPS的朋友们看一下。主要是关于VPS安全方面相关内容的 禁止ROOT登陆 保证安全性。 使用DDoS deflate简单防攻击。 iftop Linux流量监控工具; 每日自己主动备份VPS到FTP空间。 升级LNMP的NGINX到最新版。 一、改动SSHport vi /etc/ssh/sshd_config 找到当中...

grub rescue问题修复

grub rescue问题修复 问题分析 出现该问题的原因是磁盘分区或者其他问题导致grub引导文件找不到,需要重新定位。 解决该问题的思路为: 找到grub引导文件在哪 告知系统引导的新位置 具体步骤 使用ls查看磁盘分区 找到grub所在位置 #查看是否有grub文件夹 ls (磁盘名)/ #给boot分配了独立分区 ls (磁盘名...

innobackupex备份恢复mysql

1、安装innobackupex wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el7-x86_64-bundle.tar wget...

安装phpldapadmin

1. 安装软件 [root@ ~]# yum -y install epel-release [root@ ~]# yum install -y phpldapadmin 2. 配置phpldapadmin [root@ ~]# vi /etc/httpd/conf.d/phpldapadmin.conf # # Web-based tool for...

(转)CentOS系统启动流程图文详解

CentOS系统启动流程图文详解. 原文:http://www.linuxidc.com/Linux/2017-03/141966.htm 熟悉系统启动流程对于我们学习Linux系统是非常有帮助的,虽然基础,但能帮助我们更加理解Linux系统的工作机制。以下将以CentOS发行版为例来介绍Linux系统的启动流程,因为在CentOS 5、CentOS 6以...

Oracle 12c 容器讲解

Oracle 12c一个重要新特性是插接式数据库。 插接式数据库由一个使用 CDB(Container Database)选项创建的容器数据库和一个或多个 PDB(Pluggable Database)组成,CDB 作为容器容纳 PDB,而 PDB 彼此隔离,就像一个独立的数据库般在 CDB 中存在。PDB 是一组 Schema 的集合,在 CDB 中作为...