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

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

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

出现如下图的故障
Linux启动和内核管理排错修复_第1张图片
进入救援模式
Linux启动和内核管理排错修复_第2张图片
选择救援安装
Linux启动和内核管理排错修复_第3张图片

Linux启动和内核管理排错修复_第4张图片
Linux启动和内核管理排错修复_第5张图片
这时候他会自动找到系统的原来根挂载到了/mnt/sysimage下
Linux启动和内核管理排错修复_第6张图片
真正的操作系统根/dev/sa2 在/mnt/sysimage下
破坏的文件initramfs-2.6.32-754.el6.x86_64.img 在/dev/sda1 /mnt/sysimage/boot下
Linux启动和内核管理排错修复_第7张图片
切换到根目录下 chroot /mnt/sysimage
查看是否在根目录下 pwd
查看根下面的文件 ls
查看是否挂在到跟下 df
查看 /boot下的文件 缺少了initramfs 文件

使用下面ramdisk命令修复
Linux启动和内核管理排错修复_第8张图片

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

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

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

Linux启动和内核管理排错修复_第9张图片
Linux启动和内核管理排错修复_第10张图片

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

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

产生的现象如下图:
Linux启动和内核管理排错修复_第11张图片

Linux启动和内核管理排错修复_第12张图片

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191102153453200.png
Linux启动和内核管理排错修复_第13张图片
Linux启动和内核管理排错修复_第14张图片

Linux启动和内核管理排错修复_第15张图片
此时的根 是光盘加载的一个虚拟的文件系统根,不是我们所要找的根文件系统
Linux启动和内核管理排错修复_第16张图片
创建一个新的文件夹 ,把光盘挂在到这个临时文件夹中
Linux启动和内核管理排错修复_第17张图片
原理就是在光盘中有一个文件和vmlinuz是一样的,只需要挂在光盘然后拷贝过来就ok
接下来就是退出 重启就ok
Linux启动和内核管理排错修复_第18张图片

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

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

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

Linux启动和内核管理排错修复_第25张图片
按照下面的提示 按下 a 键 进入模式1 单用户模式

Linux启动和内核管理排错修复_第26张图片
Linux启动和内核管理排错修复_第27张图片
reboot 重启

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

服务故障起不来故障排错
临时进入1 单用户模式 因为 一般2-5模式都是关闭的 但是1模式是开启的
一般很多服务都不启动,所以一般因为服务起不来而down机
Linux启动和内核管理排错修复_第28张图片
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

Linux启动和内核管理排错修复_第29张图片
产生的现象:
直接到了光盘启动,因为光盘已经连接
Linux启动和内核管理排错修复_第30张图片
断开光盘象限:
Linux启动和内核管理排错修复_第31张图片
会尝试去通过网络来去找开机引导文件

进入救援模式:
Linux启动和内核管理排错修复_第32张图片
Linux启动和内核管理排错修复_第33张图片
第一种方式后面加的是硬盘DISK,因为gurb的引导文件在BMR的前面446字节,不属于任何一个分区
第二种方式是gurb交互是的方式
boot 的分区
setup 按装分区

进入到开启shell的模式下:
Linux启动和内核管理排错修复_第34张图片
Linux启动和内核管理排错修复_第35张图片
先要切换到根目录下 之后运行grub 修复命令即可
也可以用第二种方式进行交互式grub修复
Linux启动和内核管理排错修复_第36张图片
MBR后续的27个扇区里面 上图看的很清楚
不仅仅修复1阶段 其他阶段都有着一定的修复

重启即可

查看是否修复Linux启动和内核管理排错修复_第37张图片

二 破坏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

产生的现象:
Linux启动和内核管理排错修复_第38张图片
依旧救援模式 一直到开启shell中救援:
Linux启动和内核管理排错修复_第39张图片
重启即可

三:二阶段的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阶段破坏就认为没有启动功能了 产生现象:
Linux启动和内核管理排错修复_第40张图片
依旧救援模式 一直到开启shell中救援:Linux启动和内核管理排错修复_第41张图片
这个修复了grub1 2 的部分文件,但是没有修复grub.conf文件 需要手工写

Linux启动和内核管理排错修复_第42张图片

vim /boot/grub/grub.conf

Linux启动和内核管理排错修复_第43张图片

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

重启即可

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

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

产生的现象如下图,一直转圈圈:
Linux启动和内核管理排错修复_第44张图片
Linux启动和内核管理排错修复_第45张图片
选择 a键
为了看到更加清楚,把前面的rhgb quiet删除 然后加上 selinux=0 init=/bin/bash
禁用selinux 更改第一个进程
Linux启动和内核管理排错修复_第46张图片
Linux启动和内核管理排错修复_第47张图片Linux启动和内核管理排错修复_第48张图片
挂载光盘
之后可以引用光盘里面对应的包

 ls /mnt/Packages

在这里插入图片描述
在这里插入图片描述
找到对应的安装包
有时候会第一次根的挂载第一次是只读的,这时候就需要重新挂载一次
在这里插入图片描述
找一个比较空的地方解开对应的压缩包
Linux启动和内核管理排错修复_第49张图片
在这里插入图片描述
查看文件是否存在
Linux启动和内核管理排错修复_第50张图片
重新移到/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

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

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前面。
Linux启动和内核管理排错修复_第63张图片
加密选项的语法为:
md5加密:password --md5 加密密码
sha-512加密:password --encrypted 加密密码

你可能感兴趣的:(linux启动,启动排错修复,grub)