恢复超级块损坏的 ext4 分区? (调整大小后失败,备份幻数不起作用)

恢复超级块损坏的 ext4 分区? (调整大小后失败,备份幻数不起作用)

背景

有一个 Linux 根 ext4 分区,我需要更多空间;从我的 Windows 安装中清除它,然后修改实时 USB 上 KDE 分区管理器上的剩余内容。

我在分区管理/修复方面完全没有经验,所以我可能做了一些我不应该做的事情。

类似问题:恢复 ext4 超级块

之前的分区结构(我记得的)
|device|type              |
|------|------------------|
|sda1  | ESP Windows      |
|sda2  | MS Reserved      |
|sda3  | Win partition    | 
|sda4  | -(unallocated)-  |
|sda5  | ESP Linux        | *
|sda6  | Swap             | *
|sda7  | Solus Linux      | 
|sda8  | Win recovery env |

灾难发生前的步骤

  • 我删除了中间的分区(用 * 表示)以启用移动,并开始扩展 Linux。
  • 我搬家了部分用于扩展分区的未分配空间
  • 确信扩展分区后不留任何空间
  • 花了一段时间,调整大小成功,但因操作错误而结束e2fsckbad magic number[...] superblock invalid

我做了什么

错误发生后,我搜索并发现fdisk分区以某种方式未对齐,报告“磁盘顺序错误”(sda7出现在之前sda4,诸如此类的事情);表明某些部分在不应该的地方开始和结束。

  • 研究过坏幻数超级块错误
  • 建议用备份替换幻数。
  • 尝试了所有方法e2fsck -b {number} /dev/sda7,但没有一个起作用。

然后我转移注意力尝试重新调整分区,发现它fdisk本身就做到了这一点,而且它成功了,将 Linux 分区放置在正确的位置。

  • 所以现在扇区是正确的。我前后检查了其他人,以确保重新调整不会影响其他任何事情。

但是我仍然卡在无法访问(无法安装)的已调整大小的分区(linux root、ext4)上,显示为未知的文件系统类型。

(当前输出位于底部)

我猜这一切都发生了,因为调整大小使有关分区(超级块)的信息发生了变化,并且没有正确更新。



我可以做什么来恢复?

  1. 我可以以某种方式重建超级块信息吗?
  2. 在擦除之前以任何方式备份分区的内容以正确地重新创建它?我路过看到ddrescue过,这似乎就是我要找的
  3. 关于什么testdisk?它看起来很有前途,但对我来说太复杂了,无法理解自动取款机。这里有一些帮助会很好。

非常感谢任何回复。



输出

重组后的分区结构

# fdisk -l /dev/sda

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Disk model: ADATA SU650     
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: 2268FBBE-207C-44A8-A784-28F30D837464

Device         Start       End   Sectors  Size Type
/dev/sda1       2048    206847    204800  100M EFI System
/dev/sda2     206848    239615     32768   16M Microsoft reserved
/dev/sda3     239616 189430999 189191384 90.2G Microsoft basic data
/dev/sda4  189431808 192237567   2805760  1.3G  ## temporary fs to avoid mixing up
/dev/sda5  192237568 233375743  41138176 19.6G Linux filesystem
/dev/sda6  233375744 234438655   1062912  519M Windows recovery environment

是的,我的存储空间非常有限,不,我目前没有其他选择。

尝试挂载分区

# mount /dev/sda5 /target     
mount: /target: wrong fs type, bad option, bad superblock on /dev/sda5, missing codepage or helper program, or other error.

坏幻数错误:

# e2fsck -v /dev/sda5

e2fsck 1.45.6 (20-Mar-2020)
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/sda5

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

相关内容