linux系统无法正常启动,故障排查恢复
linux内核启动修复
首先看一下linux内核重要文件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 #如果有多个菜单,默认选择的菜单为0
timeout=5 #菜单选项栏等待5s
splashimage=(hd0,0)/grub/splash.xpm.gz #/dev/sda1即/boot下开机启动图片
hiddenmenu #影藏菜单
title CentOS 6 (2.6.32-696.el6.x86_64) #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
root (hd0,0) #第一块磁盘,第1个分区,指的是/boot
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # kernel相对于/boot的路径,此处根值/boot,kenrl后面跟有系统启动相关参数 rhgb 图形化工具(转圈圈),删除rhgb直接到正常启动界面 quiet默认隐藏内核的启动过程
initrd /initramfs-2.6.32-696.el6.x86_64.img title CentOS 6 (2.6.32-696.el6.x86_64) #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # 没有定义根,后面不能调用只能在前面添加(hd0,0)
initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img
一 删除/boot/grub/*下所有文件,只保留grub.conf配置文件,系统能否正常启动修复?

二 破坏MBR的前446字节的信息,修复(stage1阶段修复)
[root@Centos6 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=4426





-----------------------------------------------------------------------------------
三 破坏512字节之后的内容进行修复(stage1.5阶段过程)

此时会发现菜单都看不到
sh-4.1# grub

grub>root (hd0,0) #表示boot在第一块磁盘第1个分区


四 在“三”的基础上在重新做“一”的操作,再启动会出现报错,状态码为Error 15



五 如果没有root(hd0,0)且kernel,initrd不指定/boot的位置会出现如下报错
title CentOS 6 (2.6.32-696.el6.x86_64) #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
kernel vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # 没有定义根,后面不能调用只能在前面添加(hd0,0)
initrd initramfs-2.6.32-696.el6.x86_64.img

#此时只能进入救援模式切根修改文件
title CentOS 6 (2.6.32-696.el6.x86_64) #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # 没有定义根,后面不能调用只能在前面添加(hd0,0)
initrd /initramfs-2.6.32-696.el6.x86_64.img
六 如果在默认文件中去掉root (hd0,0)一行系统启动会出现的情况
title CentOS 6 (2.6.32-696.el6.x86_64)
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-696.el6.x86_64.img

七 调换kernel和initrd调换顺序,开机启动情况?
title CentOS 6 (2.6.32-696.el6.x86_64)
initrd /initramfs-2.6.32-696.el6.x86_64.img
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet







八 单用户模式下可以轻易破解口令,如何明文加密口令?
password zangfans


# 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
password centos6 #编辑菜单项输入密码
hiddenmenu
title CentOS 6 (2.6.32-696.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-696.el6.x86_64.img title CentOS 6 (2.6.32-696.el6.x86_64)
kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet #
initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img
password centos6 #启动输入密码



九 如何通过密文设置加密口令
[root@Centos6 ~]# grub-md5-crypt
Password:
Retype password:
$1$Z.gAn/$Xd647hXfPj/sJ.i8A0By8.

password --md5 $1$V1hAn/$hSLRXWfIZWwVtYz4th5rg1
[root@Centos6 ~]# grub-crypt
Password:
Retype password:
$6$jkKAT.eUrv3d4bfM$f41lkKlqQk3fAPqNwgy93J6Wi6bVF.zB5b.24V1QPwAGXkVVmwk2MGdi1UxzStHBaPWarW20AppaOvwheNRRj.
password --encrypted $6$ndPVD/LnVhjBwHaG$XlSiTmJfRJrWufrmH0tLzle/zlmCB.Zyi/WClkcL8G43NDpXlKuQPvsw4AiIJqT1fJrb2Kh8DgZLY68pIAKFI0
十 如果忘记root账号口令,如何修复?



十一 设置grub背景图片
[root@Centos6 ~]# which convert
/usr/bin/convert
[root@Centos6 ~]# rpm -qf `which convert`
ImageMagick-6.7.2.7-6.el6.x86_64
[root@Centos6 ~]# convert -resize 640x480 -colors 14 zf.jpg zf.xpm #此命令必须在zf.jpg位置使用,使用less zf.xpm可以在头部看到相关信息
[root@Centos6 ~]# cp zf.xpm /boot/grub
[root@Centos6 grub]# vim grub.conf
splashimage=(hd0,0)/grub/zf.xpm
[root@Centos6 ~]# cat /proc/cmdline
ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
十二 删除grub.conf文件,启动修复


十三 删除/boot/grub整个目录,如何修复?
[root@Centos6 ~]# rm -rf /boot/grub



#必须写三项分别是title kernel initrd
default 0
timeout 3
title Centos6
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2 #方便的小技巧,防止手敲出错
initrd /initramfs-2.6.32-696.el6.x86_64.img



十四 删除/boot下所有文件如何修复?
[root@Centos6 ~]# ls /boot
config-2.6.32-696.el6.x86_64 initramfs-2.6.32-696.el6.x86_64.img System.map-2.6.32-696.el6.x86_64
efi lost+found vmlinuz-2.6.32-696.el6.x86_64
grub symvers-2.6.32-696.el6.x86_64.gz
[root@Centos6 ~]# rm -rf /boot
rm: cannot remove `/boot': Device or resource busy
[root@Centos6 ~]# ls /boot
[root@Centos6 ~]#
十五 误删除/sbin/init,无法进入系统如何修复?
[root@Centos6 ~]# mv /sbin/init ~/



bash-4.1# rpm -qf /sbin/init
#upstart包提供

bash-4.1# mount -o remount,rw /

#默认光盘已经挂载在/mnt
bash-4.1# cd /mnt
bash-4.1# rpm -ivh /Packages/upstart-xxxxxx --force

bash-4.1# sync

十六 根文件系统放在逻辑卷上,若误操作删除/fstab,/boot/*文件该如何恢复?
[root@Centos6-LVM ~]# mv /etc/fstab /root
[root@Centos6-LVM ~]# rm -rf /boot/*



#必须写三项分别是title kernel initrd
default 0
timeout 3
title Centos6_lvm
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/vg_centos6lvm/LogVo100 selinux=0
initrd /initramfs-2.6.32-696.el6.x86_64.img
十七 误删除/etc/fstab文件和/boot下的所有文件如何修复?
[root@Centos6 ~]# rm -rf /etc/fstab
[root@Centos6 ~]# rm -rf /boot

bash-4.1# mkdir /mnt/tmp #创建
bash-4.1# mount /sda1 /mnt/tmp #挂载到临时文件
bash-4.1# ls /mnt/tmp #查看里面的内容,此处可以看到没有任何文件可以判断为/boot
通过以上方法就可以知道每个分区到底是什么


#必须写三项分别是title kernel initrd
default 0
timeout 3
title Centos6
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2
initrd /initramfs-2.6.32-696.el6.x86_64.img
12、重启系统,恢复正常
linux系统无法正常启动,故障排查恢复的更多相关文章
- 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件
PhotoRec – Recover Deleted or Lost Files in Linux 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件 当你在系统中有意或无意地 ...
- Linux系统入门---开机启动流程
目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: ...
- 不同linux系统添加开机启动程序的命令
see http://phpcj.org/blog/%E4%B8%8D%E5%90%8Clinux%E7%B3%BB%E7%BB%9F%E6%B7%BB%E5%8A%A0%E5%BC%80%E6%9C ...
- Linux系统xinetd服务启动不了
Linux系统xinetd服务启动不了 xinetd服务时发现xinetd服务启动不了,并出现错误提示xinetd:unrecognized service,当出现这个错误提示的时候说明系统未安装xi ...
- Linux系统的快速启动机制(内核切换) 【转】
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4187846 原文地址:Linux系统的 ...
- Linux系统下,启动Tomcat有时报Address already in use
一.Linux系统下,启动Tomcat有时报Address already in use<null>... 1.那是因为你的tomcat已经启动了tomcat自带的关闭脚本,有时候关闭看上 ...
- Linux系统的开机启动顺序
Linux系统的开机启动顺序加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init一句inittab文件来设定系统运行的等级(一般3或者5,3是多用 ...
- Linux启动故障排查和修复技巧
一个执着于技术的公众号 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应对单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解此类问题的解 ...
- Linux系统之TroubleShooting(故障排除)(转)
尽管Linux系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题.那么这篇博文就总结一下一些常见的故障排除方法,但是不可能 ...
随机推荐
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'content' a
1.错误描述 org.hibernate.exception.DataException: could not execute statement at org.hibernate.exception ...
- HTML5中的checkbox
HTML5中的checkbox 1.选中checkbox (1)<input type="checkbox" checked/> (2)<input type=& ...
- var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)
一,原理 1.1,解析1 将字符串解析为JavaScript代码,比如:var a = "alert('a');";这里的a就只是一个字符串而已,输出的话也是alert(a);这句 ...
- 什么是PostBack(译)
什么是PostBack(译) What is a postback? 下面的内容是针对ASP.NET新手的 PostBack什么时候被引发? PostBack由客户端浏览器引发.通常是用户操作(点击按 ...
- windows下安装和配置nginx
下载nginx 到官网下载window版的nginx http://nginx.org/ 配置环境变量 解压到本地的某个路径下, 打开cmd窗口,cd到nginx的目录下 这里要注意cd的时候要加/d ...
- 基于数据库的自动化生成工具,自动生成JavaBean、数据库文档、框架代码等(v5.8.8版)
TableGo v5.8.8版震撼发布,此次版本更新如下: 1.新增两个扩展字段,用于生成自定义模板时使用. 2.自定义模板新增模板目录,可以选择不同分类目录下的模 ...
- 【BZOJ2428】均分数据(模拟退火)
[BZOJ2428]均分数据(模拟退火) 题面 BZOJ 题解 先说说黄学长的做法: 当温度比较高的时候,贪心 每次随机一个数,把他放进当前和最少的那一组里面 温度足够低的时候就完全随机然后转移 这样 ...
- [SCOI2008]奖励关
题面在这里 题意 不好描述.....大家还是看luogu上的吧(资磁洛谷!) sol \(n<=15\)的良心数据肯定是状压啦 只是设状态的时候有点头疼 首先思考我们在无法预知之后宝物的情况下如 ...
- PHP随机函数-集锦
1 PHP随机函数收藏 function random_string($len = 6) { $chars = array( "a", "b", "c ...
- 关于Android attrs 自定义属性的说明
写个自定义控件时经常要自定义一些自己的属性,平时用的都是那几个,今天就顺便一起总结一下这个东东吧- 一.定义:属性的定义都在attrs.xml文件里面: 二.读取:通过都是通过TypedArray去读 ...