Linux中系统排错

1.系统引导过程概述
通电自检→bios初始化→grub2磁盘引导阶段→grub2文件引导阶段→指定boot所在分区→启动内核,只读挂载在/下的设备→启动init程序进入初始化阶段→启动systemd初始化进程→取/etc/systemd/中的文件→启动程序→启动登陆环境

什么是bios

BIOS是电脑的基本输入输出系统
BIOS是连接电脑硬件和软件的枢纽,也可以说是一款转换器
从功能上看,BIOS分为三部分:自检及初始化程序,硬件中断处理,程序服务请求。
自检及初始化程序电脑通电后BIOS对硬件部分的检测,是否有异常或者故障,还有就是启动前一些硬件参数的比对是否符合,之后就是引导硬盘的操作系统
硬件中断处理计算机开机的时候,BIOS会告诉CPU硬件设备的中断号,当你操作时输入了使用某个硬件的命令后,它就会根据中断号使用相应的硬件来完成命令的工作,最后根据其中断号跳回原来的状态
程序服务请求从BIOS的定义可知道它是输入输出系统,它通过最特定的数据端口发出指令,发送或接受各类外部设备的数据,从而实现软件应用程序对硬件的操作

实验一 在grub硬盘引导阶段出现问题怎么解决
fdisk -l 查看磁盘的目录,(看*在哪,哪就是使用的磁盘),我的启动分区所在磁盘是/dev/vda
在这里插入图片描述
模拟问题
关闭selinux,以防selinux对实验有影响,reboot
在这里插入图片描述
dd if=/dev/zero of=/dev/vda bs=446 count=1 破坏磁盘引导,然后reboot
在这里插入图片描述
此时采用磁盘的方式打开虚拟机并不能打开,要采用光驱的方式启动,进入虚拟控制台
在这里插入图片描述
先关闭虚拟机,然后进入虚拟后台,加入光驱,光驱加入镜像,在boot options里将光驱启动置顶。
在这里插入图片描述
然后分别选择toubleshooting,和rescue模式
在这里插入图片描述
在这里插入图片描述
点击continue和ok进入,resecue模式
首先改变真实系统的环境
chroot /mnt/sysimages
在这里插入图片描述
grub2-install /dev/vda 启动分区所在硬盘,两次exit ,就成功了,关闭虚拟机,以磁盘的方式启动,可以看到恢复了。
在这里插入图片描述可以看到虚拟机可以正常启动了
在这里插入图片描述

系统启动阶段引导文件丢失应该如何解决?
模拟问题:rm -fr /boot/grub2/grub.cfg
在这里插入图片描述

当系统没有重新启动时,直接输入
grub-mkconfig > /boot/grub2/grub.cfg 重新创建grub2引导文件,然后重新定向输出到/boot/grub2/grub.cfg,vim查看,发现文件已生成,reboot发现也可以重新启动。

在这里插入图片描述
当删除/boot/grub2/grub.cfg并且重新启动,会出现启动不了的情况,这时候,需要手动输入grub引导文件
在这里插入图片描述
然后会出现如下界面
在这里插入图片描述
然后输入
在这里插入图片描述
grub > set root=‘hd0,msdos1’
grub > linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 root=/dev/vda1
grub> initrd16 /boot/initramfs-3.10.0-123.el17.x86_64.img
grub> boot
在这里插入图片描述
==此操作可以使系统临时启动,所以进入系统后还是需要执行 ==

grub2-mkconfig > /boot/grub2/grub.cfg

在这里插入图片描述
完成。

系统内核镜像文件丢失应该怎样解决
模拟问题:
rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
在这里插入图片描述
在这里插入图片描述
reboot 发现不能启动,于是我们用光驱启动进入rescue模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述先进入系统的真实环境
在这里插入图片描述

mkdir /rhel7.0
mount /dev/sr0 /rhel7.0
cd /rhel7.0/Packages

在这里插入图片描述

cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
cd /mnt
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id

在这里插入图片描述

cd boot
cp vmlinuz-3.10.0-123.el7.x86_64 /boot

在这里插入图片描述

exit
exit

以硬盘的方式看是否可以启动
在这里插入图片描述
系统可以正常启动了。

系统初始化程序镜像文件丢失应该怎么恢复
模拟问题:
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
在这里插入图片描述
如果系统没有重启直接利用

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)恢复镜像文件

在这里插入图片描述
如果删除并且reboot了,系统启动不起来了,进入rescue模式,以光驱的方式开启虚拟机。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入 chroot /mnt/sysimages 进入真实环境
在这里插入图片描述
然后输入mkinitrd /boot/initramfs-$(uname -r).img $(uname -r),再次进入/boot下查看是否生成img文件即可。

以硬盘的方式查看系统是否可以正常启动。
在这里插入图片描述成功。

系统/boot分区被删除怎么恢复
在这里插入图片描述
reboot
用光驱进入rescue模式。

chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/vda
mount /dev/sr0 /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg

在这里插入图片描述
exit*2后,用硬盘启动,发现启动成功
在这里插入图片描述

系统开机启动级别被人恶意篡改,一致处于重启模式,怎么解决?
模拟实验:
systemctl set-default reboot.target
在这里插入图片描述
此时reboot虚拟机,会发现一直处于重启模式

解决

开机按上下键停止读秒
按E进入编辑模式

在这里插入图片描述

选择内核启动行
linux16 /vmlinuz-xxxxxxxxx  ro xxxxxxxxxx
将ro之后的删除,并将ro改称rw(读写),输入rd.break(停止),然后crtl+x退出,启动系统。

在这里插入图片描述
在这里插入图片描述
注意这里的chroot在/sysroot/下
可以看到/etc/systemd/system/default.target是一个软连接,将它删除并且重新创建有图形的软连接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述成功恢复。

root用户密码忘记怎么办
重启主机的时候按下e进入编辑模式
在这里插入图片描述
找到内核启动行,删到ro然后更改ro为rw rd.break,ctrl+x退出

==输入chroot /sysroot/==得到root用户身份

passwd 来修改用户密码
设置密码为redhat
再次输入密码redhat
即可更改root用户密码
touch /.autorelabel 让selinux生效,即可重新开启虚拟机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值