目录

一、Linux系统启动过程

1.加载BIOS

2.读取MBR(主引导记录)

3.GRUB引导

4.加载Kernel文件

5.第一个进程init和systemd

6.欢迎界面进行登录

二、MBR扇区故障修复

1.我们先对MBR进行备份

2.模拟破坏MBR引导扇区

3.重启系统

4.选择Rescue a Centos system进入linux急救模式

5.按1回车  继续

6.创建一个文件夹用于挂载sdb1中的备份内容

7.启动成功,故障已排除

二、GRUB引导故障修复

三、centos7忘记root密码重置方法


一、Linux系统启动过程

1.加载BIOS

当你打开计算机电源,计算机会首先加载基本输入输出系统(Basic Input Output System )BIOS系统。检查硬件设备有没有损坏,在这里可以选择启动磁盘。BIOS程序一般被存放在主板ROM之中、即使在关机或掉电以后该程序也不会丢失。

2.读取MBR(主引导记录)

读取硬盘上磁道的第一个扇区被称为MBR,也就是Master Boot Record即主引导记录、它的大小是512字节,根据MBR记录中的引导信息调用启动菜单(如GRUB);即运行放在MBR扇区里的启动GRUB引导程序

3.GRUB引导

Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置。

4.加载Kernel文件

根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。

系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

5.第一个进程init和systemd

内核加载完毕,会启动Linux操作系统第一个守护进程init,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化过程,最后等待用户进行登录systenmed;加载硬件驱动程序, 内核把init进程加载到内存中运行
传统sysvinit依赖于串行执行shell脚本启动服务,导致效率低下,系统启动速度较慢systemd能够将更多的服务进程并行启动,并且具有提供按需启动的能力,使得启动更少进程,从而提高系统启动速度。/etc/inittab文件的作用是设定Linux的运行等级,Linux常见运行级别如下

  • 0:关机模式
  • 1:单用户模式
  • 2:无网络支持的多用户模式
  • 3:字符界面多用户模式
  • 4:保留
  • 5:图像界面多用户模式
  • 6:重启模式

init进程

由Linux内核加载运行/sbin/init程序
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1

Systemd
Systemd是Linux操作系统的一种init软件
CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
CentOS7中运行的第一个init进程是/liblsystemd/systemd

6.欢迎界面进行登录

二、MBR扇区故障修复

1.我们先对MBR进行备份

创建一个备份文件夹,例如backup,将一个备份磁盘挂载在该文件夹下,并对MBR进行备份

mkdir  backup
mount  /dev/sdb1  /backup
dd  if=/dev/sda  of=/kackup/mbr.bak  bs=512  count=1

2.模拟破坏MBR引导扇区

[root@ljp dev]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000736407 秒,695 kB/秒

3.重启系统

由于MBR的缺失,会进入这样的界面,我们使用光标选择Troubleshooting并回车确认

4.选择Rescue a Centos system进入linux急救模式

5.按1回车  继续

继续回车获得一个shell

6.创建一个文件夹用于挂载sdb1中的备份内容

mkdir backupdir
mount /dev/sdb1 /backupdir

将sdb1中的备份重新放入sda中,然后退出该模式进行重启

dd if=/backupdir/mbr.bak of=/dev/sda bs=512 count=1
exit

7.启动成功,故障已排除

二、GRUB引导故障修复

在linux中,/boot/grub目录下的包是用于启动菜单的背景图片及样式

GRUB配置文件 /boot/grub2/grub.cfg

1.删除grub配置文件模拟故障

rm -rf /boot/grub2/grub.cfg

2.重启系统并进入急救模式,流程参考上文MBR修复过程

3.使用chroot命令,切换到系统跟环境

chroot /mnt/sysimage

4.重新将grub引导程序安装到第一块硬盘的MBR扇区

grub2-install /dev/sda 

5.重新构建grub菜单的配置文件,之后退出并重启

grub2-mkconfig -o /boot/grub2/grub.cfg
exit
reboot

三、centos7忘记root密码重置方法

1.进入急救模式,加载系统镜像,选择troubleshooting

