天天看点

基于Linux的简单系统错误排查

一、超级用户密码遗忘

为模拟遗忘密码,我们可以修改root密码为随意字母组合

基于Linux的简单系统错误排查

在修改完成后,reboot重启虚拟机

此时遗忘密码,因此无法使用密码登录。再次重启电脑

基于Linux的简单系统错误排查

在开机的过程中快速按E,进入以下的界面

基于Linux的简单系统错误排查

对红框中的内容进行一定的修改

基于Linux的简单系统错误排查

修改完成后,crtl+d退出

修改根目录,并输入期望的密码

基于Linux的简单系统错误排查

若虚拟机的selinux处于enforcin状态需要建立 .autorelabel 文件。

修改完成后crtl+D退出,在虚拟机开启后便可以输入密码登录

基于Linux的简单系统错误排查

二、MBR引导记录丢失

为模拟mbr分区中的引导记录丢失,我们利用dd指令,从/dev/zero中取0存在于/dev/vda分区中

基于Linux的简单系统错误排查

在修改引导记录后,重启虚拟机会发现因为缺乏引导记录导致无法启动。

基于Linux的简单系统错误排查

可以利用镜像来恢复引导记录,在该虚拟机中添加一个光盘,并选择镜像

基于Linux的简单系统错误排查

并选择以光盘模式启动

基于Linux的简单系统错误排查

因为我们只需要恢复引导记录,所以选择修复功能

基于Linux的简单系统错误排查

选择修复系统功能

基于Linux的简单系统错误排查

输入1继续,并回车进入指令输入环境

此时光盘启动,需要修改根目录

在修改根目录后,利用grub2-install /dev/vda恢复引导记录

基于Linux的简单系统错误排查

在修复完成,关闭虚拟机。修改开机模式

选择硬盘驱动

基于Linux的简单系统错误排查

此时便能正常启动

基于Linux的简单系统错误排查

三、系统入口设置

有时,我们的电脑会选择装系统。在安装Linux系统时,如何设置windows系统的入口呢/?

编辑grub2.cfg文件,添加内容。

基于Linux的简单系统错误排查

menuntry为固定格式

‘入口名称’,单引号间的内容为入口名称

大括号内的内容为参数

基于Linux的简单系统错误排查

修改完成后,以硬盘驱动重启电脑

基于Linux的简单系统错误排查
基于Linux的简单系统错误排查

此时,在开机过程中便产生了windows 10的入口

四、文件引导的丢失

删除文件引导,以实验如何修复引导文件

基于Linux的简单系统错误排查

删除后,虚拟机因为缺乏文件引导而无法开启

基于Linux的简单系统错误排查

同样利用光盘驱动

基于Linux的简单系统错误排查

因为我们只需要恢复引导文件,所以选择修复功能

基于Linux的简单系统错误排查

选择修复系统功能

基于Linux的简单系统错误排查

输入1继续,并回车进入指令输入环境

同时修改根目录

chroot /mnt/sysimag

利用grub2-install /dev/vda生成硬盘

再利用grub2-mkconfig指令生成引导文件,并利用管道将其存在/boot/grub2/grub。cfg文件中。

在启动的过程中,/etc/grub.cfg引导文件也会被使用,因此需要进行复制

基于Linux的简单系统错误排查

完成这些操作后,以硬盘驱动,开启虚拟机

基于Linux的简单系统错误排查
基于Linux的简单系统错误排查

引导文件恢复成功

五、内核文件丢失

删除/boot中的内核文件

基于Linux的简单系统错误排查

在启动的过程中,因缺乏启动文件而开启失败

基于Linux的简单系统错误排查

可以利用镜像来恢复内核文件,在该虚拟机中添加一个光盘,并选择镜像

基于Linux的简单系统错误排查

并选择以光盘模式启动

基于Linux的简单系统错误排查

因为我们只需要恢复引导记录,所以选择修复功能

基于Linux的简单系统错误排查

选择修复系统功能

基于Linux的简单系统错误排查

输入1继续,并回车进入指令输入环境

此时光盘启动,需要修改根目录,并查看相关文件

基于Linux的简单系统错误排查

创建一个文件夹,并将/dev/sr0挂载

基于Linux的简单系统错误排查

进入Packages目录,并ls kernel-*.rpm查看内核文件

基于Linux的简单系统错误排查

此时存在两个方法

方法一:重新安装内核文件

因为之前只是删除了部分的内核文件,所以系统本身还存在其他的内核文件,所以此时要使用–force来强制安装

基于Linux的简单系统错误排查

方法二:仅安装所需文件

利用rpm2cpio kernel-3.10.0-123.e17.x84_64.rpm | cpio -id 进行拆包

在将所缺文件拷贝至/boot驱动目录中

基于Linux的简单系统错误排查

方法一速度慢但是能针对在未知所缺文件时使用

方法二速度快,但局限已知所缺文件

完成这些操作后,以硬盘驱动,开启虚拟机

基于Linux的简单系统错误排查
基于Linux的简单系统错误排查

开机正常,说明文件修复成功。

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

删除系统初始化镜像文件,并重启

基于Linux的简单系统错误排查

因为缺少系统初始化镜像文件,导致开机失败

基于Linux的简单系统错误排查

可以利用镜像来恢复系统初始化镜像文件,在该虚拟机中添加一个光盘,并选择镜像

基于Linux的简单系统错误排查

并选择以光盘模式启动

基于Linux的简单系统错误排查

因为我们只需要恢复引导记录,所以选择修复功能

基于Linux的简单系统错误排查

选择修复系统功能

基于Linux的简单系统错误排查

输入1继续,并回车进入指令输入环境

此时光盘启动,需要修改根目录

利用mkinitrd生成初始化镜像

第一个单引号表示,用单引号内指令产生的内容填充。

第二个单引号表示,模块名称

基于Linux的简单系统错误排查
基于Linux的简单系统错误排查

这两条指令虽然存在一定的区别。但是效果的相同的。

完成这些操作后,以硬盘驱动,开启虚拟机

基于Linux的简单系统错误排查
基于Linux的简单系统错误排查

开机正常,说明文件修复成功。

七、系统启动级别

(init 0)runlever0.target--------->poweroff.target(关机)

runlever1.target--------->rescue.target(挽救)

runlever2.target--------->multi-user.target(多用户)

(init 3)runlever3.target--------->multi-user.target

runlever4.target--------->multi-user.target

(init 5)runlever5.target--------->graphical.target(图形模式)

(init 6)runlever5.target--------->reboot.target(重启)

通过systemctl set-default +启动级别修改

或者编辑 /etc/systemd/system/default.target修改

将启动级别修改至开机自动关机

基于Linux的简单系统错误排查

因为此时系统开机便会自动关机,导致在开机过程中出现错误,无法开启

基于Linux的简单系统错误排查

在开机的过程中快速按E,进入以下的界面

基于Linux的简单系统错误排查

对红框中的内容进行一定的修改

基于Linux的简单系统错误排查

修改完成后,crtl+d退出

更改根目录后

设置启动级别为图形模式开启

基于Linux的简单系统错误排查

完成这些操作后,以硬盘驱动,开启虚拟机

基于Linux的简单系统错误排查
基于Linux的简单系统错误排查

继续阅读