全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Linux系统恢复误删除分区最佳实践指南

最近更新时间:2025-11-10 16:07:41

一、摘要

本文档详细介绍了在 Linux 环境下,使用开源工具 TestDisk 恢复因误操作而删除的分区的标准操作流程。适用于公有云服务器中,在分区表(如 MBR 或 GPT)被破坏但分区数据未被覆盖的场景。遵循本指南可以最大化数据恢复的成功率,并最小化因操作不当导致的二次损坏风险。

1.目标读者

  • 云计算运维工程师

  • 系统管理员

  • 具备 Linux 命令行基础、需要执行数据恢复的技术人员

核心原则:立即停止写入操作,并尽可能创建磁盘快照进行操作。

2.前置条件与风险声明

(1)立即停止写入:确认误删除后,务必卸载该磁盘对应的所有文件系统,并停止任何可能向该磁盘写入数据的服务或操作。新的写入操作可能会覆盖原有分区数据,导致数据丢失。

(2)评估重要性:如果数据极其重要,强烈建议先对整个磁盘创建快照或者主机镜像,如磁盘已具备快照可通过快照直接回滚。这是最安全的标准操作流程。

(3)理解风险:数据恢复存在不确定性。尽管 TestDisk 非常强大,但并非总能 100% 成功。操作前请做好心理准备。

3.环境复现

步骤一:vdb硬盘现存vdb1分区,写入10个文件

步骤二:此时已删除vdb1分区

二、恢复步骤

阶段一:环境准备与评估

1.确认磁盘状态

首先,使用 lsblk、fdisk -l parted -l命令确认当前磁盘和分区的状态,识别出被误删分区的磁盘(例如 /dev/vdb)。

# 查看块设备列表,确认丢失分区的磁盘
lsblk

# 查看详细分区信息,通常会显示“fdisk: 打不开 /dev/vdb1: 没有那个文件或目录”等警告
sudo fdisk -l /dev/vdb1
2.关键步骤:卸载并创建磁盘镜像(强烈推荐)

参考此文档对硬盘创建极速可用快照https://docs.ksyun.com/documents/5351?type=3

3.安装 TestDisk

根据您的 Linux 发行版安装 TestDisk。

  • Ubuntu/Debian:

sudo apt-get update
sudo apt-get install testdisk
  • CentOS/RHEL/Rocky Linux/AlmaLinux:

# 需要先启用 EPEL 仓库
sudo yum install -y epel-release
# 或对于 DNF 的新版本
sudo dnf install -y epel-release
sudo yum install -y testdisk
# 或
sudo dnf install -y testdisk

阶段二:使用 TestDisk 执行恢复

以下操作假设您直接在原盘(/dev/vdb)上操作。如果使用了磁盘镜像,请将 /dev/vdb替换为您的镜像文件路径。

1.启动 TestDisk

以 root 权限启动 TestDisk 并指定磁盘:

sudo testdisk /dev/vdb

如下图显示TestDisk 已经成功启动,选择下方Proceed(继续):确认对当前选中的磁盘(/dev/vdb)进行操作

底部的文字强调,磁盘容量必须被正确检测是成功恢复数据的关键。这说明当前检测到的 1073MB 容量是准确的。

出现以下提示代表终端窗口过小,放大窗口即可,如无出现跳过此步。

2.选择分区表类型

TestDisk 启动后,会显示一个界面让你选择分区表类型。通常它会自动检测,按Enter进行下一步。

Intel:用于传统的 MBR 分区表。

EFI GPT:用于较新的 GPT 分区表。

根据您的磁盘类型选择,我这里环境为MBR分区表。如果不确定,可以尝试默认的 [Intel]并按 Enter。

3.选择分析模式

在下一个菜单中,选择 [Analyse]来检查当前的分区结构和搜索丢失的分区。

参数提示:

  • [ Analyse ] 分析当前的分区结构并搜索丢失的分区。(分析 - 最常用、最安全的第一步)

  • [ Advanced ] 提供针对文件系统的实用工具。

  • [ Geometry ] 更改磁盘的几何参数(柱面、磁头、扇区数)。

  • [ Options ] 修改一些程序运行时的选项,比如显示哪些文件类型。

  • [ MBR Code ] 将 TestDisk 的 MBR 代码写入磁盘的第一个扇区。

  • [ Delete ] 删除分区表中的所有数据。

4.执行快速搜索

可能会出现下图TestDisk 在初始阶段没有在磁盘 /dev/vdb上检测到任何有效的分区表或检查出分区的信息。两种情况都继续执行[Quick Search] TestDisk 会快速扫描磁盘的空闲区域,寻找丢失的分区的引导扇区(如 NTFS 的 $Boot 或 EXT4 的 Superblock)。

可能会弹出一个确认信息, Continue 回车确认。

5.分析搜索结果

使用 Up/Down方向键高亮选择第一个找到的分区,按Enter进行下一步。

快速搜索完成后,TestDisk 会列出所有找到的分区,包括当前存在的和已删除的开始块和结束块等信息

  • 按 Enter可以进一步查看该分区的详细信息(如文件系统类型、大小等),以帮助确认这是否是你要恢复的分区。

  • 按 P键可以列出该分区内的文件(对某些文件系统如 EXT3/4, FAT, NTFS 有效)。这是验证分区内容是否正确的最可靠方法。

    6.处理深度搜索(可跳过此步)

    如果快速搜索没有找到所有丢失的分区,或者结果不理想,可以:

    在主菜单选择 [Deeper Search],它会进行更全面但也更慢的扫描。

7.恢复分区表

当确认所有需要恢复的分区都已正确列出,并且通过 P键查看文件内容无误后,选择 [Write]并按 Enter。

TestDisk 会要求你确认,输入 Y并回车,将新的分区表信息写入磁盘。

8.退出并验证

(1)写入成功后,按 Q多次退出 TestDisk。

(2)重要:为了让内核重新读取分区表,你需要重启云服务器,或者使用 partprobe命令(如果支持且安全的话)。

sudo partprobe /dev/vdb

(3)再次使用 lsblk fdisk -l命令检查分区是否已经恢复。

lsblk /dev/vdb
fdisk -l

阶段三:恢复后处理

检查文件系统:恢复分区后,分区本身的文件系统可能因为不正常的卸载而损坏。在挂载前,建议使用 fsck进行检查和修复。

sudo fsck -y /dev/vdb1
sudo mount /dev/vdb1 /home/test # 挂载磁盘
ls -la /home/test/  #检查文件是否恢复

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