Linux启动和内核管理排错修复

一 、删除/boot/下initramfs-xxx.img 文件

[root@kaivi6 boot]# rm -rf initramfs-2.6.32-754.el6.x86_64.img 
[root@kaivi6 boot]# reboot

出现如下图的故障
在这里插入图片描述
进入救援模式
在这里插入图片描述
选择救援安装
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这时候他会自动找到系统的原来根挂载到了/mnt/sysimage下
在这里插入图片描述
真正的操作系统根/dev/sa2 在/mnt/sysimage下
破坏的文件initramfs-2.6.32-754.el6.x86_64.img 在/dev/sda1 /mnt/sysimage/boot下
在这里插入图片描述
切换到根目录下 chroot /mnt/sysimage
查看是否在根目录下 pwd
查看根下面的文件 ls
查看是否挂在到跟下 df
查看 /boot下的文件 缺少了initramfs 文件

使用下面ramdisk命令修复
在这里插入图片描述

在这里插入图片描述
进入/boot文件夹 cd /boot/

生成新的initramfs文件 :mkinitrd initramfs-`uanme -r`.img `uname -r ` (反向单引号)

查看是否生成成功 ls -l
成功之后退出(exit)重启(reboot)即可

在这里插入图片描述
在这里插入图片描述

二、删除/boot/下vmlinuz-xxx文件

[root@kaivi6 ~]# rm -f /boot/vmlinuz-2.6.32-754.el6.x86_64 

产生的现象如下图:
在这里插入图片描述

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191102153453200.png
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
此时的根 是光盘加载的一个虚拟的文件系统根,不是我们所要找的根文件系统
在这里插入图片描述
创建一个新的文件夹 ,把光盘挂在到这个临时文件夹中
在这里插入图片描述
原理就是在光盘中有一个文件和vmlinuz是一样的,只需要挂在光盘然后拷贝过来就ok
接下来就是退出 重启就ok
在这里插入图片描述

三、启动模式为reboot形式修复

[root@kaivi6 ~]# vim /etc/inittab 

在这里插入图片描述
修改默认启动级别为6 reboot 模式,则会不断重复开机自启。
在这里插入图片描述
倒计时的时候按任意键 到下面这个界面
在这里插入图片描述
按照下面的提示 按下 a 键
在这里插入图片描述
在 qiuet 后面加上 空格 1-6 跳过 /etc/inittab 中的启动选项 先进入这里对应的
默认启动项 这里选择 3 字符界面为例 ,即在qiuet 后面直接输入 3
这里注意这是临时启动,还需要改对应的文件 vim /etc/inittab 。
在这里插入图片描述
1 模式 单用户模式 可以修改 破解root 口令
在这里插入图片描述

在这里插入图片描述
按照下面的提示 按下 a 键 进入模式1 单用户模式

在这里插入图片描述
在这里插入图片描述
reboot 重启

四、服务故障起不来故障排错

服务故障起不来故障排错
临时进入1 单用户模式 因为 一般2-5模式都是关闭的 但是1模式是开启的
一般很多服务都不启动,所以一般因为服务起不来而down机
在这里插入图片描述
checonfig --list
找到对应的服务先暂时关闭
checonfig [service] off [service] 对应的服务名称
重启忽略这个服务先把机器起来
之后再解决的服务的问题
reboot

五、grub破坏

一、 破坏一阶段(rbm前面446字节)

