系统及其内核修复

简介:

一、boot下各配置文件说明

图示:


wKiom1fWvB6hV1ucAAAeBCPGa6Q752.png


说明:

1)config-VERSION-release #配置文件

2)vmlinuz-VERSION-release #虚拟内核核心文件

3)initramfs-VERSION-release #辅助伪文件系统  

4)grub #主引导配置目录


演示:


删除initramfs后修复initramfs文件

1)在系统重启时输入Esc进人救援模式

2)切根,使用mkinitrd命令生成initramfs-version-release.img配置文件

chroot /mnt/sysimage

/boot/initramfs-`uname -r`.img `uname -r`

exit  reboot  


图示:

wKiom1fWvpiiFEV0AAAnM8Auceo054.png




二、/boot/grub/grub.conf配置文件详解及其启动菜单、选定启动内核加密 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0) /grub/splash .xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel  /vmlinuz-2 .6.32-642.el6.x86_64 ro root=UUID=240533cf-b37f-4460-974f-702bab867da5 nomodeset rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd  /initramfs-2 .6.32-642.el6.x86_64.img

default=0 #默认启动的菜单项,默认编号为0 

timeout=3 #启动系统后菜单项等待选择超时时间  

splashimage=(hd0,0)/grub/splash.xpm.gz #菜单图片  

hiddenmenue #影藏菜单 

password --md5 string  #启动菜单选项时的密码        

title #菜单标题   

root (hd0,0) #grub查找stage2及其kernel内核文件所在设备分区,为grub的根   

kernel/vmlinuz-version-release ro root=/dev/sda2 #启动的内核 

initrd /initramfs-version-relase.img #辅助的伪文件系统ramfs文件为其加速 

password --md5 string #启动选定内核时需输入的密码


图示:


wKiom1fWw3HityDWAABqiLo5HMo092.png

这时启动菜单选项及其单用户模式都需输入密码:

wKioL1fWxVbjnMeyAAAWyJU3awE875.png




实验一:破坏stage1和stage1_5修复方法及其分析说明:

stage1破坏

dd if=/dev/zero of=/dev/sda bs=1 count=446 #前446字节为boot loader 

stage1.5破坏   

dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1      


修复方法:

grub-install /dev/sda 



实验二:删除boot目录及其修复

1)删除/boot目录然后修复

rm -rf /boot      

2)光盘启动,进入rescue模式,安装内核kernel包   

rpm -ivh /mnt/sysimage/mnt/cdrom/Packages/kernel-version-release.rpm --root=/mnt/sysimage --force|--replacepkgs   

3)安装grub及手动恢复/boot/grub/grub.conf配置文件  

chroot /mnt/sysimage  

grub-install /dev/sda   

vim /boot/grub/grub.conf  

default=0 

timeout=3 

title=alrenlinux 

root (hd0,0)

kernel /vmlinuz-version-release root=/dev/sda2  

initrd /initrd-version-release  


图示:


wKioL1fXdU-Tm4TIAABQUl3e4ls828.png



实验三:删除/boot 和/etc/fstab,恢复之


1)删除boot目录和/etc/fstab两文件

rm -rf /boot /etc/fstab

2)光盘启动和上面的步骤相似,进入rescue救援模式

3)检查根、

blkid ;fdisk -l    

4)把根挂载到一指定目录  

mkdir /mnt/sda2        mount /dev/sda2   /mnt/sda2   

5)把boot目录及其根挂载到/etc/fstab中让其开机自动挂载 

vi  /mnt/sda2/etc/fstab 

/dev/sda1    /boot    ext4    defaults 1 1  

/dev/sda2    /        ext4    defaults 1 2

6)重启机器 

reboot    


之后的步骤和上诉修复删除boot目录完全一样简单叙述如下:

1)光盘启动,进入rescue模式,挂载光盘,安装kernel  

mkdir /mnt/cdrom     mount /dev/cdrom    /mnt/cdrom  

rpm -ivh /mnt/cdrom/Packages/kernel-version-release.rpm --replacepkgs |--force     

2)修复grub及grub几个阶段配置文件,如发现不能修复,可以使用在grub中输入setup进行修复  

grub-install /dev/sda 

grub>root (hd0,0) 

grub>setup(hd0) 

3)编辑grub.conf配置文件   

default=0 

timeout=3 

title alrenlinux  

root (hd0,0) 

kernel /vmlinuz-version-release  root=/dev/sda2    

initrd /initramfs-version-release 


图示:


wKioL1fXttqwCxEyAABLqtNnWRQ291.png



实验四:删除boot目录下的vmlinuz-version-release核心文件及其initramfs-version-release.img,实现修复。  

1)进入救援模式rescue 

2)挂载光盘,把光盘里面vmlinuz拷贝到/boot目录下 

3)生成initramfs文件,使用mkinitrd命令生成

mkinitrd /boot/initramfs-`uname -r`.img `uname -r`   

4)配置/boot/grub/grub.conf配置文件,把vmlinuz版本号去除    

5)重启   



本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1852335,如需转载请自行联系原作者

相关文章
|
安全 Unix Linux
操作系统紧急故障修复常见有效方案
操作系统是计算机系统的核心软件之一,如果操作系统出现了紧急故障,将会引起系统的宕机,严重影响业务系统的可用性。因此,对操作系统的紧急故障进行修复是必不可少的。本文将介绍操作系统紧急故障的常见有效方案。
260 1
|
3月前
|
监控 Linux
在Linux中,如何创建、检查和修复文件系统?
在Linux中,如何创建、检查和修复文件系统?
|
6月前
|
安全 Linux 开发者
⭐⭐⭐⭐⭐Linux C/C++ 进程崩溃诊断以及有效数据收集:解锁代码问题快速定位与修复的方法
⭐⭐⭐⭐⭐Linux C/C++ 进程崩溃诊断以及有效数据收集:解锁代码问题快速定位与修复的方法
391 1
|
2月前
|
Linux
Linux内核的异常修复原理
Linux内核的异常修复原理
|
3月前
|
缓存 监控 安全
在Linux中,如何排查系统崩溃问题?
在Linux中,如何排查系统崩溃问题?
|
安全 Linux
Linux常见维护报错,修复MBR引导/修复grub2菜单/内核文件丢失
Linux常见维护报错,修复MBR引导/修复grub2菜单/内核文件丢失
131 0
Linux常见维护报错,修复MBR引导/修复grub2菜单/内核文件丢失
|
安全 数据库 Windows
记一次因误操作系统崩溃修复过程
记一次因误操作系统崩溃修复过程
149 0
|
Linux
linux 文件系统损坏修复方式
最近,在使用树莓派时,由于异常掉电,导致树莓派的文件系统遭到破坏,系统启动时提示下面的信息:
788 0
|
Rust 安全 前端开发
内核热补丁,真的安全么?
Linux 内核函数的热替换“撞上”函数调用约定还靠谱吗?
内核热补丁,真的安全么?
|
Linux
Linux新内核修复14年古老bug
前往巴西参加了LinuxCon大会之后,Linus Torvalds立即投入工作,近日又放出了Linux Kernel系统内核的2.6.36-rc5预览版。 该版本依然是修复bug和其他问题为主,其中就包括一个存在了14年之久的古老bug。
951 0