简介:

Grub 常见的两种故障:Grub.conf 文件丢失、MBR 损坏 ( 不管恢复怎么样,还是先备份好吧 )

一、Grub.conf 文件丢失

shell > rm -rf /boot/grub/grub.conf ## 删除文件、模拟故障
shell > reboot

## 故障现象如下:

GNU GRUB verstion 0.97 (634k lower / 1046400k upper memory )
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub>

## 就这个样子,无法登陆系统,下面是解决方法

grub> root (hd0,) # 输入 root (hd0,) 这时按 TAB 键会打印出系统上所有的分区 ( 注意在急救模式下不支持 TAB , 很伤~ )
Possible partitions are:
Partition num: , Filesystem type is ext2fs, partition type 0x83
Partition num: , Filesystem type unknown, partition type 0x82
Partition num: , Filesystem type is ext2fs, partition type 0x83

## 0, 1, 2 代表分区编号,上面显示有文件系统,分区类型,像 83 就是 Linux 普通分区,82 是虚拟分区 SWAP ( 硬盘分区时的知识 )
## 这里不分 IDE / SATA 什么的,都用 hd 代表,hd0 代表第一块硬盘,hd0,0 代表第一块硬盘的第一个分区,系统中是用 sda1 代表第一块硬盘的第一个分区

grub> root (hd0,)/ # 输入 root (hd0,)/ 这里按 TAB 键搜索内核在不在此分区上 ( boot 分区 ),如果有会输出下面信息 ( 试  的分区, 是交换分区就没必要试了 )
Possible files are: lost+found grub efi .VMlinuz-2.6.-.e16.x86_64.hmac System.map-2.6.-.e16.x86_64 config-2.6.-.x86_64 symvers-2.6.-.x86_64.gz VMlinuz-2.6.-.e16.x86_64 initramfs-2.6.-.e16.x86_64.img

## 如果可以看到 vmlinuz- 跟 initramfs- 字样,说明这就是我们想要的东西

grub> root (hd0,)/ # 下面是搜不到的显示, 仔细看看 ( 发现这是根分区哎~~ hd0, 是根分区,我们用的是 SATA , 所以根分区是 /dev/sda3 很有用 !)
Possible files are: lost+found boot dev proc sys var tmp etc root selinux lib64 usr bin home lib media mnt opt sbin srv .autorelabel grub> root (hd0,) # 绑定启动分区
Filesystem type is ext2fs, partition type 0x83 grub> kernel /VMlinuz-2.6.-.e16.x86_64 ro root=/dev/sda3 # 指定启动内核,ro 只读模式,root= 指定根分区, 一定要指对 ( 可能如果 boot 没有单独分区不指定也是可以的 ) grub> initrd /initramfs-2.6.-.e16.x86_64.img # 这是内核映像吧 ( kernel 、initrd 都是上面搜出来的,输入一点点按 TAB 可以补全 ) grub> boot # 启动系统,手动编写 grub.conf 或恢复备份 shell > vim /boot/grub/grub.conf default= # 启动哪个系统
timeout= # 等待时间
title CentOS 6.6 # 描述信息
kernel /VMlinuz-2.6.-.e16.x86_64 ro root=/dev/sda3 # 内核
initrd /initramfs-2.6.-.e16.x86_64.img # 启动映像

## 这里有个 vim 的用法,直接主机上 vim 是不可以用鼠标复制命令行内容的,那 kernel 跟 initrd 又那么长,不好记
## 方法:末行模式下输入 .! ls /boot/vmlinuz- 按 TAB 就可以补全了,这时按 Enter 键就可以将此条信息放到当前文件中

shell > reboot

## 这样就恢复成功了!还是记得备份吧

## 如果 kernel 没有指对根分区就会这样~ 还要重启系统,重新来过

