linux系统排错

一.系统启动流程

 

通电
-->bios
-->mbr引导
-->grub文件引导阶段
-->启动内核,只读挂载/设备
-->系统初始化阶段
系统初始化阶段加载initrd镜像
开启初始化进程systemd
开始selinux
加载内核参数
初始化系统时钟,键盘,主机名称
重新读写挂载/设备
**raid,lvm
**配额
启动multi-user.target.wants中的所有服务
开启虚拟控制台

 

启动图形

二、mbr引导记录损坏挽救措施

--mbr引导损坏后只需要在系统中执行

--grub2-install /dev/vda    ##/dev/vda为系统安装的磁盘路径。

--命令就可以修复了。下面详细说说在进不去系统时用镜像挽救系统。

首先用/dev/zero覆盖系统mbr记录,(模拟mbr损坏)

linux系统排错

重启发现系统挂了。

linux系统排错

现在关掉虚拟机,挂载镜像,重启。

新建一个镜像,

linux系统排错

设置优先启动镜像。

linux系统排错

重启后进入。选择第三个trouble的那一个。

linux系统排错

选择第二个挽救系统。

linux系统排错

然后出现有几个提示,continue,

linux系统排错

提示告诉我们真实的系统挂载在/mntsysimage上,

linux系统排错

再说了一遍系统挂在路径。点OK

linux系统排错

然后我们获得了挽救系统的shell。

linux系统排错

我们只要切换到真实系统,执行修复mbr的命令就行了。

linux系统排错

这样就修复完了。

然后删掉刚才挂载的镜像,重启,就行了。系统正常启动。

linux系统排错

三、grub引导文件损坏

/boot/grub2/grub.cfg这个文件记录了grub引导的记录,如果这个文件丢失后系统也会出错无法启动。

在系统中执行

grub2-mkconfig > /boot/grub2/grub.cfg    ##修复grub文件。

----------------------------------------------------

在系统关掉的情况下也可以进入到镜像挽救模式进行修复。(和上面的mbr的修复过程类似,这里就不说了)

镜像挽救比较麻烦,还要挂载镜像等等,

这里有个比较简单的方法,手动引导grub

下面主要讲解一下,手动引导grub进入系统的过程。进入系统后执行grub修复命令就行了。

grub引导文件“不小心”损坏了

linux系统排错

重启后,系统又挂了。

linux系统排错

set root='hd0,msdos1'      #引导系统分区
linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1    #手动引导内核启动程序
initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img    ##引导系统初始化

linux系统排错

然后就加载内核初始化系统,进入系统。

在系统中执行

grub2-mkconfig > /boot/grub2/grub.cfg     ##grub引导修复文件就行了。

四、系统内核文件丢失

/boot/vmlinuz-3.10.0-327.el7.x86_64    ##系统内核文件

这个文件丢失后,是不能用命令自动修复的,需要在在镜像安装包中解压获得,然后复制到指定位置就行了。

我们先看一下文件属于哪个安装包。

linux系统排错

只要解压这个安装包,然后复制文件到指定文件夹下就行了。(命令在后面)

现在演示一下文件丢失的情况。

文件不小心丢失了。

linux系统排错

重启后系统又挂了。

linux系统排错

这是我们需要进入镜像的救援模式下恢复文件

省略重复过程(挂载镜像启动救援模式)过程。

挂载镜像后进入后就获得一个shell

然后我们复制挂载的镜像安装包到 系统的mnt目录下

linux系统排错

切换到真是系统的shell,解压安装包,复制文件到/boot/下就行了。

linux系统排错

这样就好了,关机,移除镜像,重启,发现系统已经正常启动了。

linux系统排错

五、系统初始化文件丢失

/boot/initramfs-3.10.0-327.el7.x86_64.img    #系统初始化文件。

文件损坏了。

linux系统排错

系统又挂了

linux系统排错

挂在镜像,重启进入援救模式。切换到系统shell,执行命令,

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)    ##修复系统初始化文件。

linux系统排错

修复好后 重启系统正常启动

六、系统启动级别

 系统的启动级别一共有六个:
     0:系统停机模式,系统不能正常启动,机器关闭
     1:单用户模式,root权限,用于系统维护,禁止远程登陆
     2:多用户模式,没有NFS网络支持
     3:完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式
     4:系统未使用,保留一般不用
     5:图形化模式,登陆后进入GUI模式
     6:重启模式,默认级别不能为6,

设置系统启动级别为shutdown,

linux系统排错

可以看到提示    移除了旧链接,创建新的链接。到/usr/lib/systemd/system/shutdown.target

/usr/lib/systemd/system/目录就是系统初始化时候启动运行。

设置好后,然后重启。

系统不能正常启动,

linux系统排错

可能系统会卡住。

修复措施。

在系统启动时,在grub的界面按e进入编辑模式,自定义启动级别。

按e

linux系统排错

按e后进入到编辑模式

linux系统排错

往下翻到linux16这一行,在最后添加 5

linux系统排错

,按ctrl+x 执行

系统正常进入

编辑运行级别为graphical.target

linux系统排错

系统就修复好了。