4TB ext4 文件系统的第一个 32GB 被覆盖。如何恢复?

4TB ext4 文件系统的第一个 32GB 被覆盖。如何恢复?

由于指定块设备的事故,SATA 磁盘上 4TB ext4 文件系统的前 32GB 被 dd 命令用 USB 闪存驱动器的内容覆盖。

fdisk -l /dev/sda 报告以下内容:

Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xeaad24fe

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1          2048  8388607  8386560    4G  6 FAT16
/dev/sda2       8388608 73924607 65536000 31.3G 83 Linux

分开显示以下内容:

GNU Parted 3.5
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: ATA ST4000NM0165 (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4295MB  4294MB  primary  ext4
 2      4295MB  37.8GB  33.6GB  primary

旁注:我不确定为什么parted认为文件系统是ext4,而fdisk将其显示为FAT16,但它可能与我在了解发生了什么之前尝试运行的fsck有关。我尝试运行“e2fsck /dev/sda1”,并对以下问题回答“是”:

Superblock has an invalid journal (inode 8).
Clear<y>? yes

然后它返回了分区大小与物理大小不匹配的声明,就在那时我停止了,没有继续进行。 (很抱歉,我没有失败的 fsck 尝试的全文。我凭记忆重新输入了上面的内容,并且只回答了一次“是”。)

这是磁盘上以前的内容:

该磁盘最初是由 Ubuntu 18.04 安装程序自动分区+格式化的。它是一个 ext4 文件系统,只有一个分区 sda1,占用了整个驱动器。有一个单独的 NVME 驱动器是系统分区,并且该磁盘被配置为辅助数据磁盘。在本例中,这些参数将是 Ubuntu 18.04 安装程序选择的默认值。

据我所知,该磁盘前 32GB 中的所有数据都将无法挽回地丢失。但该磁盘上的数据至关重要。有什么办法可以恢复驱动器剩余 99% 上的内容吗?

有人可以推荐允许我重新创建原始文件系统的步骤吗?

编辑: gdisk -l /dev/sda 显示以下内容:

GPT fdisk (gdisk) version 1.0.5

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Warning: Invalid CRC on main header data; loaded backup partition table.
Warning! Main and backup partition tables differ! Use the 'c' and 'e' options
on the recovery & transformation menu to examine the two tables.

Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!
Main header: ERROR
Backup header: OK
Main partition table: ERROR
Backup partition table: OK

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: damaged

Found valid MBR and corrupt GPT. Which do you want to use? (Using the
GPT MAY permit recovery of GPT data.)
 1 - MBR
 2 - GPT
 3 - Create blank GPT

答案1

您应该将分区的完整“dd”副本复制到另一个设备,以便在出现问题时妥善保管。

一般来说,e2fsck应该能够从此类问题中恢复,但会丢失被覆盖的元数据。超级块、根目录、日志和其他元数据将丢失。但是,超级块和其他关键元数据稍后在分区中具有多个备份,因此大部分数据应该完好无损。

可能需要指定备份超级块位置,例如e2fsck -fy -B 4096 -b 11239424 /dev/sda2.备份存储在编号为 3^n、5^n、7^n 的组中,组大小为 128MiB,因此,如果您破坏了最多 32 GiB,即 256 个组,下一个最高组编号为7x7x7 = 343,则备份超级块位于堵塞343x32768 = 11239424

它将把所有内容放入lost+found目录中,因此您必须根据文件/目录的内容、年龄等来识别文件/目录。

相关内容