码迷,mamicode.com
首页 > 其他好文 > 详细

系统及其内核修复你真的会吗?

时间:2016-09-13 22:41:00      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:kernel   kernel修复   内核修复   vmlinuz   /boot   initramfs   

一、boot下各配置文件说明

图示:


技术分享


说明:

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  


图示:

技术分享




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

# 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 #启动选定内核时需输入的密码


图示:


技术分享

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

技术分享




实验一:破坏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  


图示:


技术分享



实验三:删除/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 


图示:


技术分享



实验四:删除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)重启   






本文出自小耳朵原创,上诉有些实验过于简单重复不再每步骤演示,多练多动手快快变大神吧:)









本文出自 “小耳朵” 博客,请务必保留此出处http://purify.blog.51cto.com/10572011/1852335

系统及其内核修复你真的会吗?

标签:kernel   kernel修复   内核修复   vmlinuz   /boot   initramfs   

原文地址:http://purify.blog.51cto.com/10572011/1852335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!