Linux入门(14)——系统启动修复

Linux入门(14)——系统启动修复


1. Linux系统启动流程

- 通电

- BIOS初始化

  按照BIOS所设定的系统启动流程,根据引导次序(Boot Sequence)自上而下的寻找对应存储设备上操作系统的MBR,如果MBR存在,则会读取MBR中的bootloader,并初始化硬件时钟。

- 磁盘引导

  MBR(bootloader)会根据MBR所指引的活动分区上寻找系统分区中的 bootloader,bootloader称为是一段程序,占据446字节。RHEL系统中bootloader为grub2引导文件。

- grub2引导

  根据MBR找到grub2之后,指向/boot位置,进一步准备加载系统启动所必需的文件。

- 内核加载(kernel)

  探索硬件及加载硬件驱动程序,并以读写的方式挂载根文件系统。

- 系统初始化镜像(init进程)

  加载系统时钟、selinux、系统主机信息、/etc/fstab文件中磁盘策略、磁盘配额、初始化系统程序开启开机启动服务、开启虚拟控制台、开启图形等根据系统运行级别启动应用。位置:/boot/initramfs-4.18.0-80.el8.x86_64.img

- 系统运行级别

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

2. 系统启动修复

- 磁盘MBR分区丢失

[root@rhclient Desktop]# dd if=/dev/zero of=/dev/vda bs=446 count=1 
			#  清空MBR分区

从光驱启动系统,进入救援模式:

# chroot /mnt/sysimage		#切换环境至硬盘系统
# grub2-install /dev/vda	#重新安装grub2到系统硬盘上

- 引导文件丢失

  • /boot/loader/entries/xxx.conf 丢失
[root@rhclient Desktop]# cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/
[root@rhclient Desktop]# kernel-install add $(uname -r) /boot/vmlinuz-4.18.0-193.el8.x86_64
  • /boot/grub2/grub.cfg 丢失
[root@rhclient Desktop]# grub2-mkconfig > /boot/grub2/grub.cfg

若无法进入系统需要启动手动引导:

grub> set root='hd0,msdos1'
grub> linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/vda1
grub> initrd16 /initramfs-4.18.0-80.el8.x86_64.img
grub> boot

- vmlinuz文件丢失

[root@rhclient Desktop]# cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)

或进入救援模式

[root@rhclient Desktop]# chroot /mnt/sysimage
[root@rhclient Desktop]# cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)

- init镜像文件丢失

[root@rhclient Desktop]# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

或进入救援模式

# chroot /mnt/sysimage
# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

- /boot 分区完全丢失

进入救援模式,分别安装引导以及生成引导配置文件。挂载光驱至/mnt/,在光驱系统软件仓库中为硬盘系统重新安装内核程序。

# chroot /mnt/sysimage
# grub2-install /dev/sda
# grub2-mkconfig > /boot/grub2/grub.cfg
# mount /dev/cdrom /mnt/
# cd /mnt/BaseOS/Packages/
# rpm -ivh kernel-core-xxxx.rpm --force

- 系统运行级别错误

在开机界面按e进入编辑菜单,在内核加载选项最后加入启动级别5,进入系统重新设定运行级别。

[root@rhclient Desktop]# systemctl set-default graphical.target

- 超级用户密码丢失

在开机界面按e进入编辑菜单,将内核加载选项中删除ro及之后的内容,增加rw rd.break。启动系统,运行:

# chroot /sysroot
# echo PASSWORD | passwd --stdin root
# touch /.autorelabel

3. 练习

  • MBR丢失
    主硬盘为nvme0n1
    在这里插入图片描述
    进入救援模式,安装引导。
    在这里插入图片描述

  • grub引导丢失
    在这里插入图片描述
    手动引导
    在这里插入图片描述
    进入系统,安装grub.cfg
    在这里插入图片描述

  • /boot 分区丢失
    在这里插入图片描述
    安装内核后依然无法启动,重装系统初始化镜像与内核加载程序
    在这里插入图片描述
    推断为首次进入救援模式时,安装内核未使用强制安装,系统检验到原内核程序的残留文件,因而判断内核完好,未进行安装步骤。重新强制安装内核,生成引导。成功进入系统。

  • root用户密码丢失

    在引导界面 进入编辑
    在这里插入图片描述
    启动,重设密码
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值