Linux启动过程以及引导错误修复

目录

一、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.退出后重启系统并以重置的密码进行登录

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值