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

1.实验前准备

1.打开虚拟机,点击Add Hardware,选择storage选择Device type里的CDROM,t添加光驱
在这里插入图片描述点击boot options 选择boot device order处,选择sata cdrom,然后点击上键将光驱调在硬盘上面。点击右下角的apply,完成从光盘启动,这种方式表示永久设定,下次启动也是从光盘启动虚拟机,设定硬盘启动只需要在boot options 中将disk调上去。
在这里插入图片描述
点击启动就是从光盘启动
在这里插入图片描述

2.磁盘引导修复

1.mbr(master boot record)主引导记录
主要作用就是让磁头跳到启动分区。这个过程叫做磁盘引导阶段。如果安装某些软件出现问题,那么磁盘引导阶段的数据就会被清掉,就无法读取分区内容。所以需要进行磁盘引导修复。
2.磁盘引导修复步骤:
1.fdisk -l 可以看到系统的设备,下面有设备的分区/dev/vda表示设备名称。/dev/vda1表示设备分区,设备的分区后面若有*标志,表示该分区所在的设备上是有引导记录的。
在这里插入图片描述2.输入命令
dd if=/dev/zero of=/dev/vda bs=446 count=1(清空/dev/sda上的mbr数据)
dd表示截取命令,if=/dev/zero表示截取模板,of=/dev/vda表示存放数据位置,bs=446表示数据块大小,count=1表示截取块的个数。
整个命令的意思是从系统的无线0字节中截取数据446个字节放到/vda硬盘中,截取一块大小为446byte一共截取一块。执行该命令之后系统重启之后无法进行磁盘引导。
在这里插入图片描述
当系统引导程序被破坏之后系统无法识别从什么位置读取信息
在这里插入图片描述
3.虚拟机关机,从光盘启动。
在这里插入图片描述开机选择trableshooting
在这里插入图片描述之后选择挽救系统
在这里插入图片描述
进入挽救模式后出现挽救模式的说明,以及四步操作,1继续进入挽救模式,2只读,3直接开启shell,4退出。所以接下来输入1然后回车
在这里插入图片描述
在这里插入图片描述
然后执行命令chroot /mnt/sysimage切换到真实系统
之后执行命令grub2-install /dev/vda 表示安装mbr
命令执行后出现 no error reported
之后输入两次exit系统就会重启。
在这里插入图片描述
之后选择从硬盘启动系统就会重启,表示引导程序修复
在这里插入图片描述

3.系统引导文件丢失修复

系统启动时出现的这两行标题就是系统引导文件的内容
系统引导文件所在目录:/boot/loader/entries
/boot/grub2/grub.cfg
在这里插入图片描述
在这里插入图片描述在这里插入图片描述模拟问题1:rm -rf /boot/loader/entries/xxxxxx.conf(删除系统引导文件) 做过以上操作系统引导文件丢失,无法完成系统引导。
在这里插入图片描述引导文件丢失无法完成自动引导,需要手动填写引导信息
在这里插入图片描述修复过程:
首先手动引导,让系统启动
1.输入:set root=‘hd0,msdos1’(指定系统启动分区,让系统加载硬盘,才能读取文件)
set root 表示指定引导设备
hd0表示指定引导分区的位置为第一块硬盘
msdos1表示指定引导分区在第一个硬盘的第一个分区中
在这里插入图片描述
2.输入linux16 /vmlinuz-4.18.0-193.e18.x86_64 ro root=/dev/vda3(启动内核只读挂载/分区)
vmlinuz-4.8.0-193.e18.x86_64 就是内核文件
ro表示只读挂载
root/dev/vda3表示根分区的设备
在这里插入图片描述
启动分区所在系统设备
在这里插入图片描述

3.输入initrd16 /initramfs-4.18.0-193.e18.x86_64.img(加载系统初始化镜像)
在这里插入图片描述
4.输入boot引导完成启动系统
在这里插入图片描述由于系统引导文件丢失,所以这种方式并没有修复,只是一次性启动方式。
在这里插入图片描述
修复过程:

输入命令kernel-install add [内核版本(用uname -r查看)] [内核镜像]

当恢复的时候出现问题
在这里插入图片描述

解决报错问题
在这里插入图片描述解决报错后执行命令,系统引导文件恢复成功
在这里插入图片描述

5.恢复系统内核文件

内核文件在/boot目录里
在这里插入图片描述
当内核文件被删除系统就无法启动
在这里插入图片描述进入挽救模式:
1.设置光盘引导
在这里插入图片描述2.选择troubleshooting
在这里插入图片描述3.
在这里插入图片描述先挂载内核到/media
在这里插入图片描述
在/media/Package里复制内核安装包到mnt里
在这里插入图片描述
解压安装包
在这里插入图片描述
查看解压后的lib文件,里面的vmlinuz就是内核文件
在这里插入图片描述
查看内核文件名称
在这里插入图片描述复制解压后的内核文件到/boot/vmlinuz-4.18.0.193.e18.x86_64
在这里插入图片描述之后输入两次exit
然后从光驱启动,可以看到修复完成
在这里插入图片描述

6.恢复系统初始化镜像

系统初始化文件:/boot/initramfs-4.18.0-193.el8.x86_64.imp
如果丢失就无法完成系统初始化
执行命令删除该文件
在这里插入图片描述
重启后系统无法启动
在这里插入图片描述
进入挽救模式
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
之后回车输入chroot /mnt/sysimage 进入shell
执行命令:mkinitrd /boot/initramfs-4.18.0-193.el8.x86_64.img 4.18.0-193.el8.x86_64生成该文件
在这里插入图片描述之后执行两次exit命令后重启
在这里插入图片描述

7.系统启动级别修复

系统启动脚本:/etc/systmd/system/(系统启动脚本都在此目录中)
在这里插入图片描述
其中default.target就是系统启动级别的链接
multi-user.target.wants是系统所有服务的启动脚本链接
系统服务开机启动方式的原理:当我们设定服务开机启动或者不启动时,系统会在/etc/systemd/system/mulit-user.target中建立或者删除链接
在这里插入图片描述设定问题:
执行命令:systemctl set-default reboot.target (让系统开机时进入无限重启模式)
在这里插入图片描述
解决过程:
在启动界面按e进入编辑模式
在这里插入图片描述
在第四行输入5(手动更改系统启动级别为5),之后按ctrl + x开启系统

系统打开后开启shell输入命令systemctl set-default graphical.target手动设定启动级别
在这里插入图片描述重启后正常启动

8.破解超级用户密码

重启虚拟机,在启动界面点击上下键,之后根据提示按e,进入编辑界面,将第四行的ro改称rw rd.break(ro换成rw表示从只读挂载根设备变成读写挂载,rd.break表示在系统内核加载完成后终止系统启动)
在这里插入图片描述
之后点击ctrl+x启动系统,进入单用户模式,当前模式下默认使用root用户登陆
在这里插入图片描述之后输入chroot /sysroot/ 进入shell界面
输入命令echo lee | passwd --stdin root (更改密码为lee)
touch /.autorelable 让系统中内核级加强型火墙(selinux)从新初始化,如果更改密码后selinux未被重新初始化,会阻止新密码生效。注意,此操作只有在selinux开启时需要
在这里插入图片描述
之后执行两次exit系统密码就设定完成

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值