常见的linux系统排错情况

当我们系统出错【由人为或者手残等操作引起】,无法开机,或者加载失败时,经常会是因为如下的一些可能:
我们来一一讲解。

一:硬盘引导出错:

首先我们先来看下当硬盘引导出错时是怎样的一个样子:

常见的linux系统排错情况
当然你一定会想要知道是什么原因导致的这个错误,以及该如何去解决。

MBR(Master Boot Record主引导记录),记录了/boot目录所在分区位置,磁盘的0磁道1扇区的前446字节。
当该记录被更改时,就会出现磁盘引导出错。

比如说我们可以执行下面的指令,让系统出错:

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

常见的linux系统排错情况

之后就会进入上图所示的那个情况,系统找不到引导进入下一步。

如何解决呢?这里需要有系统镜像文件。我们已经将镜像挂载到了光驱里。u盘也可以。

这里我们就要进入镜像中的救援模式,去处理这个问题了。

1.进入救援模式:
常见的linux系统排错情况
常见的linux系统排错情况
常见的linux系统排错情况

2.接下来我们就成功进入救援模式了,需要使用grub2-install命令重建bootloader

常见的linux系统排错情况
3.上面两次exit退出后,因为我们还是镜像启动,所以不会进入真正系统的启动界面。所以要切换回磁盘启动。

常见的linux系统排错情况
4.做完上面工作系统就可以正常启动了。

二:引导文件丢失:

GRUB 2是GNU GRUB(GRand Unified
Bootloader)的最新版本。bootloader(引导程序)是计算机开机后(bios自检之后)第一个运行的软件程序,它负责加载操作系统内核并把控制权交给操作系统内核。之后,操作系统内核初始化操作系统的其他部分。
在grub 2引导启动时,会读取配置文件/boot/grub2/grub.cfg

当执行下面指令时,就会导致引导文件丢失,重起会进入下图所示界面。

rm -fr /boot/grub2/grub.cfg

常见的linux系统排错情况
解决:
常见的linux系统排错情况
但是只是这样更改的话,只针对本次开机有效,还需要我们在正常启动后,再输入:

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

重新生成grub.cfg.文件
常见的linux系统排错情况
#当系统没有从新启动时,直接之下下面代码:

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

三:内核文件丢失:

内核是驱动系统正常运行的工具,当内核文件丢失时,系统就会无法正常运行:

常见的linux系统排错情况
如何解决:
1.进入挽救模式:
常见的linux系统排错情况

常见的linux系统排错情况
常见的linux系统排错情况
2.在挽救模式中,给系统添加内核文件

常见的linux系统排错情况
之后输入以下指令:###后为注释,不输入

chroot /mnt/sysimage           ###改变根目录位置
mkdir /rhel7
mount /dev/sr0 /rhel7           ###挂载/sr0
cd /rhel7/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                      ###将内核文件放回/boot启动目录中
exit
exit

两次exit退出后,系统就可以正常启动了。

四:系统初始化镜像文件丢失:

常见的linux系统排错情况
reboot之后:

常见的linux系统排错情况
常见的linux系统排错情况

如何解决:

同样,我们需要进入救援模式,去重新添加一个镜像初始化文件。
在救援模式,执行以下代码:【如何进入救援模式参考上文】

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

常见的linux系统排错情况
两次exit后,切换回磁盘启动,就可以正常开机了。

#当系统没有重启时,直接执行代码即可

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

五:/boot分区被删掉:

进入到挽救模式,执行下列代码,两次exit退出后,返回i磁盘启动。

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

六:当开机启动级别被篡改:

通常是执行下列代码时,会导致开机启动级别被篡改。
常见的linux系统排错情况
常见的linux系统排错情况
看似正常的启动,却会发现陷入循环,会一直在该界面停留,无法进入用户选择界面。

如何解决:

常见的linux系统排错情况
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxxx 改变为:
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxxx 5

常见的linux系统排错情况
开机后我们需要重新设定启动级别:

systemctl set-default graphical.target

常见的linux系统排错情况
以上就是常见的一些系统出错无法开机的排错内容

                           大大的小小阳
上一篇:Centos 7.4 安装GNOME Desktop错误处理


下一篇:Linux中的系统排错