【Linux笔记】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(软链接):

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

三、单用户模式(Single User Mode)
Linux系统的单用户模式相当于Window的安全模式,其作用是当忘记ROOT密码、异常断电或者重启可能造成的数据不同步或磁盘扇区错乱等都需要要进入到单用户模式进行修复工作,单用户模式只有root用户可以登陆系统,而root用户登陆系统是不需要密码的。
如何进入单用户模式,先看一下在GRUB操作界面下的几个命令:
e:编辑当前的启动菜单项
c:进入GRUB的命令行方式
b:启动当前菜单项
d:删除当前行
esc:返回GRUB启动菜单界面,取消对当前菜单项所做的任务修改

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

四、设置GRUB密码
通过以上操作,似乎任何人只要在服务器前都可以更改root用户密码,这是极其不安全的,为了安全起见,可以为GRUB本身加上密码。
设置GRUB密码有两种方式:
1、使用GRUB自带的grub-md5-crypt命令

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

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

通过上图方法修改/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命令退出,系统自动重新引导,完成修复;
【Linux笔记】GRUB配置与应用,启动故障分析解决。的更多相关文章
- 重装ArchLinux后修改GRUB配置不生效问题的解决
重装ArchLinux后修改GRUB配置不生效问题的解决 mount指令看一下挂载,或者vim /etc/fstab看一下有没有/boot,看看fstab是不是没写进去.... 我特喵昨天重装完Arc ...
- linux教程:配置Tomcat开机启动
我们在linux下安装好tomcat之后:经常是需要配置到开机启动的: 这样的话就不需要我们每次重启linux服务器之后自己在登陆运行startup.sh文件启动tomcat了 本次的演示环境是在ce ...
- GRUB配置与应用,启动故障分析解决
一.GRUB启动位置 GRUB是现今大多数Linux系统采用的自举程序,这里先来看一下Linux的程序顺序: 执行顺序 动作 固件Firmware(CMOS/BIOS) → POST(Pwer ...
- Linux笔记-vim 配置
本文是转载的,我用的ubuntu12.04在vim设置方面就是参考了本文,拿来分享给大家! ubuntu10.10中的设置方法: $cd /etc/vim $sudo cp vimrc vimrc.b ...
- linux centos7 tomcat8 配置成服务启动
1. tomact 解压到/usr/local/tomcat下 2.vim /usr/local/tomcat/bin/catalina.sh 在OS specific support.前加上 (注意 ...
- LINUX 笔记-ubuntu 配置 jdk 环境
在 /etc/profile 文件尾添加 JAVA_HOME=/opt/jdk1.8.0JRE_HOME=${JAVA_HOME}/jre PATH=$PATH:$HOME/bin:$JAVA_H ...
- 开机启动遇到grub rescue,无法启动系统解决方法
先使用ls命令,找到Ubuntu的安装在哪个分区: grub rescue>ls 会罗列出磁盘信息 (hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7).. ...
- Linux(CentOS)安装配置zeromq、jzmq(解决各种问题)
今天为Hadoop配置zeromq.jzmq遇到各种问题,先是编译出错,到编译成功后测试出错等等,下面将我遇到的问题与大家分享一下. 第一个注意点是:必须先编译安装zeromq,然后在编译jzmq,否 ...
- linux笔记之基础 1
内核命名规则: R.X.Y-Z 2.6.32-642 R: 内核有重大改变时才会更改,目前为止有四个大版本更新. X:基数为开发版,偶数为稳定版. Y.Z:修复bug,实现新功能,新特性的时候更改 ...
随机推荐
- day 2 函数的嵌套
1.函数的嵌套 百度百科 2.产品如何运作 3.应用 1)版本1:打印1条线 #1.定义函数 def print_line(): print("-"*50) #2.调用函数 ...
- day5 RHCE
19 .配置 iSCSI 服务端 (***先做这个题目**,挂载重启,机器会挂掉) 配置server0提供一个iSCSI服务磁盘名为iqn.2014-11.com.example:server0,并 ...
- .NET core 项目部署在windows 服务器方法以及iis 访问报 500.19错误的解决办法
将本地发布的服务本地运行没问题,发布上云windows 服务器就报 500.19 0x8007000d 是因为云服务器没有安装.net core相关的插件,比如.NET CORE sdk等,请按照该文 ...
- [Bootstrap 源码解析]——bootstrap源码之初始化
bootstrap源码之初始化 我们先来分析normalize.less编译后的源码,我们知道normalize.css是一个专门将不同浏览器的默认css特性设置为统一效果的css库,它和reset. ...
- TCP的三次握手和四次分手
TCP的三次握手 图解: • 第一次握手:客户端发送syn包到服务器,并进入syn_send状态,等待服务器进行确认: • 第二次握手:服务器收到客户端的syn包,必须确认客户的SYN,同时自 ...
- Jmeter接口测试(四)传递参数
参数设置 Jmeter 支持通过 查询字符串参数(Query String Parameters) 或者 Request body 请求体来传递参数. 1.get请求是普通键值对 get请求一般通过p ...
- Spine with Unity Mecanim
前言 最近这两天刚刚接触Spine,研究了一下Unity Mecanim Animator如何控制Spine,在此分享记录一下,如有不当之处,请留言指出,欢迎讨论. Unity & Spine ...
- 前端之JavaScript(二)
一.概述 本篇主要介绍JavaScript的BOM和DOM操作,在前端之JavaScript(一)中介绍了JavaScript基础知识 1.1.BOM和DOM BOM(Browser Object M ...
- PLSQL变量和类型,流程控制语句,集合
---PLSQL 调试授权 GRANT debug any procedure, debug connect session TO scott; --定义变量 declare part_number ...
- drupal CVE-2018-7600 复现
1.系统环境 Drupal 8.5 linux 主机 ruby 代码 2.原理说明 影响版本 Drupal 6.x,7.x,8.x 参考:CVE-2018-7600漏洞分析 3.利用 在Python2 ...