一、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配置与应用,启动故障分析解决的更多相关文章

  1. 重装ArchLinux后修改GRUB配置不生效问题的解决

    重装ArchLinux后修改GRUB配置不生效问题的解决 mount指令看一下挂载,或者vim /etc/fstab看一下有没有/boot,看看fstab是不是没写进去.... 我特喵昨天重装完Arc ...

  2. 【Linux笔记】GRUB配置与应用,启动故障分析解决。

    一.GRUB启动位置 GRUB是现今大多数Linux系统采用的自举程序,这里先来看一下Linux的程序顺序: 执行顺序    动作 固件Firmware(CMOS/BIOS) →  POST(Pwer ...

  3. 开机启动遇到grub rescue,无法启动系统解决方法

    先使用ls命令,找到Ubuntu的安装在哪个分区: grub rescue>ls 会罗列出磁盘信息 (hd0)  (hd0,msdos9) (hd0,msdos8) (hd0,msdos7).. ...

  4. 最小配置启动SQL SERVER,更改SQL Server最大内存大小导致不能启动的解决方法

    如果存在配置问题而无法启动服务器,则可以使用最小配置启动选项来启动 Microsoft SQL Server 实例. 这就是启动选项 -f. 使用最小配置启动 SQL Server 实例会自动将服务器 ...

  5. CAS SSO:汇集配置过程中的错误解决方法

    本教程为gevin.me原创文章,转载请注明: CAS SSO:配置过程中的错误解决方法 | Gevin’s Blog 本文将收集在配置CAS SSO遇到的所有错误,希望对大家有帮助,也方便下次搭建的 ...

  6. 安装Wamp后 Apache无法启动的解决方法

    安装Wamp后 Apache无法启动的解决方法,网上的解决方案可以说是五花八门,有些说了一大推,一点作用都起不到. 其实解决方法只需两步: 1.安装路径不能包含有中文,这个我不知道为什么,总之如果安装 ...

  7. Apache服务无法启动的解决方法

    apache服务无法启动的解决方法 在配置apache的时候,把apache安装为服务myweb,用apacheMonitor启动myweb发现无法启动,提示:the requested operat ...

  8. mysql 1053错误,无法启动的解决方法

    mysql 1053错误,无法启动的解决方法 windows2003服务器中,服务器重启后Mysql却没有启动,手动启动服务时提示1053错误. 尝试了以下方法,终于解决. 1.在DOS命令行使用 第 ...

  9. 安装Wamp后 Apache无法启动的解决方法

    安装Wamp后 Apache无法启动的解决方法,网上的解决方案可以说是五花八门,有些说了一大推,一点作用都起不到. 其实解决方法只需两步: 1.安装路径不能包含有中文,这个我不知道为什么,总之如果安装 ...

随机推荐

  1. React - 组件:函数组件

    目录: . 组件名字首字母一定是大写的 . 返回一个jsx . jsx依赖React,所以组件内部需要引入React . 组件传参 a. 传递. <Component list={ arrDat ...

  2. pose_graph的优化变量和优化函数

    1.优化变量 优化变量就是vertex,也就是pose,pose-graph的优化目标就是,调整所有vertex的位置来尽量满足所有边的约束. 上述的还是表层的理解,深一步理解: pose-graph ...

  3. 1473. [Ioi2000]Post加强版 n log^2 n做法

    1473. [Ioi2000]Post加强版 n log^2 n做法 题面 有n个城市从负方向向正方向按照1至n标号,\(d[i]\)表示城市i离原点的距离并且\(d[1] = 0\),对于\(i \ ...

  4. .NET 微服务 1. Docker 容器简介和选择

    容器特点 1. 容器可以将应用程序的依赖性和配置(抽象为 Mainfest 文件并部署)打包成一个容器镜像,可以让多次部署操作中的环境保持一致 2. 可以让IT人员很少或者不做修改就可以跨环境部署软件 ...

  5. Linux简介和各发行版介绍

    一.Linux 简介 Linux 内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在大学上学时出于个人爱好而编写的. Linux 是一套免费使用和自由传播的类 Unix 操作系统,是 ...

  6. odoo @api.constrains _sql_constrains

    实现机制: @api.constrains('fields') 服务器启动时将模型中的所有约束方法注册到对象池中: 在create.write时会根据创建或修改的fields检查是否有对应的约束方法, ...

  7. AntDesign vue学习笔记(七)Form 读写与图片上传

    AntDesign Form使用布局相比传统Jquery有点繁琐 (一)先读写一个简单的input为例 <a-form :form="form" layout="v ...

  8. Sitecore安全:访问权限

    由于Sitecore使用Core数据库中的项来定义其用户界面,因此您可以对该数据库中的项应用访问权限,以控制对CMS功能的访问.最常见的是,将用户置于预定义的Sitecore客户端角色中 Siteco ...

  9. 关于 Windows to go

    1. 在宿主计算器的操作系统中访问 Windows to go 的磁盘 如题,如果需要在宿主计算器的操作系统中访问 Windows to go 的U盘(移动硬盘)中的文件,只需要打开磁盘管理,“更改驱 ...

  10. kubernetes支持local volume

    目录 local volume 创建一个storage class 静态创建PV 使用local volume PV 动态创建PV local volume kubernetes从1.10版本开始支持 ...