Linux系统引导过程及引导修复

2021/5/9 7:26:36

本文主要是介绍Linux系统引导过程及引导修复,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、bios初始化

  • BIOS,Basic Input Output System,即基本输入输出系统,对硬件检测、初始化硬件时钟

二、磁盘引导

  • 磁盘引导区记录着磁盘的一些最基本的信息,磁盘的第一个扇区被保留为主引导扇区,它位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)以及磁盘的有效标志。
  • mbr=主引导记录=0磁道1扇区446
    作用:记录grub2引导文件的位置,当mbr数据丢失,系统会因为找不到启动分区而停止启动。
  • 查看系统磁盘/dev/sda
    在这里插入图片描述
    清空系统/dev/sda上的mbr数据,当未重启系统时,可以使用 grub2-install /dev/vda ,重新安装grub2(引导程序)到系统硬盘上
    在这里插入图片描述
    若清空了系统/dev/sda上的mbr数据,且重启系统
    在这里插入图片描述
    将会看到以下界面
    在这里插入图片描述
    此时需要用光盘进入系统挽救模式
    在这里插入图片描述
    选择光盘启动方式
    在这里插入图片描述
    启动之后选择Troubleshooting
    在这里插入图片描述
    进入Rescue挽救模式
    在这里插入图片描述
    选择1,continue表示挂载权限为读写
    在这里插入图片描述
    可以看到提示说明,系统硬盘的根分区将被挂载到光盘的 /mnt/sysimage目录
    在这里插入图片描述
    在这里插入图片描述
    执行chroot /mnt/sysimage,得到系统的shell,之后执行grub2-install /dev/vda ,重新安装grub2(引导程序)到系统硬盘上
    在这里插入图片描述
    编辑 /etc/selinux/config 文件,将selinux设定为disabled(避免其初始化速度太慢)
    请添加图片描述
    在这里插入图片描述
    执行两次exit
    在这里插入图片描述
    重新设定启动方式为磁盘启动,即可修复系统
    在这里插入图片描述

三、系统初始化镜像

  • /boot分区就是操作系统的内核及在引导过程中使用的文件
    在这里插入图片描述

/boot/initramfs-4.18.0-80.el8.x86_64.img 文件:加载系统时钟、加载selinux、加载系统主机信息、加载/etc/fstab文件中磁盘挂载策略、加载磁盘配额、初始化系统程序开启开机启动服务、开启虚拟控制台、开启图形

  • 如果删除了这一文件(镜像丢失)
    在这里插入图片描述
    在未重启系统时,执行以下命令可以进行修复
    在这里插入图片描述
    若删除了文件,且重启了系统,可以看到以下界面
    在这里插入图片描述
    用光盘启动,进入挽救模式
    在这里插入图片描述
    执行以下命令即可
    在这里插入图片描述
    重新用磁盘启动
    在这里插入图片描述

四、内核加载

  • 加载内核作用:/boot/vmlinuz-$(uname -r),系统初始化硬件设备,只读挂载/设备
    若将内核加载文件删除
    在这里插入图片描述
    在未重启系统时,复制系统中usr下的内核文件到 /boot 中即可恢复
    在这里插入图片描述
    在这里插入图片描述
    若删除了内核加载文件,还重启了系统,将会看到以下界面
    在这里插入图片描述
    设定光盘启动方式,进入挽救模式
    在这里插入图片描述
    执行同样的操作即可
    在这里插入图片描述

五、grub2文件引导

  • rhel8:
    /boot/grub2/grub.cfg:主引导文件,指定/boot位置;
    /boot/loader/entries/xxxxxxxxx.conf:子引导文件,指定系统启动时加载文件成名
    在这里插入图片描述
    在这里插入图片描述
    删除主引导文件,未重启系统时,执行以下命令即可修复
    在这里插入图片描述
    删除主引导文件,且重启系统时,将会看到以下界面
    在这里插入图片描述
    在这里插入图片描述
    可以看到boot分区位于/dev/vda3 (系统第一块磁盘的第三个分区),根目录位于系统的/dev/vda3(第一块磁盘的第三个分区)
    在这里插入图片描述
    首先进行手动引导,hd0,msdos1 表示第一块硬盘的第一个分区,并且将根目录挂载到vda3
    在这里插入图片描述
    重启以后,执行以下命令进行修复即可
    在这里插入图片描述
    当子引导文件被删除时
    在这里插入图片描述
    首先同样进行手动引导
    在这里插入图片描述
    进入系统后执行以下命令即可修复,uname -r : 查看内核版本号
    在这里插入图片描述
    出现错误提示,将/usr/modules下的文件复制给/boot/bls.conf,再次执行以下命令即可
    在这里插入图片描述
    可以看到子引导文件已重新生成
    在这里插入图片描述

六、修复 /boot

  • /boot的内容全部删除时
    在这里插入图片描述
    首先用光盘启动,进入挽救模式
    在这里插入图片描述
    将/dev/cdrom(光驱)挂载到/mnt 上
    在这里插入图片描述
    切换到/boot ,重新安装grub2到系统硬盘上
    在这里插入图片描述
    切换到/mnt/BaseOS/Packages/ 强行安装内核
    在这里插入图片描述
    此时/boot 中的文件已经全部生成
    在这里插入图片描述
    最后执行以下命令,修复主引导文件
    在这里插入图片描述

七、系统启动级别

0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启

  • 每一个 Unit(服务等) 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接
    在这里插入图片描述
    修改系统启动方式为无限重启
    在这里插入图片描述
    修复方法:在开机选择界面按e进入到引导文件编辑模式,在内核加载选项最后加入启动级别5,ctrl+x启动
    在这里插入图片描述
    进入系统后,重新设定系统启动方式为有图形网络模式即可
    在这里插入图片描述

八、超级用户密码忘记

  • 在开机选择界面按e进入到引导文件编辑模式,在内核加载选项最后删除到ro选项,更改ro---->rw,加入rd.break参数终止系统启动进入单用户模式,ctrl+x启动
    在这里插入图片描述
    chroot /sysroot :把根目录切换到我们原来的环境中
    在这里插入图片描述
    为root用户设定一个新密码为lee
    在这里插入图片描述
    当/.autorelabel文件存在时,selinux会重新初始化
    在这里插入图片描述
    两次exit即可
    在这里插入图片描述


这篇关于Linux系统引导过程及引导修复的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程