dracut Warning: Signal caught!
?dracut Warning: Boot has faild. To debug this issue add "rdshell" to the kernel command line.
?Kernel panic - not syncing: Attempted to kill init!
?Pid: , comm: init Not tainted 2.6.-.e16.x86_64 #
?Call Trace:
[<ffffffff815292bc] ? panic+0xa7/0x16f
? [<ffffffff815292bc] ? do_exit+0xa7/0x16f
? [<ffffffff815292bc] ? fput+0xa7/0x16f
? [<ffffffff815292bc] ? system_call_fastpath+0xa7/0x16f?
?

二、MBR 损坏

shell > dd if=/dev/zero of=/dev/sda count= bs= # 覆盖 MBR , 模拟故障 ( /dev/sda 前  个字节是 MBR )
shell > reboot

## 故障现象如下:

Operating System not found # 基本就这样,会出现本地硬盘找不到系统、从 PXE 获取,DHCP xxxxxxxxxxxxx

## 解决方法:使用紧急救援模式修复

> 插入系统光盘,进入急救模式 ( 这个都会进吧,CentOS 直接选择,RedHat boot:linux rescue )

shell > grub # 进入 grub 模式

grub> root (hd0,) # 直接指定内核所在分区吧,没法 TAB ( 一定要想办法找到它, 例如:先 chroot /mnt/sysimage , 然后 df -HT 可以看到所有分区,假如 sda1 是启动分区,那么这里对应就是 hd0, 了 )

grub> setup (hd0) # 重新安装 MBR 到该磁盘,实际上就是 /dev/sda

grub> quit

shell > reboot

## 现在就可以成功进入系统了,MBR 已经修复

附加:BASH 故障的解决方法

shell > rm -rf /bin/bash # 删除 bash ,模拟故障
shell > reboot

## 故障现象如为:系统无法初始化,init 命令不存在,其实什么指令都不能执行
## 进入急救模式重新安装 bash

shell > mkdir /media # 直接在光盘系统中操作,因为这时无法 chroot 到 /mnt/sysimage
shell > mount /dev/sr0 /media # 挂载光盘镜像,/dev/sr0 代表光驱,如果是 IDE 接口应该是 /dev/hdc
shell > cd /media/Packages
shell > rpm -ivh --replacepkgs --root /mnt/sysimage bash-4.1.-.e16.x86_64.rpm # 将 bash 安装到 --root 指定根目录中 --replacepkgs 是替换原有包
shell > reboot

## OK ,故障已经修复!

