第15单元搞定Linux——系统引导过程及引导修复

1. 通电

2. bios初始化

• 对硬件检测
• 初始化硬件时钟

3. 磁盘引导

mbr=主引导记录=0磁道1扇区446字节
作用:记录grub2引导文件的位置
当mbr数据丢失,系统会因为找不到启动分区而停止启动

模拟问题:系统磁盘/dev/sda数据损坏

问题出现:dd if=/dev/zero of=/dev/sda bs=446 count=1 ##清空系统/dev/sda上的mbr数据
恢复:

  • 用光盘进入系统挽救模式
  • chroot /mnt/sysimage
  • grub2-install /dev/sda##重新安装grub2到系统硬盘上

在这里插入图片描述
清空系统dev/sad上的mbr数据
在这里插入图片描述
进入系统失败
在这里插入图片描述

#用光盘进入系统挽救模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述注:不同主机,系统硬盘名不同。此图中命令改为grub2-install /dev/sda
将系统恢复后通过两次exit即可以重启,恢复为磁盘启动就可以正常启动!

4. grub2文件引导

rhel8版本中文件位置
/boot/grub2/grub.cfg
/boot/loader/entries/xxxxxxxxx.conf
作用:
指定启动分区(/boot)位置
指定系统启动时加载文件名称

模拟问题:rhel8中删除启动加载文件

  • 方式1.命令修复引导文件:
    kernel-install add ( u n a m e − r ) / l i b / m o d u l e s / (uname -r) /lib/modules/ (unamer)/lib/modules/(uname -r)/vmlinuz
    在这里插入图片描述

  • 方式2.手动引导启动(不是永久更改的,因此我们还需要用命令来修复引导文件)
    set root=‘hd0,msdos1’
    linux16 /vmlinuz-4.18.0-147.el8.x86_64 ro root=/dev/sda2
    initrd16 /initramfs-4.18.0-147.el8.x86_64.img
    boot
    在这里插入图片描述
    重启:
    在这里插入图片描述
    注:此图中root=/dev/sda2 根目录文件
    恢复成功

5. 内核加载

加载内核:/boot/vmlinuz-$(uname -r)
作用:系统初始化硬件设备,只读挂载/设备

模拟问题:删除内核

rm -fr /boot/vmlinuz-$(uname -r)

恢复:复制内核文件包并压缩镜像到/boot

  • 重启进入挽救模式
  • chroot /mnt/sysimage
  • mount /dev/cdrom /media
  • cd /media/BaseOS/Packages
  • cp kernel-core-###.rpm /mnt/
  • cd /mnt
  • rpm2cpio kernel-core-###.rpm | cpio -id
  • cp /mnt/lib/modules/4.18.0-##/vmlinuz /boot/vmlinuz-$(uname -r)
  • exit
  • exit
    在这里插入图片描述
    恢复成功

6. 系统初始化镜像

系统初始化镜像文件:/boot/initramfs-4.18.0-147.el8.x86_64.img
作用

  • 加载系统时钟
  • 加载selinux
  • 加载系统主机信息
  • 加载/etc/fstab文件中磁盘挂载策略
  • 加载磁盘配额
  • 初始化系统程序开启开机启动服务

模拟问题:删除初始化镜像文件

rm -fr /boot/initramfs-4.18.0-80.el8.x86_64.img

  • 方式1.命令修复:
    恢复命令:mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
    在这里插入图片描述
  • 方式2.手动修复(删除后重启情况下)
    ①进入挽救模式
    ②chroot /mnt/sysimage
    ③mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

    恢复成功

7. 系统启动级别

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

开机后自动启动的服务存放在/etc/systemd/system/multi-user.target.wants/目录
在这里插入图片描述
实质上这里的sshd.service是一个软连接指向服务真实位置
在这里插入图片描述

同理:default.target也是一个软连接指向开机图形界面
存放位置:/lib/systemd/system/
在这里插入图片描述
在这里插入图片描述

模拟问题:更改开机set-default配置

systemctl set-default reboot.target ## 会陷入无限重启过程

问题解决:

  • 在开机选择界面按进入到引导文件编辑模式
  • 在内核加载选项最后加入启动级别5
    在这里插入图片描述
  • ctrl+x
  • 开机后输入systemctl set-default graphical.target ## 永久设定为5,否则还会陷入重启循环

恢复成功

模拟问题:删除/boot下的所有文件

删除:rm -fr /boot/*
恢复:
在这里插入图片描述

8. 超级用户密码忘记

恢复:

  1. 在开机选择界面按进入到引导文件编辑模式
  2. 在内核加载选项最后删除到ro选项
  3. 更改ro ----> rw
  4. 加入rd.break参数,终止系统启动进入单用户模式
  5. ctrl+x启动
  6. chroot /sysroot
  7. echo redhat | passwd --stdin root
  8. touch /.autorelabel ## 当/.autorelabel文件存在selinux会重新初始化
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值