[root@kaivi6 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446
446+0 records in
446+0 records out
446 bytes (446 B) copied, 0.00988625 s, 45.1 kB/s

在这里插入图片描述
产生的现象:
直接到了光盘启动,因为光盘已经连接
在这里插入图片描述
断开光盘象限:
在这里插入图片描述
会尝试去通过网络来去找开机引导文件

进入救援模式:
在这里插入图片描述
在这里插入图片描述
第一种方式后面加的是硬盘DISK,因为gurb的引导文件在BMR的前面446字节,不属于任何一个分区
第二种方式是gurb交互是的方式
boot 的分区
setup 按装分区

进入到开启shell的模式下:
在这里插入图片描述
在这里插入图片描述
先要切换到根目录下 之后运行grub 修复命令即可
也可以用第二种方式进行交互式grub修复

MBR后续的27个扇区里面 上图看的很清楚
不仅仅修复1阶段 其他阶段都有着一定的修复

重启即可

查看是否修复在这里插入图片描述

二 破坏1.5阶段 就是后面27个扇区(27*512=13k)

[root@kaivi6 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=10240 seek=512
10240+0 records in
10240+0 records out
10240 bytes (10 kB) copied, 0.021381 s, 479 kB/s

产生的现象:
在这里插入图片描述
依旧救援模式 一直到开启shell中救援:
在这里插入图片描述
重启即可

三:二阶段的grub修复

先破坏二阶段的分区表

[root@kaivi6 grub]# dd if=/dev/zero of=/dev/sda bs=1 count=446
446+0 records in
446+0 records out
446 bytes (446 B) copied, 0.00951482 s, 46.9 kB/s

[root@kaivi6 grub]# hexdump -C -n 512 /dev/sda -v 
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
[root@kaivi6 grub]# rm -rf /boot/grub/
[root@kaivi6 grub]# reboot

grub1阶段破坏就认为没有启动功能了 产生现象:
在这里插入图片描述
依旧救援模式 一直到开启shell中救援:在这里插入图片描述
这个修复了grub1 2 的部分文件,但是没有修复grub.conf文件 需要手工写

在这里插入图片描述

vim /boot/grub/grub.conf

在这里插入图片描述

技巧:
:r!ls /boot/vmlinuz*
:r!ls /boot/init*

重启即可

六 删除/sbin/init 第一个进程

[root@kaivi6 ~]# mv /sbin/init /data
[root@kaivi6 ~]# reboot

产生的现象如下图,一直转圈圈:
在这里插入图片描述
在这里插入图片描述
选择 a键
为了看到更加清楚,把前面的rhgb quiet删除 然后加上 selinux=0 init=/bin/bash
禁用selinux 更改第一个进程
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
挂载光盘
之后可以引用光盘里面对应的包

 ls /mnt/Packages

在这里插入图片描述
在这里插入图片描述
找到对应的安装包
有时候会第一次根的挂载第一次是只读的,这时候就需要重新挂载一次
在这里插入图片描述
找一个比较空的地方解开对应的压缩包
在这里插入图片描述
在这里插入图片描述
查看文件是否存在
在这里插入图片描述
重新移到/sbin目录下
重启即可
(登入问题)
方法二:
重启后,发现可以在bash环境下操作。此时,用rpm命令查询/sbin/init文件对应的安装包为upstart,挂载光盘到/mnt目录为安装做准备。由于/目录挂载状态为只读,重新挂载并设置为读写。
rpm重新安装upstart软件包。因为只是丢失了/sbin/init文件,所以需要添加–force选项强制覆盖安装。在这里插入图片描述
重新启动后,成功进入系统。

实验: rm /sbin/init 恢复之
1 grub菜单 加 selinux=0 init=/bin/bash 2 mount -o remount,rw /
3 mount /dev/sr0 /mnt/
4 rpm2cpio /mnt/Packages/upstart.xxx.rpm | cpio -idv ./sbin/init
5 mv ./sbin/init /sbin/

七、删除 /etc/fstab 和 /boot/

[root@kaivi6 ~]# rm -rf /etc/fstab  /boot/*
[root@kaivi6 ~]# cat /etc/fstab
cat: /etc/fstab: No such file or directory
[root@kaivi6 ~]# ll /boot/
total 0

在这里插入图片描述
直接到救援模式下的开始shell下进行操作
对应一样的版本号
这次的后果 系统找不到根在哪里,找不到分区
在这里插入图片描述
找不到根就等于说进不去根下面的/boot/里面进行修复
所以第一步就是先回复fastab配置文件,这样才能把根挂载
在这里插入图片描述
能看到只有一块sda 硬盘 一共分了5个分区 分区4和5 可以先排除,因为一个扩展分区 一个swap分区 对于1分区只有1个G的很小空间,所以当根的话不现实
,大概率是/boot分区 。最大可能是2 3 。所以在这里可以建立一个临时文件夹,尝试挂载一下 看下里面具体的内容,从而来判断哪一个是根分区。
在这里插入图片描述
很明显,sda2 是根
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在上面文件配置之后重启
就能找到对应的根了 就可以chroot 切根进行修复了
重新启动 进入救援模式 开启shell界面
在这里插入图片描述
在这里插入图片描述
切根并且进入/boot文件夹,boot中重要的2个文件 一个是vmlinuz文件,这个文件需要光盘重新挂载后重新拷贝一份到/boot/下即可
在这里插入图片描述
有个这个vmlinuz文件就可以通过命令生成initramfs文件
在这里插入图片描述
现在还缺少grub.conf文件 需要自己配置
vim /boot/grub/grub.conf
在这里插入图片描述
在这里插入图片描述

1 rescue mode
恢复/etc/fstab 找到/ 所在分区 fdisk -l
mkdir /mnt/tmp
mount/dev/sdaN /mnt/tmp
ls /mnt/tmp
mount /dev/sda2 /mnt/tmp
vim /mnt/tmp/etc/fstab
/dev/sda1 /boot ext4 defaults 0 0
/dev/sda2 / ext4 defaults 0 0
/dev/sda3 /data ext4 defaults 0 0
/dev/sda5 swap swap defaults 0 0

reboot

2 rescue mode 恢复内核和initrd 文件
/dev/sda2 --> /mnt/sysimage
chroot /mnt/sysimage
mount /dev/sr0 /mnt/
方法1 rpm -ivh/mnt/Packages/kernel.xxxx.rpm --force

方法2 cp /mnt/isolinux/vmlinuz /boot/
mkinitrd /boot/initramfs.img uname -r

3 修复 grub grub-install /dev/sda vim /boot/grub/grub.conf 方法2
cat /boot/grub/grub.conf
default=0
timeout=5
title=centos
kernel /vmlinuz root=/dev/sda2
initrd /initramfs.img
4 reboot

八、给grub的启动过程加密

给grub的启动过程加密:

可以在grub的启动过程的两个环节加密:
1)给启动菜单项编辑权限加密;
2)启动特定菜单项的加密,加密命令相同,但是位于/boot/grub/grub.conf文件的不同位置

加密可以使用明文密码,但安全性太差。目前使用md5和sha-512加密方式加密,现在用md5加密启动项编辑权限,用sha-512加密启动特定菜单项

可以在vim编辑器下使用:r!grub-md5-crypt和r!grub-crypt命令直接生成md5和sha-512加密密码。一般把这个password放在hiddenmenu前面。
在这里插入图片描述
加密选项的语法为:
md5加密:password --md5 加密密码
sha-512加密:password --encrypted 加密密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值