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系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题.那么这篇博文就总结一下一些常见的故障排除方法,但是不可能 ...
随机推荐
- Flex父子窗口相互调用
Flex父子窗口相互调用 1.设计思路 (1)子窗口调用父窗口的方法 (2)子窗口做了修改后,返回父窗口,父窗口调用子窗口函数 2.设计源码 (1)父窗口 ParentWindow.mxml: < ...
- Java中的“&”和“&&”的区别
Java中的"&"和"&&"的区别 1."&"是位运算符,"&&"是逻辑 ...
- .net core 环境安装失败,错误:0x80072EE2
安装[DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe]失败,提示这个界面 查看log发现,发现猫腻,然后copy下链接,用迅雷手动下载[AspNetCore ...
- BUAA软工第0次作业
第一部分:结缘计算机 1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 我在大学之前甚至连一个萌新都算不上,根本没有任何一点计算机专业的基础. 因此在进入大学之前,计算机对于我 ...
- 一个简单的freemark输入输出的案例(二)
freemarker入门实例 1.设计思路 (1)新建Maven Project (2)生成freemarker模板 (3)写freemarker页面ftl文件 (4)写测试文件 2.新建Maven ...
- 零基础6个月学好java月薪1w+看看他是怎么学好java的
21世纪进入信息时代,信息科技给人类的生产和生活方式带来了深刻的变革,信息产业已成为推动国家经济发展的主导产业之一,Java作为含金量极高的一门IT技术,很多人希望从事这个行业,那么想学好Java,要 ...
- sqoop:mysql to hdfs
将mysql联合查询的结果导入到hdfs上 sqoop import --connect jdbc:mysql://ip/数据库 --username root --password 密码 --que ...
- 【Luogu1471】方差(线段树)
[Luogu1471]方差(线段树) 题面 这种傻逼题...自己去看把.. 题解 这题太傻比了 把方差公式拆开 维护平方和和区间和 修改就把平方和的公式拆开 简直傻逼的题目 #include<i ...
- [USACO12FEB]Nearby Cows
题意 给出一棵n个点的无根树,每个点有权值,问每个点向外不重复经过k条边的点权和 题解 设f[i][j]表示所有离i节点距离为j的点权和,v为它周围相邻的点,t为v的个数,则 j > 2 f[i ...
- js中实现继承的不同方式以及其缺点
1.利用call和apply,借助构造函数 fucntion P(){ this.name = "P"; } fucntion C1(){ P.call(this); } 解释一下 ...