注:如果服务器特别重要,此方案慎用。如果没有其他方案解决,可以使用该方案

事件:搭建在云计算管理平台CAS上的 Centos7.4 虚拟机在一次断电后,启动虚拟机出现file '/grub/i386-pc/normal.mod' not found , 使用网上各路大神的办法都没有解决后, 将整个存储卷添加到相同系统的虚拟机上并挂载/boot所在分区,最后将本机/boot下的文件拷贝至所挂载目录,再将存储卷重新挂回原来虚拟机,启动虚拟机成功

如图:

定位问题:

开机报错如下

 通过ls查看目录,并一个一个试过以后,发现我的/boot分区是在(hd0,msdos1)下,可以尝试使用 ls (hd0,msdos1)/ 查看有无目录,也可以通过ls (hd0,msdos1) 查看是否会显示文件系统

如图:

 

下面的msdos1是我们要找的分区,但是在此分区下只有一个文件,说明/boot下其他文件全部丢失

 

 

 

解决问题:

找到问题的根因后,尝试解决它,首先我们将该虚拟机的存储卷删除,然后添加到其他相同系统的虚拟机后,查看并挂载,因为我们知道自己分区的时候都划分了哪些分区,所以问题变的比较比较容易了,我是将/boot目录划分为/vda1分区了,但是挂载以后是以vdb挂载的,所以/boot应该是/dev/vdb1,将该设备挂载至创建好的目录后,拷贝本机/boot下的文件,卸载设备,将存储卷重新添加至原虚拟机启动,启动成功。

如图:

1、先将存储卷删除,然后添加至相同系统,相同分区的其他系统(不是CAS平台的原理也是类似的)

 

 2、进入linux系统,确认分区后,开始挂载并拷贝文件

 

 因为是克隆的环境,所以在挂载vdb1时,有报错显示uuid已经存在,所以我们用参数过滤掉UUID的校验或者重新生成UUID,二选一即可

 或者 

 挂载成功后,拷贝文件

3、卸载设备,将存储卷添加至原虚拟机并启动,启动成功

Centos7.4 file '/grub/i386-pc/normal.mod' not found,实际为/boot下所有文件丢失的更多相关文章

  1. 安装系统重启的时候出现了error:file '/boot/grub/i386-pc/normal.mod' not found

    1.直接进入系统的时候只出现grub rescue的命令行 可以使用的命令有set和 ls 在用ls命令查看 磁盘的分区情况其中hd0 代表第一块硬盘 hd1代表第二块 使用ls 来查看存在那些系统, ...

  2. Ubuntu引导出问题grub rescu模式下:“error : unknown filesystem”或者 找不到normal.mod 的解决办法

    感谢http://www.linuxidc.com/Linux/2012-06/61983.htm,因为参考了其中的内容. 下面是修改和完善. 问题原因: (win7,ubuntu双系统下) 强制关机 ...

  3. (转)Centos7.2 给grub菜单做加密

    Centos7.2 给grub菜单做加密 原文:http://www.cnblogs.com/hanhy/articles/7274340.html#top 1.简述linux开机启动流程: 1) 启 ...

  4. 安卓上为什么不能用system.io.file读取streammingAssets目录下的文件

    首先,看文档: Streaming Assets   Most assets in Unity are combined into the project when it is built. Howe ...

  5. 使用File类递归列出E盘下全部文件

    import java.io.File;public class FileListTest { public void tree(File file){ if(file.listFiles()!=nu ...

  6. java中File类应用:遍历文件夹下所有文件

    练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public ...

  7. FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹),就是删除所有

    2018-11-05  19:42:08开始写 选择 删除 1.FileUtils.java类 import java.io.File;//导入包 import java.util.List;//导入 ...

  8. 下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( )。

    下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt.File构造函数中正确的路径和文件名的表示是(    ). ./表示当前项目的路径../表示当 ...

  9. java-IO流(File对象-深度遍历指定目录下的文件夹和文件)

    需求:遍历这个树状结构 File(String pathname) '\\'为了转义'\' // 通过抽象路径pathname 创建一个新的文件或者目录 File parent = new File( ...

随机推荐

  1. Leedcode算法专题训练(双指针)

    算法思想 双指针 167. 两数之和 II - 输入有序数组 双指针的典型用法 如果两个指针指向元素的和 sum == target,那么得到要求的结果: 如果 sum > target,移动较 ...

  2. Vue3+Vite引入Echarts5.0图表库

    1 概述 环境Vue3+Vite,需要引入ECharts库. 2 尝试 目前ECharts已更新到5.0版本,在Vue中引入并不难,npm/cnpm安装后在需要的组件中引入: import echar ...

  3. Spring/SpringBoot整合QuartZ

    https://www.bilibili.com/video/av55637917/?p=2

  4. (七)docker-compose 安装

    一.Docker-Compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排. Docker-Compose将所管理的容器分为三层,分别 ...

  5. Java代理简述

    1.什么是代理? 对类或对象(目标对象)进行增强功能,最终形成一个新的代理对象,(Spring Framework中)当应用调用该对象(目标对象)的方法时,实际调用的是代理对象增强后的方法,比如对功能 ...

  6. 阿里云 RTC QoS 弱网对抗之 LTR 及其硬件解码支持

    LTR 弱网对抗由于需要解码器的反馈,因此用硬件解码器实现时需要做一些特殊处理.另外,一些硬件解码器对 LTR 的实现不是特别完善,会导致出现解码错误.本文为 QoS 弱网优化系列的第三篇,将为您详解 ...

  7. 用Taro写一个微信小程序(一)——开始一个项目

    一.Taro简介 1.名字由来 Taro['tɑ:roʊ],泰罗·奥特曼,宇宙警备队总教官,实力最强的奥特曼. 2.taro是什么 Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vu ...

  8. FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb

    apiAutoTestWeb使用说明 apiAutoTestWeb是为apiAutoTest的可视化版本,其采用前后端分离(FastAPI + Vue2)方式实现 具体使用: Python3 + Fa ...

  9. Pytorch系列:(四)IO操作

    首先注意pytorch中模型保存有两种格式,pth和pkl,其中,pth是pytorch默认格式,pkl还支持pickle库,不过一般如果没有特殊需求的时候,推荐使用默认pth格式保存 pytorch ...

  10. UVA11729突击战(汇报和执行任务)

    题意:       你是一个长官,有一些士兵要跟你先汇报任务后在去执行任务,每次只能接受一个人的汇报,但是每一时刻可以有多个士兵在执行任务,问所有任务执行完要的最小时间. 思路:        按执行 ...