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命令退出,系统自动重新引导,完成修复;
GRUB配置与应用,启动故障分析解决的更多相关文章
- 重装ArchLinux后修改GRUB配置不生效问题的解决
重装ArchLinux后修改GRUB配置不生效问题的解决 mount指令看一下挂载,或者vim /etc/fstab看一下有没有/boot,看看fstab是不是没写进去.... 我特喵昨天重装完Arc ...
- 【Linux笔记】GRUB配置与应用,启动故障分析解决。
一.GRUB启动位置 GRUB是现今大多数Linux系统采用的自举程序,这里先来看一下Linux的程序顺序: 执行顺序 动作 固件Firmware(CMOS/BIOS) → POST(Pwer ...
- 开机启动遇到grub rescue,无法启动系统解决方法
先使用ls命令,找到Ubuntu的安装在哪个分区: grub rescue>ls 会罗列出磁盘信息 (hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7).. ...
- 最小配置启动SQL SERVER,更改SQL Server最大内存大小导致不能启动的解决方法
如果存在配置问题而无法启动服务器,则可以使用最小配置启动选项来启动 Microsoft SQL Server 实例. 这就是启动选项 -f. 使用最小配置启动 SQL Server 实例会自动将服务器 ...
- CAS SSO:汇集配置过程中的错误解决方法
本教程为gevin.me原创文章,转载请注明: CAS SSO:配置过程中的错误解决方法 | Gevin’s Blog 本文将收集在配置CAS SSO遇到的所有错误,希望对大家有帮助,也方便下次搭建的 ...
- 安装Wamp后 Apache无法启动的解决方法
安装Wamp后 Apache无法启动的解决方法,网上的解决方案可以说是五花八门,有些说了一大推,一点作用都起不到. 其实解决方法只需两步: 1.安装路径不能包含有中文,这个我不知道为什么,总之如果安装 ...
- Apache服务无法启动的解决方法
apache服务无法启动的解决方法 在配置apache的时候,把apache安装为服务myweb,用apacheMonitor启动myweb发现无法启动,提示:the requested operat ...
- mysql 1053错误,无法启动的解决方法
mysql 1053错误,无法启动的解决方法 windows2003服务器中,服务器重启后Mysql却没有启动,手动启动服务时提示1053错误. 尝试了以下方法,终于解决. 1.在DOS命令行使用 第 ...
- 安装Wamp后 Apache无法启动的解决方法
安装Wamp后 Apache无法启动的解决方法,网上的解决方案可以说是五花八门,有些说了一大推,一点作用都起不到. 其实解决方法只需两步: 1.安装路径不能包含有中文,这个我不知道为什么,总之如果安装 ...
随机推荐
- ZROI 暑期高端峰会 A班 Day5 计算几何
内积(点积) 很普及组,不讲了. \[(a,b)^2\le(a,a)(b,b)\] 外积(叉积) 也很普及组,不讲了. 旋转 对于矩阵 \(\begin{bmatrix}\cos\theta\\\si ...
- px转rem vue vscode
1.vscode中安装px2rem 2.打开settings.json ,新增 "px2rem.rootFontSize": 75, 3.重启vscode 4.可以转换了
- 常用Linux软件安装
JDK 先从Oracle官网下载JDK Linux版本的安装包,上传到服务器,这里推荐在服务器中创建一个目录/software,可以将所有软件的安装包放在这个目录下(或者是/opt目录下),将软件包解 ...
- Gamma阶段项目展示
Gamma阶段项目展示 一. 团队成员介绍 姓名 Gamma职责 个人博客 张圆宁 PM,后端 个人博客 王文珺 后端 个人博客 牛宇航 后端 个人博客 申化文 后端 个人博客 汪慕澜 测试,部署 个 ...
- IE浏览器卡死提示是否停止运行此脚本的解决办法
IE浏览器经常卡死,报是否停止运行此脚本,严重影响使用体验,下面小编教大家怎么解决这个问题,供大家参考! 1.启动IE浏览器,点击上方菜单栏位的工具,如下图所示 2.在工具栏位选择internet选项 ...
- 【计算机视觉】ImageNet介绍
ImageNet介绍 ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库.是美国斯坦福的计算机科学家,模拟人类的识别系统建立的.能够从图片识别物体.ImageNet是一 ...
- vs中使用tfs创建项目
1.打开“Team Explorer”,点击“Home”,选择"Project"->"New Team Project",操作如下图: 2.输入项目名称. ...
- Oracel 数据库表操作
表结构操作 创建表 create table tableName (id varchar2(36) primary key, name varchar2(36), age number(12,2), ...
- golang学习 ---defer语句
golang语言defer特性详解 defer语句是go语言提供的一种用于注册延迟调用的机制,它可以让函数在当前函数执行完毕后执行,是go语言中一种很有用的特性.由于它使用起来简单又方便,所以深得go ...
- maven添加本地包命令mvn install:install-file
mvn install:install .jar -Dfile:要注册的jar,绝对路径