linux系统排错

注:本实验在server虚拟机中进行

系统引导过程

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.启动其他服务

10.运行/etc/rc.local

11.生成终端或者X Window

linux系统排错_第1张图片

1.磁盘引导错误:MBR丢失

1.首先我们先破坏引导文件

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

2.重启server,我们会发现启不来了

linux系统排错_第2张图片

接下来就是解决问题的时候了:

1.在真机超级用户下打开虚拟机管理器,并将server关闭,一定要关闭

linux系统排错_第3张图片

2.双击关闭了的server,会出现一个界面,我们选择左上角像灯泡的图标

linux系统排错_第4张图片

3.点击左下方的add  hardware,会出现下面界面

linux系统排错_第5张图片

4.进行如下图的选项,其中manage这个选项,要选和虚拟机版本一样的镜像文件,都选好后,点击右下方的finish

linux系统排错_第6张图片linux系统排错_第7张图片

5.在点击像灯泡的图标界面里,选择 boot options选项

linux系统排错_第8张图片

6.将右边的IDE  CDROM  1选中,并将其同过点击右边的上下键调至第一个,完事后点击apply,进行应用(目的是将其改为光盘启动)

linux系统排错_第9张图片

7.重新开启并查看server发现其将进入了挽救模式,选择Troubleshooting,按下回车继续选择Rescue  a  Red  Hat  Enterprise  Linux  System

 

linux系统排错_第10张图片

8.进入救援模式后,先选择Continue  ----->Ok----->Ok

linux系统排错_第11张图片linux系统排错_第12张图片

linux系统排错_第13张图片

9.进入非图形界面后

linux系统排错_第14张图片

10.进行下列命令的输入

chroot /mnt/sysimage                                                     #进入根目录

grub2-install /dev/vda

vim /etc/sysconfig/selinux                                             #将SElinux的状态修改为disabled

exit                                                                                     #退出根目录

exit                                                                                      #退出当前环境

linux系统排错_第15张图片

linux系统排错_第16张图片

11.关闭server虚拟机,修改启动方式为disk首选,或取消之前的IDE  CDROM  1选项,进行应用

linux系统排错_第17张图片

12.重启并查看server虚拟机,发现可以正常登录了

linux系统排错_第18张图片

这样系统引导方式有问题的问题就解决了

 

2.grub2文件引导丢失

开机文件保存在/boot/grub2/grub.cfg

1。破坏开机以引导文件,重启系统,发现无法进入系统

rm   -fr    /boot/grub2/grub.cfg

reboot

linux系统排错_第19张图片

 

linux系统排错_第20张图片

2.进行手动引导,输入以下命令

set    root='dh0,msdos1'

linux16    /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1       #手动引导,系统启动后根分区在/dev/vda1

initrd16     /boot/initramfs-3.10.0-123.el7.x86_64.img 

boot         #直接启动系统

linux系统排错_第21张图片

3.这样重启后可以正常登陆,但将再次登陆的话,还需要重新手动引导,所以我们要在shell生成开机文件,命令如下:

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

linux系统排错_第22张图片

3.内核文件丢失

注:内核文件丢失后,必须进入挽救界面,因此需使光驱启动先起作用,光驱的添加见1中的操作,但应注意,内核文件恢复必须使用与主机内核版本对应的光驱,uname    -r命令可以查看主机的内核版本号。

内核文件位置:/boot/vmliuz-3.10.0-123.el7.x86_64
linux系统排错_第23张图片

1.破坏内核文件,重启系统,发现无法进入系统

rm -fr   /boot/vmliuz-3.10.0-123.el7.x86_64

reboot

linux系统排错_第24张图片

2.设置光驱启动优先,并进入挽救模式

3.执行下列命令

chroot /mnt/sysimage      #进入系统家目录

mkdir  /rhel7.0    #创建挂载目录

 mount /dev/sr0     /rhel7.0       #将光驱设备挂载至/rhel7.0后,才可以使用光驱设备

  cp    /rhel7.0/Package/kernel-3.10.0-123.el7.x86_64     /mnt          #复制内核文件至/mnt

 rpm2cpio      /mnt/kernel-3.10.0-123.el7.x86_64.rpm | cpio -id           #拆分软件包,将会得到/mnt/boot/目录

  ls    /mnt/boot       #查看新生成的目录内容

  cp/mnt/boot/vmlinuz-3.10.0-123.el7.x86_64     /boot/ #复制内核文件至/boot/

连续两次exit

linux系统排错_第25张图片

4.修改为原来的硬盘启动优先即可

linux系统排错_第26张图片

4、systemd初始化文件丢失

1.破坏初始化文件

rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img   

2.重启后提示示没有初始化文件

linux系统排错_第27张图片

3.关闭系统,设置光盘驱动,点击播放键进入挽救模式

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)                                                              #恢复初始化文件

$( )表示优先执行

uname -r                                                            #查看内核版本

initramfs-$(uname -r).img                               #生成文件名称

$(uname -r)                                                       #内核版本

linux系统排错_第28张图片

关闭系统,修改成硬盘启动,即可正常启动系统

5.启动级别发生错误

linux系统有6个启动级别

0表示关机,系统默认运行级别不能设置为0,否则不能正常启动

1表示单用户工作状态,root权限,用于系统维护,禁止远程登录

2表示多用户状态,但没有NFS支持

3表示完全多用户状态,登录后进入控制台命令行模式

4表示系统未使用,保留

5代表有图形模式启动

6表示正常关闭并重启,默认运行不能设置为6,否则不能正常运行

 

1.改变系统级别

[root@localhost ~]# systemctl  set-default  shutdown.target                                #设置系统开启时直接关闭
rm  '/etc/systemd/system/default.target'                                                                #删除原有连接,建立一个错误连接

ln -s '/usr/lib/systemd/system/shutdown.target' '/etc/systemd/system/default.target'

2.在系统启动阶段按上下键停止系统引导选择启动引导标题,按“e”进行编辑找到内核启动行,在后面添加“5”

linux系统排错_第29张图片

ctrl+x启动设定过后的系统引导条目

 

3.进入系统,修改开机默认运行级别

[root@localhost ~]# systemctl set-default graphical.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'


修改后系统即可正常启动,并可以正常开启关闭系统

linux系统排错_第30张图片

 

 

 

你可能感兴趣的:(Linux)