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

一、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

时间: 2024-10-04 09:50:34

系统及其内核修复你真的会吗?的相关文章

Linux 修改inittab导致系统无法启动修复

以红帽Linux为例,由于修改inittab内容不当,导致系统无法启动. 解决思路:启动时修改grub参数,进入单用户模式,将inittab文件恢复,重新启动系统即可.而且该方法不需要光盘启动,特别适合虚拟机下的inittab等文件的恢复. 解决步骤: 1.修改grub参数. 在启动Linux时,按上下键,进入启动参数选择模式. 2.按e键进入grub参数编辑模式. 3.选择启动项,将rhgb参数修改为single,敲回车返回,再按b键启动Linux. 将 grub append>ro root

查看linux系统和内核版本

1. 查看内核版本命令: 1) [[email protected] ~]# cat /proc/version Linux version 2.6.9-22.ELsmp ([email protected]) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005 2) [[email protected] ~]# uname -a Linux q1test01 2.6.9-22.EL

Ubuntu+Win7双系统grub的修复问题

最近,在grub引导的Ubuntu+Win7双系统上作业,用的是Ubuntu14.04.2.进行系统更新,更新到一般卡住了,恰好此时在进行grub相关文件的更新,我把机器重启后进入了grub rescue模式,如下: error: file '/boot/grub/i386-pc/normal.mod' not found. Entering rescue mode... grub rescue> 经过网络一番查找和自身验证,我汇总了三种解决方法. 1.制作Ubuntu的U盘启动工具,选择U盘启

Linux系统cpu 100%修复案例

Linux系统cpu 100%修复案例 ?阿里云技术支持团队:完颜镇江 案例背景: Linux主机连续三天CPU% 处理思路: 1.  登录服务器查看/var/log/messages+/var/log/messages.1+/var/log/messages.3里恰好没那三天的日志 2.  dmesg里也无有用的信息 ? 3.  至此怀疑是被攻击了,自然而然的去看对应时间点的带宽占用情况,查看之后发现带宽一切正常,继续排查 4.  怀疑是某个程序的异常,首先的从web进程开始查,通过httpd

通过系统救援模式修复系统

1.主要用途: 当误删了linux系统文件或者卸载了一些软件,导致系统不能启动时可通过镜像修复模式修复系统 2.centos7系统修复 (1)假使卸载了rpm软件,无法安装系统所需软件,此时,需要通过救援模式安装恢复rpm软件 [root@dayi123 ~]# rpm -ql rpm       #使用yum卸载rpm包 /bin/rpm /etc/rpm /usr/bin/rpm2cpio /usr/bin/rpmdb /usr/bin/rpmkeys [[email protected]

SUSE Linux系统降级内核(Kernel)

由于有时SUSE Linux Kernel版本和部分软件不兼容,我们需要对SUSE系统降级内核,具体操作如下: 1.查看当前内核(Kernel)版本使用uname–a或者 uname –r命令来查看内核版本 2.修改/etc/zypp/zypp.conf配置文件将"# multiversion = provides:multiversion(kernel)"这一行最前方的"#"去掉vi /etc/aypp/zypp.conf à删除对应行首的 "#&quo

Linux查看系统与内核信息(uname、file和lsb_release -a)

uname 命令 uname 命令可以用来查看系统与内核的相关信息,命令格式如下: [[email protected] ~]# uname [选项] 选项: -a:查看系统所有相关信息: -r:查看内核版本: -s:查看内核名称: -a:查看系统所有相关信息 [[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x

Ubuntu系统降内核

本人安装的Ubuntu16.04.6系统原生内核为4.15.0,但安装的应用仅支持4.8.0以下内核,因此需要降内核.PS:降内核有风险,操作前请慎重 1.查看可用的内核 输入命令查看已经可用的内核 1 grep menuentry /boot/grub/grub.cfg 我有两个可用的内核,4.15.0和4.8.0,如果没有自己想要的内核,可以另行安装.命令如下: 1 sudo apt-get install linux-headers-x.x.x-x-generic linux-image-

linux命令:grub 文件详解及grub修复,系统常见故障修复

 首先模拟grub损坏,dd if=/dev/zero of=/dev/sda count=1 bs=400   grub引导破坏,但是此时并未重启,可以直接重新安装grub,从而达到恢复grub:   第一种方法:   1.首先输入grub 进入grub命令行 [[email protected] networking]# grub Probing devices to guess BIOS drives. This may take a long time. GNU GRUB  versio