chroot /mnt/sysimage

2.重设root密码

passwd root

3.退出后重启系统并以重置的密码进行登录

Linux启动过程以及引导错误修复相关推荐

  1. linux efi 引导,Ubuntu 16.04引导错误修复 - EFI

    如果安装Ubuntu后启动报错:"Reboot and Select proper Boot device or Insert Boot Media in selected Boot dev ...

  2. Linux 启动过程详解

    随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Window ...

  3. 深入理解Linux启动过程 0号进程,1号进程

    深入理解Linux启动过程 Linux系统的启动过程由很多阶段组成,这篇博客从初始化引导程序到第一个用户空间应用程序探索Linux启动进程. 我们先从Linux启动的顶层视图开始分析,以便能有一个整体 ...

  4. Linux启动过程学习

    该学习过程是一个Linux从主引导记录到第一个用户空间程序的指导. 启动一个Linux系统的过程包含一系列步骤.但是无论你是启动一个标准的X86桌面或嵌入式PowerPC,大部分流程是相似的.该文章探 ...

  5. 嵌入式Linux启动过程中的问题积累

    嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...

  6. Linux启动过程详细介绍

    Linux启动过程详细介绍 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相 ...

  7. linux系统需要占多大的内存,linux启动过程Bootloader、kernel

    256M可以推1080P屏幕 128M可以基本运行并安装 256M可以勉强开启特效 512M流畅运行特效 当然内存越大越好,特效与显卡也有关系 和windows相比,当然linux对内存的需求小 Bo ...

  8. linux 启动过程

    Linux 启动过程详解 下面来详细了解一下 Linux 的启动过程.     Linux 的启动 过程包含了 Linux 工作原理的精髓,      而且在嵌入式的开发过程也非常需要这方面知识的积累 ...

  9. 华为服务器Linux启动过程,华为RH2288H服务器引导ServiceCD安装Windows Server操作系统...

    安装准备 ServiceCD光盘. Windows操作系统安装光盘. 物理光驱. 使用虚拟控制台远程安装操作系统时,需要准备以下软件: ServiceCD光盘或ServiceCD ISO文件. Win ...

最新文章

  1. 线下活动【西安站】用Leangoo做Scrum敏捷开发实战课(免费)
  2. Caffe 作者贾扬清:我们应该跳出框架的桎梏,往更广泛的领域寻找价值
  3. 如何写优雅的SQL原生语句?
  4. 【POJ】【2975】Nim
  5. 推动网络由连接为中心向用户为中心转变
  6. 人很臭尽量往香里去做...
  7. 初识ES-什么是elasticsearch
  8. mysql 选择特定的表_MySQL选择具有多个特定列的所有表
  9. VC6.0加载lib文件的三种方法
  10. 2019 live tex 发行版_TeX Live 2019安装指南
  11. ActiveMQ RabbitMQ RokcetMQ Kafka实战 消息队列中间件视频教程
  12. Orchard详解--第五篇 CacheManager
  13. itext设置字体间距_Word文档怎样调节行间距?单行间距怎么调?
  14. 一次局域网入侵全过程
  15. mysql .idb_mysql.idb
  16. D. Challenging Valleys
  17. mac上的Finder快捷键汇总
  18. 量化投资学习必读书目(八)——《短线交易大师》
  19. ARM嵌入式开发板推荐
  20. python 读取邮件

热门文章

  1. 安全交流:浅谈sql注入式(SQL injection)攻击与防范
  2. 使用LVS和Keepalived搭建高可用负载均衡服务器集群
  3. JavaScript笔试知识点整理
  4. 数梦工场7.5亿元都干点啥?
  5. 计算机vf中rest是什么意思,vf常用命令(全)
  6. Oracle中ltrim的用法
  7. FPGA学习笔记——计数器
  8. JAVA计算机毕业设计跨境电商网站(附源码、数据库)
  9. J-link V7.64C Warning : the connected probe appears to be a j-link clone报错
  10. python 在一个py文件中调用另一个文件夹下py文件模块