linux学习笔记(十九)-------系统排错

###系统引导过程图示

1.计算机加电后,加载bios

2.bios对硬件进行自检

3.bios从硬盘第0柱面,第0磁道,第一个扇区读取MBR——主引导记录

4.MBR共512字节,其中引导程序512字节 = 引导程序446字节 + 磁盘分区表DPT64字节 + 结束位2字节

5.引导程序可以替换为Grub,用于引导centOs、RedHat

6.运行Grub,根据配置文件加载kernel镜像,并运行第一个程序/sbin/init

7./sbin/init通过etc/inittab进行初始化工作

8.linux根据/etc/inittab的配置来运行/etc/rc.sysinit脚本,设置系统变量、网络配置,启动swap,设定/proc,加载用户自定义模块,加载内核设置

9.启动其他服务

扫描二维码关注公众号,回复: 3221048 查看本文章

10.运行/etc/rc.local

11.生成终端

*****************************************以下实验均在虚拟机中完成****************************************************

一.破坏引导程序

1)先查看自己的系统版本,和Boot引导程序所在分区

2)下面我们模拟破坏引导程序,破坏后重启

dd if=/dev/zero of=/dev/xda bs=446 count=1

3)重启后发现如下图报错


4)这时候我们进入挽救模式,打开虚拟程序图形管理,点击小灯泡图标,选择下面的Add Hardware添加

5)进去后选择Storage并在Browse里选择与自己系统匹配的镜像文件,Device type设备类型选择添加CDROM光驱,完成后Finish

6)出来后选择Boot Options 把刚才添加的CDROM排到第一读取的位置,然后重启虚拟机

7)再次进入后,依次选择Trobuleshooting,Rescue a Red Hat Enterprise Linux system,进入

8)进入后会让你确认三次,Continue->OK->OK

9)进入挽救模式后,恢复引导程序,命令如下,完成后两次exit退出

10)在将Disk设置为第一读取位置重启即可恢复

二、引导文件丢失

引导文件在/boot/grub2/grub.cfg中

1)模拟问题:删除引导文件,在系统没有重新启动的情况下,可以直接恢复,如下图

2)当系统重新启动时,操作如下

第一行,指定/boot所在分区(此位置不固定),在grub.cfg里可以查看

第二行,root=根分区的设备名称,df可以查看

3)以上操作可以使系统正常启动,但是是临时的,所以进入系统还是要执行一遍恢复命令:

三、修改登陆的操作

1、增长登陆选择时间,编辑/boot/grub2/grub.cfg文件,修改选择时间,完成后重启

2、增添系统的选择,在grub.cfg里编写

3)还可以设置进入选择界面默认选择第几个进去

命令grub2-set-default 0(默认第一个进去)

命令grub2-set-default 1(默认第二个进去)

依此类推

四.内核文件丢失

1)模拟问题:删除内核文件并重启

2)开机后显示的报错如下图

3)进入到挽救模式,先切换root,命令chroot /mnt/sysimage,在随便建立一个目录,为挂载设备,我这里建立的/rhel7,然后从挂载的光驱里下载丢失的内核文件,操作如下图:

4)完成后两次exit退出,并退出挽救模式,重启即可

五、系统初始化镜像文件丢失

1)模拟问题,删除镜像文件(镜像文件在/boot/下),这里要先提示一下命令uname -r为显示你的版本,如下图

2)当系统没有重启时,可以直接恢复,命令如下:提示$()为先执行括号里的内容

3)如果重启了,会产生如下报错

4)然后进入挽救模式,恢复初始化镜像文件

5)两次exit退出,并退出挽救模式即可

六、当/boot分区被删除

1)模拟问题,删除/boot并重启

2)开机会显示如下图报错

3)进入挽救模式,先建立/boot目录,然后恢复/boot下的文件,和上面操作类似,具体如下图

4)两次exit退出,并退出挽救模式,重启即可

七、当开机启动级别被篡改

第一种方法:

1)模拟错误:修改开机级别

2)重新开机时,显示如下图报错:

3)此时修改为,进入登陆选择界面时,先按上下键停止进入,然后选择你要登陆的系统按e,将linux16那行从末尾删除至ro,从ro改变为rw rd.break

4)再按ctrl+x进入修改界面,查看开机级别,并删除错误的,重新恢复正确的开机级别,两次exit退出即可恢复

第二种方法:

1).进入引导选择系统时上下键暂停,选择要进入的系统,按e在启动内核命令后输入5后可以正常启动

2)但是这种进入方式是临时的,需要重新设置开机打开图形

八、忘记开机密码

1)进入登陆选择界面时,先按上下键停止进入,然后选择你要登陆的系统按e,将linux16那行从末尾删除至ro,从ro改变为rw rd.break,再按ctrl+x进入修改界面

2)chroot /sysroot/ 进入shell  然后输入修改密码命令echo redhat|passwd  --stdin root(将root用户密码更改为redhat) ,再输入两次exit即可

九、开机大量服务启动失败

修复过程:关闭虚拟机,通过光驱模式启动得到shell,

cp /bin/bash   /mnt/sysimage/bin/bash

一次退出通过硬盘启动即可
 

猜你喜欢

转载自blog.csdn.net/qq_42711214/article/details/82432399
今日推荐