在处理磁盘相关问题时,您可能会遇到数据盘分区或数据丢失的情况。本文将介绍Linux系统下常见的数据盘分区丢失问题及相应工具的使用方法。
前提条件
在修复数据前,您必须先对分区丢失的数据盘创建快照,在快照创建完成后再尝试修复。如果在修复过程中出现问题,您可以通过快照回滚将数据盘还原到修复之前的状态。具体操作,请参见创建快照和使用快照回滚云盘。
背景信息
有关本文介绍的几款工具的功能及相关信息,请参阅以下内容。
工具名称 | 是否默认安装 | 工具介绍 |
fdisk | 是 | Linux系统分区管理工具。 |
testdisk | 否 | 恢复Linux系统的磁盘分区或者数据的工具。 |
partprobe | 是 | 主要用于在不重启系统时让kernel重新读取磁盘分区信息。 |
恢复磁盘分区或数据
在使用Linux实例时,如果因人为误操作、程序异常或计算机病毒影响而导致磁盘分区表受损或数据异常丢失,您可以尝试以下三种方法进行处理。
(条件可选)确认磁盘信息
运行以下命令,以确认当前磁盘信息。
sudo fdisk -lu
回显结果示例如下。
Disk /dev/vda: 145 GiB, 155692564480 bytes, 304087040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: F51132A7-xxxx-xxxx-xxxx-FD0DE6E1210C
示例中,包含一块磁盘设备/dev/vda
,因分区表损坏,不显示Device
信息。
通过fdisk恢复分区
对数据盘分区时,分区磁盘的起止扇区一般使用默认的值,所以可以先尝试直接使用fdisk命令新建分区进行恢复。
如果在使用fdisk
恢复分区后仍无法挂载,或者挂载成功但无法查看相应文件,您可以选择通过testdisk恢复分区或者通过testdisk恢复数据。
通过testdisk恢复分区
这里假设云盘的设备名为/dev/xvdb。按以下步骤安装并使用testdisk
工具恢复分区:
运行以下命令,以安装
testdisk
。Alibaba Cloud Linux 3/2,CentOS 6/7/8
sudo yum install -y testdisk
Ubuntu/Debian
sudo apt install -y testdisk
运行testdisk /dev/xvdb(根据实际情况替换设备名),再选择Proceed(默认值)后按回车键。
选择分区表类型进行扫描:一般选择Intel。如果您的数据盘采用GPT分区,选择EFI GPT。
选择Analyse后按回车键。
如果您没有看到任何分区信息,选择Quick Search后按回车键快速搜索。
在返回结果中会显示分区信息,如下图所示。
选中分区后,按回车键。
选择Write保存分区。
说明如果不是您需要的分区,可以选择Deeper Search继续搜索。
按Y键确认保存分区。
运行partprobe /dev/xvdb(根据实际情况替换设备名)手动刷新分区表。
重新挂载分区,查看数据盘里的数据情况。
通过testdisk恢复数据
在某些情况下,您可以用testdisk扫描出磁盘分区,但是无法保存分区,此时,您可以尝试直接恢复文件。具体操作步骤如下所示:
用testdisk扫描出磁盘分区。具体操作,请参见通过testdisk恢复分区的第1步到第5步。
按P键列出文件。
返回结果如下图。
选中要恢复的文件,再按C键。
选择目标目录。本示例中以恢复到/home为例。
如果您看到
Copy done! 1 ok, 0 failed
,表示复制成功,如下图所示。切换到/home目录查看。
如果您能看到文件,说明文件恢复成功。
常见误区与最佳实践
数据是用户的核心资产,很多用户在ECS实例上构建网站、自建数据库(MySQL/MongoDB/Redis)。数据丢失会给用户的业务带来巨大的风险。本节介绍了数据安全方面的常见误区和最佳实践。
常见误区
阿里云的底层存储基于三副本机制,因此一些用户误认为操作系统内的数据没有任何丢失风险。实际上,这是一种误解。底层存储的三副本确实为数据磁盘提供了物理层的保护,但如果系统内部使用云盘时出现逻辑性问题,例如病毒感染、误删数据或文件系统损坏等情况,数据丢失的风险依然存在。在这种情况下,您需借助快照、异地备份等相关技术,尽可能保障数据的安全性。关于三副本的介绍,请参见云盘三副本技术。
最佳实践
数据盘分区恢复及数据恢复是应对数据丢失问题的最后一道防线,但并不一定能够确保数据的恢复。强烈建议您参考以下最佳实践,通过创建数据快照(无论是自动还是手动)以及实施各类备份方案,以最大程度地保障数据的安全性。
启用自动快照
根据实际业务,对系统盘、数据盘创建自动快照。
创建手动快照
在进行以下重要或高风险操作之前,请务必手动为磁盘创建快照。
系统升级内核
应用升级变更
磁盘数据恢复
在进行磁盘恢复之前,务必首先对磁盘创建快照,待快照完成后再进行相应的操作。
OSS、线下、异地备份
您可以根据实际情况选择使用OSS、线下或异地等方式备份重要数据。
相关文档
有关LInux实例数据恢复的整体思路及最佳实践,请参见Linux实例数据恢复最佳实践。