13_linux系统引导过程及引导修复

13_linux 系统引导过程及引导修复

文章目录

  • 13_linux 系统引导过程及引导修复
    • 一、通电
    • 二、bios 初始化
    • 三、磁盘引导
    • 四、grub2 文件引导
    • 4.2 grub2文件引导(2)删除grub.cfg
    • 五、内核加载
    • 6、系统初始化镜像
    • 系统启动级别
    • 八、超级用户密码忘记


一、通电


二、bios 初始化

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

三、磁盘引导

  • mbr=主引导记录=0磁道1扇区446

  • 作用:

    • 记录grub2引导文件的位置
    • 当mbr数据丢失系统会因为找不到启动分区而停止启动
  • 问题模拟方式

  • 系统磁盘: /dev/sda

dd if=/dev/zero of=/dev/vda bs=446 count=1	##清空系统/dev/sda上的mbr数据
  • 恢复方式:
用光盘进入系统挽救模式
chroot /mnt/sysimage
grub2-install /dev/vda		#重新安装grub2到系统硬盘上
exit
exit

四、grub2 文件引导

rhel8
/boot/grub2/grub.cfg
/boot/loader/entries/xxxxxxxxx.conf

  • 指定/boot位置
  • 指定系统启动时加载文件成名
  • 模拟问题:
rhel8:
rm -fr /boot/loader/entries/xxxxxxxxx.conf
  • 不重启电脑修复:
rhel8:
cp /usr/lib/modules/4.18.0-80.el8.x86_64/bls.conf /boot/
kerne-install add 内核版本号 内核镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
  • 手动引导(重启电脑后的修复)
set root='hd0,msdos1'
linux16 /vmlinuz-3.10.0-957.el7.x86_64 ro root=/dev/nvme0n1p2			## /dev/nvme0n1p2 自己系统的真实根对应的分区
initrd /initramfs-4.18.0-80.el8.x86_64.img
boot
cp /usr/lib/modules/4.18.0-80.el8.x86_64/bls.conf /boot/
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz

4.2 grub2文件引导(2)删除grub.cfg

cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/	##(若/boot/下有bls.conf则不用复制)
reboot
  • grub引导
set root=‘hd0,msdos1’
linux16 /vmlinuz-4.18.0-80.el8.x86_64 ro root=/dev/XXX	##(df查看到根下对应分区为/dev/sda3)
initrd /initramfs-4.18.0-80.el8.x86_64.img
boot
  • 进入系统后
grub2-mkconfig  >  /boot/grub2/grub.cfg

五、内核加载

加载内核作用: /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-$(uname -r).rpm /mnt/
cd /mnt
rpm2cpio kernel-core-$(uname -r).rpm | cpio -id
cp /mnt/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)
exit
exit

6、系统初始化镜像

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

加载系统时钟
加载selinux
加载系统主机信息
加载/etc/fstab文件中磁盘挂在策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟控制台
开启图形

  • 问题出现:
rm -fr /boot/initramfs-xxxxx.img
  • 未重启的修复方法:
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
  • 已重启的修复方法
chroot /mnt/sysimage
mkinitrd /boot/initramfs-4.18.0-193.el8.x86_64.img 4.18.0-80.el8.x86_64
exit
exit

系统启动级别

0		关机
1		单用户
2		无图形网络模式
3		无图形网络模式
4		无图形网络模式
5		有图形网络模式
6		重启
  • 问题出现:
systemctl set-default reboot.target
  • 恢复:
在开机选择界面按<e>进入到引导文件编辑模式
在内核加载选项最后加入启动级别5
ctrl+x


systemctl set-default graphical.target

八、超级用户密码忘记

  • 修复:
    • 1.在开机选择界面按进入到引导文件编辑模式
    • 2.在内核加载选项最后删除到ro选项
    • 3.更改ro---->rw
    • 4.加入rd.break 参数终止系统启动进入单用户模式
    • 5.ctrl+x 启动
    • 6.chroot /sysroot
    • 7.echo lee| passwd --stdin root
    • 8.touch /.autorelabel (## 当/.autorelabel文件存在selinux会重新初始化)



你可能感兴趣的:(linux,运维,服务器)