在系统的操作中,有时会不小心误删或者操作失误使得系统启动不起来,下文将列举几种常见的系统启动失败的情况及解决的办法。

1、删除或者覆盖mbr的446个字节

mbr的446个字节指定了系统启动时/boot分区在磁盘中的为至,所以mbr这446个字节如果被删除或者被覆盖,就会导致系统找不到/boot分区而开不了机。

例如下图,用"dd if=/dev/zero of=/dev/vda bs=446 count=1"覆盖掉前446个字节。重启系统发现无法启动。

这种情况的解决方法是:

a、需要一个带有系统镜像的光盘。并且从光盘中启动。

b、启动后选择其中的"Troubleshooting"。

c、选择"Rescue a Red Hat Enterprise Linux System"。

d、输入"1",并按下回车键。

e、输入"chroot /mnt/sysimages",进入真实的/boot。

f、输入"grub2-install /dev/vda",等待安装完成,且提示"Noerror reported"。

上述操作完成后,输入两次"exit"。切换回从硬盘启动。即可解决这个问题。

2、删除启动的引导文件"grub.cfg"

"/boot/grub.cfg"是系统启动的引导文件,如下图,如果删除这个文件,系统启动后将进入如下界面。

这种问题在解决时需要知道自己的/分区和boot分区分别在哪个分区里,本机的/分区在vda3分区下,boot分区在vda1分区下。解决步骤如下:

a、输入"set root='hd0,msdos1'"。按回车键。"msdos1"代表boot分区的位置。

b、输入"linux16 /vmlinuz-3.10.0-327.e17.x86_64 ro root=/dev/vda3"。按回车键。"/dev/vda3"为/分区的位置。

c、输入"initrd16 /initramfs-3.10.0-327.el7.x86_64.img"。按回车键。

d、输入"boot"。按回车键。

完成上述步骤后,系统就可以启动了,但是启动后还是没有删除的"grub.cfg"文件。下次一样无法正常启动,需要输入命令"grub2-mkconfig > /boot/grub2/grub.cfg"来恢复这个启动引导文件。

3、删除启动硬件设备文件

如果删除/boot下的启动硬件设备,如"vmlinuz-3.10.0-327.e17.x86_64",系统将无法启动,如下图所示。开启启动失败,并且提示缺少文件"vmlinuz-3.10.0-327.e17.x86_64"。

此时的解决办法是将镜像中的软件包拆解,恢复这个文件,具体步骤为:

a、通过光盘镜像启动。选择"Troubleshooting",选择"Rescue a Red Hat Enterprise Linux System",输入"1",按下回车键。

b、输入"df"可以看到光盘"/dev/sr0"挂载在"/run/install/repo"下。

c、输入"cd /mnt/sysimage//mnt",并且输入"rpm2cpio /run/install/repo/Packages/kernel-3.10.0-327.e17.x86_64.rpm | cpio -id",拆解"kernel-3.10.0-327.e17.x86_64.rpm"这个安装包。完成后可以看到有boot目录,且其中有之前删除的"vmlinuz-3.10.0-327.e17.x86_64"文件。

d、输入"mv vmlinuz-3.10.0-327.e17.x86_64 /mnt/sysimages//boot"。

将这个文件恢复后,输入"exit",且设置从硬盘启动。系统就可以正常启动了。

4、删除系统初始化文件

如果删除/boot目录下系统的初始化文件,如"initramfs-3.10.0-327.el7.x86_64.img",系统无法正常启动且提示少了该文件,如下图所示。

此时的解决办法为:

a、从光盘镜像启动。选择"Troubleshooting",选择"Rescue a Red Hat Enterprise Linux System",输入"1",按下回车键。

b、输入"chroot /mnt/sysimages",进入真实"/boot"。

c、输入"mkinitrd /boot/initramfs-$(uname -r) $(uname -r)"。其中"$(uname -r)"是内核版本号,输入后自动查找并且添加的。

d、完成后输入两次"exit",重新从硬盘启动即可。

5、忘记root用户密码

如果忘记root用户密码,可以在系统启动时修改。具体步骤如下所示:

a、系统启动选择界面按上下键使其停止,如下图所示。

b、按"e",进入配置界面。

c、找到其中的linux16后的内容,从最后面删除,直到删除到"ro"即可。如下图所示。完成后输入"rw rd.break"。按下"ctrl+x"继续,会出现一个shell。

d、输入"chroot /sysroot",再输入"passwd"修改密码。

e、输入"touch /.autorelabel"。

完成后输入两次"exit"完成系统继续启动,完成修改root用户密码。

6、删除/boot

如果删除/boot,毫无疑问,系统是启动不起来的。

此时需要按以下步骤恢复:

a、从光盘镜像启动。选择"Troubleshooting",选择"Rescue a Red Hat Enterprise Linux System",输入"1",按下回车键。

b、输入"chroot /mnt/sysimages",进入真实的"/boot"。

c、输入"grub2-install /dev/vda"。

d、输入"mount /dev/sr0 /opt",将光盘挂载在/opt下。

e、"rpm -ivh /opt/Packages/kernel-3.10.0-327.e17.x86_64.rpm --force",强行重新安装内核安装包。

f、"grub2-mkconfig > /boot/grub2/grub.cfg",恢复启动引导文件。

