linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失

文章目录

  • 1. 开机启动过程
  • 2.实验环境
  • 3.grub磁盘引导出现问题
    • 3.1 模拟问题
    • 3.2 解决问题
  • 4.启动引导文件丢失
    • 4.1 模拟问题
    • 4.2 解决问题
  • 5.内核镜像文件丢失
    • 5.1 模拟问题
    • 5.2 解决问题

1. 开机启动过程

过程如下图:
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第1张图片

1)加载BIOS

  • 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。
  • 这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等
  • 在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。

从功能上看,BIOS分为三个部分: 自检及初始化程序;硬件中断处理;程序服务请求

自检及初始化程序 比较容易理解,就是电脑通电后BIOS对硬件部分的检测,是否有异常或故障,还有就是启动前一些硬件参数的比对是否符合,之后就是引导硬盘的操作系统
硬件中断处理 计算机开机的时候,BIOS会告诉CPU硬件设备的中断号,当你操作时输入了使用某个硬件的命令后,它就会根据中断号使用相应的硬件来完成命令的工作,最后根据其中断号跳回原来的状态
程序服务请求 从BIOS的定义可以知道它总是和计算机的输入输出设备打交道,它通过最特定的数据端口发出指令,发送或接收各类外部设备的数据,从而实现软件应用程序对硬件的操作

2)读取MBR

  • 众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息
  • 系统找到BIOS所指定的硬盘的MBR后就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。

3)Boot Loader

  • Boot Loader 就是在操作系统内核运行之前运行的一段小程序。
  • 通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
  • 系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。

4)加载内核

  • 根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。
  • 系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

5)用户层init依据inittab文件来设定运行等级

  • 内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

6)init进程执行rc.sysinit

  • 在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

7)启动内核模块

  • 具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块

8)执行不同运行级别的脚本程序

  • 根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

9)执行==/etc/rc.d/rc.local==

  • rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

10)执行/bin/login程序,进入登录状态

  • 此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。

2.实验环境

使用我自己新建的ttt虚拟机,并且有光驱(塞光驱的时候要关闭虚拟机)。

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第2张图片
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第3张图片

3.grub磁盘引导出现问题

3.1 模拟问题

1)首先查看启动分分区所在硬盘:我的启动分区所在硬盘是 /dev/vda

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第4张图片
2)模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1 破坏磁盘引导,将MBR覆盖

在这里插入图片描述

3)将selinux改为disable并且 reboot
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4) 此时采用磁盘方式打开虚拟机打不开,找不到grub

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第5张图片

3.2 解决问题

1)此时关闭虚拟机,采用光驱方式启动,进入虚拟控制台
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第6张图片
2)进入援救模式

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第7张图片
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第8张图片
3)输入1,回车得到一个shell

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第9张图片
4)df查看一下
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第10张图片
5)chroot /mnt/sysimages/ 回车

在这里插入图片描述

6)grub2-install /dev/vda 然后就成功了

在这里插入图片描述

7)exit两次,关闭虚拟机,以磁盘方式开启虚拟机,就可以看到又恢复了

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第11张图片linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第12张图片linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第13张图片

4.启动引导文件丢失

4.1 模拟问题

1)模拟问题: rm -fr /boot/grub2/grub.cfg,并且reboot

在这里插入图片描述
在这里插入图片描述

发现虚拟机重启错误了

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第14张图片

4.2 解决问题

1)以光驱方式启动虚拟机,先把挽救阶段的弄好。
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第15张图片

2)此时关闭虚拟机,采用光驱方式启动,进入虚拟控制台

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第16张图片linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第17张图片
3)输入1,回车得到一个shell
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第18张图片
4)df查看一下
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第19张图片

6)chroot /mnt/sysimages/ 回车
在这里插入图片描述

7)grub2-install /dev/vda 然后就成功了

在这里插入图片描述

8)以磁盘方式开启虚拟机,输入set root=‘hd0,msdos1’,指定/boot分区所在位置

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第20张图片9)写入原grub.cfg中的所需内容:

输入linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/mapper/live-rw(内核、根分区的设备名称,用df查看)

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第21张图片

虚拟文件系统:initrd16 /initramfs-3.10.0-123.el7.x86_64.img

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第22张图片
10)boot启动

在这里插入图片描述

11)进入图形界面后:grub2-mkconfig > /boot/grub2/grub.cfg,以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行这条命令。
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第23张图片

5.内核镜像文件丢失

5.1 模拟问题

模拟问题:rm -rf /boot/vmlinuz-3.10.0-123.el7.x86_64

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第24张图片在这里插入图片描述

5.2 解决问题

1)以光驱方式启动虚拟机,先把挽救阶段的弄好。
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第25张图片linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第26张图片
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第27张图片linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第28张图片
2)chroot /mnt/sysimage
在这里插入图片描述

3)挂载光盘,进入光盘

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第29张图片
4)安装内核软件包
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第30张图片
5)复制内核镜像文件

在这里插入图片描述

退出两次,以硬盘方式启动:

linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第31张图片
linux运维基础[启动引导与修复]——————开机启动过程、MBR出现问题、启动引导文件丢失、内核镜像文件丢失_第32张图片

你可能感兴趣的:(linux)