Linux大神必会操作——系统排错

1.了解系统引导过程

在这里插入图片描述

(1).BIOS初始化

基本输入/输出系统(BIOS)时内置于标准x86/x86-64硬件的固定接口,将硬件置于已知状态并准备好系统以加载操作系统;用于检测并初始化硬件确定从中引导的设备。

此过程可能出现的错误:
错误或异常的BIOS设置以及错误引导设备顺序

按特定于供应商的健设,使用特定于供应商的配置实用程序
通常,【F12】可以执行一次引导顺序覆盖

(2)grub磁盘引导阶段

MBR的作用是为了记录/boot目录所在分区位置

如下图中所示,当磁盘0磁道1扇区的前446字节被我们用其它数据填充之后,系统将正常启动

dd if=/dev/zero of=/dev/vda bs=446 count=1		##截取数据填充磁盘
grub2-install /dev/vda							##启动分区所在的硬盘

在这里插入图片描述
(3)gurb文件引导阶段

引导文件

/boot/gurb2/grub.cfg

指定/boot分区位置,加载内核,启动系统初始化进程

(4)内核引导阶段

检测硬件设备,设备驱动初始化,将/只读挂载,载入初始进程systemd

内核文件丢失需要重新安装内核

(5)systemd初始化

开启selinux和systemd-tools
加载内核参数
加载系统时钟键盘,主机名称
读写挂载/文件系统
激活raid,lvm设备
激活系统配额
启动multi-user.target.wants中的所有服务脚本
器用虚拟控制台
启动图形

(6)系统启动级别

runlever0.target->poweroff.target
runlever1.target->rescue.target
runlever2.target->multi-user.target
runlever3.target->multi-user.target
runlever4.target->multi-user.target
runlever5.target->grapical.target
runlever6.target->reboot.target

设定启动级别

systemctl set-defualt + 启动级别
/etc/systemd/system/defualt.target

2.系统错误模拟与解决

下面我们根据上述系统的各个阶段来模拟每个启动阶段可能产生的问题,并提供解决方案

(1)破坏开机引导的446字节并重启

模拟问题:

我们首先找到要操作的设备名——/dev/sda ,【/dev/sda1】是它的一个分区
注意:【*】符号表示该设备具有自举功能
在这里插入图片描述
dd if=/dev/zero of=/dev/sda bs=446 count=1 ##截取数据填充磁盘

在这里插入图片描述
系统无法重启,卡着如下所示界面
在这里插入图片描述
解决方案

首先强制关闭系统,进入挽救模式:

【小提示:如果在操作过程中鼠标光标消失,可使用contl+alt解决】

添加光盘引导方式,并调整磁盘顺序
在这里插入图片描述
在这里插入图片描述
启动系统——选择第三项系统修复
在这里插入图片描述
选择第二项,进入后选择第一项【继续】
在这里插入图片描述在这里插入图片描述

chroot /mnt/sysimage
df
grub2-install /dev/sda	     ##启动分区所在硬盘
exit
exit

在这里插入图片描述
退出挽救模式后强制关闭虚拟机,调整磁盘顺序然后重启系统

在这里插入图片描述
在这里插入图片描述
(2)文件引导阶段出现问题——引导文件丢失

模拟问题:删除引导文件

先查看根分区和boot分区上挂载的文件名称
在这里插入图片描述
删除引导文件

rm -rf /boot/gurb2/grub.cfg

在这里插入图片描述

解决方案:

若删除后系统没有重启,可使用命令直接生成

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

在这里插入图片描述
若删除后系统被重启,系统将卡在下图页面
在这里插入图片描述

set root='hd0,msdos1'			##此位置是不固定的,位置指定boot所在分区
linux16 /vmlinz-3.10.0-123.el7.x86_64 ro root=/dev/sda3		##写根分区挂载设备名称
initrd16 /initramfs-3.10.0-123.el7.x86_64.img
boot

【部分文件名可以使用tab键补充,准确性更高】
在这里插入图片描述
上述操作过后系统正常启动,但只是临时的,因为引导文件并没有恢复,此时我们需要进行前面的操作手动生成引导文件

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

在这里插入图片描述
(3)文件引导阶段出现问题——内核文件丢失

内核文件有如下
在这里插入图片描述

模拟问题:

rm -rf /boot/vmlinz-3.10.0-514.el7.x86_64

在这里插入图片描述
在这里插入图片描述
解决方案:

首先进入挽救模式,具体操作在上面已经讲过

chroot /mnt/sysimage
mkdir /rhel7
mount /dev/sr0 /rhel7
cd /rhel7/Packages
cp kernel-3.10.0-514.el7.x86_64.rpm /mnt
cd /mnt
rpm2cpio kernel-3.10.0-514.el7.x86_64.rpm | cpio -id
cd boot
cp vmlinuz-3.10.0-514.el7.x86_64 /boot
exit
exit

在这里插入图片描述
退出后强制停止虚拟机,调整磁盘顺序,在重新启动!

(4)系统初始化镜像文件丢失

模拟问题:删除初始化镜像文件

rm-rf /boot/initramfs-3.10.0-514.el7.x86_64.img

在这里插入图片描述
解决方案

当系统没有重启时——用命名自动生成

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

在这里插入图片描述
当系统重启后
在这里插入图片描述

进入挽救模式

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

在这里插入图片描述
(5)当/boot分区被删除

模拟问题:

rm -rf /boot/*

在这里插入图片描述
解决方案

进入挽救模式

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

在这里插入图片描述
退出后强制关闭虚拟机,调整磁盘顺序,重启系统!

(6)开启级别被篡改

模拟错误:

ln -s /lib/systemd/system/reboot.target  /etc/systemd/system/default.target

在这里插入图片描述
此时系统将处于无限重启

解决方案:

开机后快速按上下键停止读秒,按“e”进入编辑模式

【在initrd16 /initramfs-3.10.0-514.el7.x86_64.img的前一行尾输入 5——设置为内核启动】,然后根据下方提示ctrl+x启动系统。
在这里插入图片描述
这样的解决方式是临时的,我们需要修改启动级别的链接指向,否则此次关机后重启,系统依然处于无限重启

在这里插入图片描述
(7)忘记超级用户登陆密码

解决方案:

开机后快速按上下键停止读秒,按“e”进入编辑模式
在这里插入图片描述

在initrd16 /initramfs-3.10.0-514.el7.x86_64.img的前一行尾进行修改,然后根据下方提示ctrl+x启动系统。

在这里插入图片描述
在接下来出现的界面进行如下操作

在这里插入图片描述
登陆时输入更改后的密码【redhat】就能完成登陆!!!!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值