完成以上步骤后,输入两次"exit"并且设置从硬盘启动,系统就可以正常启动了。

linux初学者-系统启动故障篇的更多相关文章

  1. linux初学者-squid代理篇

     linux初学者-squid代理篇 Squid代理服务器是一种缓存服务器,一般分为正向代理和反向代理. 1.正向代理 客户端因为网络或者其他的问题,不能访问到一台Apache服务器,如果要访问到,则 ...

  2. linux初学者-数据库管理MariaDB篇

    linux初学者-数据库管理MariaDB篇 MariaDB是一种数据库管理系统,是MySQL的一个分支,但是比MySQL更加优秀,可以说是MySQL的替代品.MariaDB使用的是SQL语句.下文将 ...

  3. linux初学者-网络桥接篇

    linux初学者-网络桥接篇 在网络的使用中,有时需要搭建网络桥来实现网络桥接.例如在一台主机上制作一台虚拟机,虚拟机是没有物理网卡的,这时虚拟机数据的发送和接收就需要通过主机上的物理网卡,需要主机的 ...

  4. linux初学者-DDNS配置篇

    linux初学者-DDNS配置篇 如果DNS服务器要记录多台主机的IP,且这些主机的IP都是通过DHCPD服务自动获取的,那么将会造成很大的困难,因为在DNS设置时无法得知主机具体的IP.如果DHCP ...

  5. linux初学者-DNS配置篇

    linux初学者-DNS配置篇 DNS在之前的网络管理篇已经做过介绍,下文将叙述DNS在学习工作中的一些配置以及应用. 1.高速缓存DNS 一台主机通过DNS服务器询问域名解析IP是需要一定的时间的, ...

  6. linux初学者-磁盘加密篇

    linux初学者-磁盘加密篇 因为保密需要,一般系统中会在文件和磁盘中进行加密,但是文件的加密比较容易破解,不安全.所以在特殊需要下,会对磁盘进行加密,磁盘加密后在磁盘损坏的同时,其中的数据也会损坏, ...

  7. linux初学者-磁盘配额篇

    linux初学者-磁盘配额篇 在使用磁盘时,只要有权限,不管什么用户都可以在其中写入数据,但是如果是多人在一个磁盘中写入数据,就会出现争议,如果一个用户将磁盘空间用完,那么其他人无法再使用.如下图所示 ...

  8. linux初学者-swap分区篇

    linux初学者-swap分区篇 swap是虚拟内存,是在硬盘中分区一块区域,当内存占满但是又急迫需要时临时当作内存使用,使用效率低于内存.本文将对linux系统中swap分区的建立做一个简要介绍. ...

  9. linux初学者-虚拟机联网篇

    linux初学者-虚拟机联网篇 在虚拟机的使用过程中,本机可以连接WIFI直接上网,但是有时候需要用到虚拟机的联网,那么在本机联网的情况下,虚拟机怎么联网呢?接下来将介绍如何在本机已经连接到WIFI的 ...

随机推荐

  1. MacOS平台上编译 hadoop 3.1.2 源码

    1. 先从官方下载源码:源码下载地址:https://hadoop.apache.org/releases.html,下载 3.1.2 版本 2. 解压缩源码:tar xvf hadoop-3.1.2 ...

  2. IM推送保障及网络优化详解(一):如何实现不影响用户体验的后台保活

    对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...

  3. Python自学day-14

    一.默认创建的HTML5文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  4. 【需要重新整理】【mongoDB】mongoDB初见笔记

    A安装(windows版): 1.官网下载安装文件 2.解压 3.配置环境变量 4.win+r cmd>打开控制台配置仓库路径 5.mongod --dbpath=d:/bigMongo//启动 ...

  5. idea 创建maven项目(一)

    1.新建 Project 2.点击Next 3.填写组织名称和项目名称,点击next 4.在你的本地仓库目录下创建settings.xml文件,把mirror的url改成阿里云的 <?xml v ...

  6. 了解Kubernetes主体架构(二十八)

    前言 Kubernetes的教程一直在编写,目前已经初步完成了以下内容: 1)基础理论 2)使用Minikube部署本地Kubernetes集群 3)使用Kubeadm创建集群 接下来还会逐步完善本教 ...

  7. HTML end~

    一.浏览器的兼容问题(关于浏览器的兼容问题 有很多大佬已经解释的很清楚了 这个得自己百度去多花点时间去了解 这里咱们只说一下前面的漏点) 浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各 ...

  8. 【Spring源码解析】—— 策略模式在Spring中的应用

    一.         什么是策略模式 策略模式的定义/含义:策略本身就是为了实现某一个目标而采取的一种工作方式,因此只要能够达成目标,则采取哪一种策略都可以:因此多种实际的策略之间是相互平行的. 注意 ...

  9. 15 | 过不了的坎:聊聊GUI自动化过程中的测试数据

  10. 将GMap封装为Activex供QT使用(工具:VS2017,QT5.12) 更新部署到其它电脑

    由于一开始定的开发平台在QT下,到后面要加入地图控件.qt里本身带有地图qmap(在qt的官方案例中可以找到,用qml做的),但只有固定的几个地图源,要做google或者bing地图,时间和人力不允许 ...