一.系统启动流程 

通电
 
bios(主板上的只读存储中,basic input or output system)作用,硬件检测,**硬件

1.grub系统引导(grub引导分为两个阶段)
(1)阶段1 mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节
       dd if=/dev/zero of=/dev/vda bs=446 count=1 可以清空mbr,重新启动
       进入到挽救模式,执行chroot /mnt/sysimage切换到真实/环境,
       并执行grub2-install /dev/vda

 主引导分区mrb损坏

查看boot分区

linux系统恢复

linux系统恢复

关闭selinux

linux系统恢复

linux系统恢复

选择救援模式

linux系统恢复

linux系统恢复

linux系统恢复

进入到真实目录,安装系统引导grub2

linux系统恢复

安装完成后调回硬盘启动

linux系统恢复

修复完成,可以正常启动

linux系统恢复



(2)阶段2 grub文件引导阶段
   找到/boot分区
   读取/boot/grub2/grub.cfg
   文件丢失,grub2-mkconfig >/boot/grub2/grub.cfg

引导文件grub损坏

查看/目录分区是vda3


linux系统恢复


删除引导文件

linux系统恢复

开机后手动输入引导文件

set root='hd0,msdos1' 根目录

linux16 /vmlinuz-3.10.0-327.e17.x86_64 ro root=/dev/vdb3 内核文件

initrd16 /initramfs-3.10.0-327.e17.x86_64.img 开机启动服务

boot 启动

linux系统恢复

利用grub2-mfconfig修复grub.cfg文件

linux系统恢复

进入系统后查看/boot/grub2/grub.cfg引导文件已经复原修复

linux系统恢复




3.启动内核,只读挂载/设备
检测设备
对设备驱动进行初始化
进入系统初始化阶段
内核丢失,从新安装内核安装包就可以解决
rpm -ivh kernel-xxxxx.rpm --force

删除boot目录下的内核文件

linux系统恢复

缺失内核文件,无法启动

linux系统恢复

加载光驱

linux系统恢复

进入救援模式,如图进入救援系统,真实的系统根目录为/mnt/sysimage

分解安装盘内的内核包

linux系统恢复

将分解后的内核文件拷贝到/mnt/sysimage/boot下,完成后退出

linux系统恢复

内核修复完成,进入系统

linux系统恢复


4.系统初始化阶段
系统初始化阶段加载initrd镜像
开启初始化进程systemd
开始selinux
加载内核参数
初始化系统时钟,键盘,主机名称
重新读写挂载/设备
**raid,lvm
**配额
启动multi-user.target.wants中的所有服务
开启虚拟控制台
启动图形

initramfs-`uname -r`.img丢失用:mkinitrd initramfs-`uname -r`.img `uname -r`    恢复


开机后快进入到登陆界面时又自动关机,开机运行级别错误

重新启动系统

在系统启动阶段按上下键停止系统引导

linux系统恢复

选择启动引导标题,按e键进行编辑

找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

linux系统恢复

linux系统恢复

ctrl+x启动设定过后的系统引导条目

进入系统后执行chroot  /sysroot切换到真实的系统环境

linux系统恢复

查看运行级别软连接,指向关机,重新做软连接运行级别

linux系统恢复

chroot  /sysroot

-rm -rf /etc/systemd/system/default.target

ln -s /lib/systemd/system/multi-user.target  /etc/systemd/system/default.target


系统运行级别
runlever0.target -> poweroff.target
runlever1.target -> rescue.target
runlever2.target -> multi-user.target
runlever3.target -> multi-user.target
runlever4.target -> multi-user.target
runlever5.target -> grapical.target
runlever6.target -> reboot.target





相关文章:

  • 2021-09-06
  • 2021-06-22
  • 2021-09-13
  • 2021-08-02
  • 2021-04-19
  • 2022-01-09
  • 2022-12-23
猜你喜欢
  • 2021-04-10
  • 2021-06-27
  • 2021-11-18
相关资源
相似解决方案