在修复数据前,您必须先对分区丢失的数据盘创建快照,在快照创建完成后再尝试修复。如果在修复过程中出现问题,您可以通过快照回滚将数据盘还原到修复之前的状态。

前提条件

在修复数据前,您必须先对分区丢失的数据盘创建快照,在快照创建完成后再尝试修复。如果在修复过程中出现问题,您可以通过快照回滚将数据盘还原到修复之前的状态。

工具说明

在Linux实例里,您可以选择以下任一种工具修复磁盘分区并恢复数据:

  • fdisk:Linux系统默认安装的分区工具。
  • testdisk:主要用恢复Linux系统的磁盘分区或者数据。Linux系统默认不安装,您需要自行安装这个软件,比如,在CentOS系统里,您可以运行 yum install -y testdisk 在线安装。
  • partprobe:Linux系统默认安装的工具。主要用于不重启系统时让kernel重新读取分区。

Linux系统下数据盘分区丢失和数据恢复处理办法

在Linux实例里,您重启系统后,可能会出现数据盘分区丢失或者数据丢失的问题。这可能是因为您未在 etc/fstab 文件里设置自动挂载。此时,您可以先手动挂载数据盘分区。如果手动挂载时报分区表丢失,您可以通过如下三种办法尝试进行处理:通过fdisk恢复分区通过testdisk恢复分区 或者 通过testdisk直接恢复数据

    • 通过fdisk恢复分区

      对数据盘分区时,分区磁盘的起止扇区一般使用默认的值,所以可以先尝试直接使用 fdisk 新建分区进行恢复。具体操作,请参考 Linux 格式化和挂载数据盘

      如果上述操作无效,您可以使用 testdisk 工具尝试修复。

    • 通过 testdisk 恢复分区

      这里假设云盘的设备名为 /dev/xvdb。按以下步骤使用 testdisk 恢复分区:

      1. 运行 testdisk /dev/xvdb(根据实际情况替换设备名),再选择 Proceed(默认值)后按回车键。

      2. 选择分区表类型进行扫描:一般选择 Intel(默认)。如果您的数据盘采用GPT分区,选择 EFI GPT
      3. 选择 Analyse 后按回车键。
      4. 如果您没有看到没有任何分区信息,选择 Quick Search 后按回车键快速搜索。

        在返回结果中会显示分区信息,如下图所示。

      5. 选中分区后,按回车键。
      6. 选择 Write 保存分区。
         
        说明 如果不是您需要的分区,可以选择 Deeper Search 继续搜索。
      7. 按 Y 键确认保存分区。
      8. 运行 partprobe /dev/xvdb(根据实际情况替换设备名)手动刷新分区表。
      9. 重新挂载分区,查看数据盘里的数据情况。
    • 通过testdisk直接恢复数据

      在某些情况下,您可以用testdisk扫描出磁盘分区,但是无法保存分区,此时,您可以尝试直接恢复文件。具体操作步骤如下所示:

      1. 按 通过testdisk恢复分区 的第1步到第4步描述找到分区。
      2. 按 P 键列出文件。 返回结果如下图。
      3. 选中要恢复的文件,再按 C 键。
      4. 选择目标目录。本示例中以恢复到 /home 为例。

        如果您看到 Copy done! 1 ok, 0 failed 说明复制成功。如下图所示。

      5. 切换到 /home 目录查看。如果您能看到文件,说明文件恢复成功。

最新文章

  1. ES6 箭头函数中的 this?你可能想多了(翻译)
  2. UIBezierPath-完善曲线
  3. [Android Pro] 精确记录和恢复ListView滑动位置
  4. python 输入和输出
  5. 2. MySQL
  6. ligerui grid行编辑示例
  7. GForms 快速入门指南
  8. Oracle设置表只读-alter table xxx read only
  9. YII中路径别名
  10. iOS AppIcon + launchImage+iPhone 屏幕分辨率相关知识
  11. jQuery自学笔记(三):jQuery动画效果
  12. leetcode[164] Maximum Gap
  13. jquery checkbox全选 获取值
  14. CSS 画三角形、圆
  15. JS里try...catch...finally详解,以及console日志调试(console.log、console.info等)
  16. Nginx的知识分享,感兴趣的可以看一下
  17. 【HNOI2002】营业额统计
  18. 【Java入门提高篇】Day30 Java容器类详解(十二)TreeMap详解
  19. hdu5371 manacher + 线段树
  20. equals与hashcode区别

热门文章

  1. Java小白集合源码的学习系列:LinkedList
  2. 前端笔记5-js1
  3. idea 忽略不需要提交的文件
  4. Unity事件系统EventSystem简析
  5. Git基础知识 —— 获取Git仓库
  6. BeautifulSoup的简单用法
  7. Android studio 连接真机
  8. ElEmentUI选择器弹出框定位错乱问题解决(弹出框出现在左上角)
  9. 「 从0到1学习微服务SpringCloud 」07 RabbitMq的基本使用
  10. 创建dynamics CRM client-side (六) - form & field notification