Linux实例中数据恢复

在处理磁盘相关问题时,您可能会碰到操作系统中数据盘分区丢失的情况。本文介绍了Linux系统下常见的数据盘分区丢失的问题以及对应的处理方法,同时提供了使用云盘的常见误区以及最佳实践,避免可能的数据丢失风险。

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

前提条件

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

工具说明

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

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

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

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

  • 通过fdisk恢复分区

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


    Linux实例中数据恢复插图1

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

  • 通过 testdisk 恢复分区

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

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

      Linux实例中数据恢复插图3

    2. 选择分区表类型进行扫描:一般选择 Intel(默认)。如果您的数据盘采用GPT分区,选择 EFI GPT

      Linux实例中数据恢复插图5

    3. 选择 Analyse 后按回车键。

      Linux实例中数据恢复插图7

    4. 如果您没有看到没有任何分区信息,选择 Quick Search 后按回车键快速搜索。

      Linux实例中数据恢复插图9

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

      Linux实例中数据恢复插图11

    5. 选中分区后,按回车键。
    6. 选择 Write 保存分区。
      说明 如果不是您需要的分区,可以选择
      Deeper Search 继续搜索。


      Linux实例中数据恢复插图13

    7. Y 键确认保存分区。

      Linux实例中数据恢复插图15

    8. 运行 partprobe /dev/xvdb(根据实际情况替换设备名)手动刷新分区表。
    9. 重新挂载分区,查看数据盘里的数据情况。

      Linux实例中数据恢复插图17

  • 通过testdisk直接恢复数据

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

    1. 按 通过testdisk恢复分区 的第1步到第4步描述找到分区。
    2. P 键列出文件。 返回结果如下图。

      Linux实例中数据恢复插图19

    3. 选中要恢复的文件,再按 C 键。
    4. 选择目标目录。本示例中以恢复到 /home 为例。

      Linux实例中数据恢复插图21

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

      Linux实例中数据恢复插图23

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

      Linux实例中数据恢复插图25

常见误区与最佳实践

数据是用户的核心资产,很多用户在ECS上构建网站、自建数据库(MYSQL/MongoDB/Redis)。数据丢失会给用户的业务带来巨大的风险。如下是在数据安全方面的常见误区和最佳实践。

  • 常见误区

    阿里云的底层存储基于 三副本,因此有些用户认为操作系统内数据没有任何丢失风险。实际上这是误解。底层存储的三副本提供对数据磁盘的物理层保护,但是,如果系统内部使用云盘逻辑上出现问题,比如中毒、误删数据、文件系统损坏等情况,还是可能出现数据丢失。此时,您需要通过快照、异地备份等相关技术最大保证数据的安全性。

  • 最佳实践

    数据盘分区恢复以及数据恢复是处理数据丢失问题最后的一道防线,但未必一定能够恢复数据。强烈建议您参考如下最佳实践,通过对数据创建快照(自动或手动)以及各类备份方案,最大程度地保证数据的安全性。

    • 启用自动快照

      根据实际业务,对系统盘、数据盘创建自动快照。注意,在更换系统盘、实例到期后或手动释放磁盘时,自动快照可能会被释放。

      您可以在ECS控制台上通过 修改磁盘属性 选择 自动快照随磁盘释放。如果想保留自动快照,您可以手动去掉该选项。

      详情请参考:ECS云服务器自动快照FAQ。

    • 创建手动快照

      在做下列重要或有风险的操作前,请手动为磁盘创建快照。例如:

      • 系统升级内核
      • 应用升级变更
      • 磁盘数据恢复

      在恢复磁盘时,一定要先对磁盘创建快照,快照完成后做相应的操作。

    • OSS、线下、异地备份

      您可酌情使用OSS、线下、异地等方式备份重要数据。

发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/2145.html

发表评论

邮箱地址不会被公开。 必填项已用*标注