标签: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