CentOS Grub、BASH 故障、解决方法的更多相关文章

  1. centos一些故障解决方法

    1. vmware下虚拟机centos,root登录时候提示鉴定故障解决方法 - lippor - 博客园 https://www.cnblogs.com/lippor/p/5537931.html ...

  2. 开机时进入 grub rescue>的解决方法

    本机是centOS7和win8的双系统 之前在win上把一个空的磁盘空间释放了 可能造成了grub的一些问题 具体还没有研究过 开机后无法正常进入grub引导画面 而是跳出一串英文+ grub res ...

  3. 001. 使用ssh连接不上centos 6.5的解决方法及其解决中文乱码

    1. 使用ssh连接不上centos 6.5的解决方法: 错误显示: Connecting to 192.168.1.106:22... Could not connect to '192.168.1 ...

  4. VMware虚拟机的CentOS无法上网的解决方法

    前言:由于Linux下很多软件安装必须网络环境下进行,因此,对于如何在VMware下进行上网,我折腾了至少三天,今天上午,也即五一劳动节,终于搜到一遍技术文章,经过自己实践,VMware下Linux的 ...

  5. CentOS 大量的TIME_WAIT解决方法

    CentOS 大量的TIME_WAIT解决方法 最近个人博客总是出现无法打开的现象,具体表现为,打开页面需要等待n长时间,登陆系统后发现系统存在大量TIME_WAIT状态的连接,google了一下解决 ...

  6. Win10系统,开机后提示Desktp不可用的故障解决方法。

    WIN10桌面位置不可用的故障解决方法 今天电脑开机 (Win10系统).桌面空了,然后就蒙了. 系统并弹出以下框,如下图: 原因可能是因为昨天晚上熬夜测试脚本.网上下载的脚本大多都是有毒的.但是人懒 ...

  7. Slave_SQL_Running: No mysql同步故障解决方法

    Slave_SQL_Running: No mysql同步故障解决      今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:mysql> show slave s ...

  8. svn 不能校验路径“XXX”的锁;没有匹配的可用锁令牌 故障解决方法

    原文出自:https://blog.csdn.net/seesun2012 故障现象: svn Commit ,失败,提示: 不能校验路径"/SEESUN/****系统计划说明书.docx& ...

  9. Win8.1系统蓝屏提示Wpprecorder.sys文件故障解决方法

    从问题查找上来讲Win8.1蓝屏比win7出现田蓝屏更为麻烦,因为没有错误代码,大家也无从查找!所以只有在有限的提示中找到一些“蛛丝马迹”,而今天我们要讲的是“Win8.1重启或快速启动时蓝屏时提示W ...

  10. Windows 2008 R2安装.NET Framework 4提示灾难性故障解决方法

    原因:WINDOWS 2008的安全设置方案取消了C盘根目录的Users权限,只给administrator和system权限,结果在打补丁时就无法更新(安装.net4需要安装windows6.1-K ...

随机推荐

  1. LOJ2325. 「清华集训 2017」小 Y 和恐怖的奴隶主【矩阵快速幂优化DP】【倍增优化】

    LINK 思路 首先是考虑怎么设计dp的状态 发现奴隶主的顺序没有影响,只有生命和个数有影响,所以就可以把每个生命值的奴隶主有多少压缩成状态就可以了 然后发现无论是什么时候一个状态到另一个状态的转移都 ...

  2. LOJ2324. 「清华集训 2017」小 Y 和二叉树【贪心】【DP】【思维】【好】

    LINK 思路 首先贪新的思路是处理出以一个节点为根所有儿子的子树中中序遍历起始节点最小是多少 然后这个可以两次dfs来DP处理 然后就试图确定中序遍历的第一个节点 一定是siz<=2的编号最小 ...

  3. 20179223《Linux内核原理与分析》第一周学习笔记

    第一周实验 尝试创建两个文件,用通配符查找这两个文件:在创建文件的时候,需要同时创建多个文件的方法运行. 根据作业要求,实现一个lilux命令. 根据作业要求添加一个用户loutest,使用sudo创 ...

  4. Python学习-第三方库操作

    2018-05-04   12:03:19 Python安装模块,更新模块 #显示模块 pip list #显示过期模块 pip list --outdated #安装模块 pip install x ...

  5. WPF实现Twitter按钮效果(转)

    最近上网看到这个CSS3实现的Twitter按钮,感觉很漂亮,于是想用WPF来实现下. 实现这个效果,参考了CSS3 原文地址:http://www.html5tricks.com/css3-twit ...

  6. 洛谷3354(IOI2005)河流——“承诺”

    题目:https://www.luogu.org/problemnew/show/P3354 虽说是几个月前曾经讲过的题,但没有题解而自己(花了两个多小时)A了好高兴!!! 这是一个很好的套路:“承诺 ...

  7. CentOS 6.5 下MySql主从、主主配置

    参考网站: http://blog.csdn.net/faye0412/article/details/6280761 http://blog.csdn.net/kk185800961/article ...

  8. Memory stream is not expandable

    发现项目有一个地方在做图片缩放剪切的一个操作中.碰到有一些特殊的图片会报 Memory stream is not expandable 的错误 跟踪的时候发现是 由方法 originalStream ...

  9. FPGA能代替CPU架构吗?

    你还没听过FPGA?那你一定是好久没有更新自己在企业级IT领域的知识了.今天笔者就和大家聊聊何为FPGA?FPGA主要应用场景是什么?有人说FPGA是替代传统CPU和GPU的未来,你信吗? FPGA全 ...

  10. QT——在QGraphicsScene中限制图元的拖动范围

    欲使QGraphicsItem可拖动,则需设置标志位:setFlag(ItemIsMovable,true); 而如果想限制QGraphicsItem对象的移动范围,需要继承QGraphicsItem ...