背景
有一个 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。
- 我搬家了部分用于扩展分区的未分配空间
- 我确信扩展分区后不留任何空间
- 花了一段时间,调整大小成功,但因操作错误而结束
e2fsck
:bad magic number
[...]superblock invalid
。
我做了什么
错误发生后,我搜索并发现fdisk
分区以某种方式未对齐,报告“磁盘顺序错误”(sda7
出现在之前sda4
,诸如此类的事情);表明某些部分在不应该的地方开始和结束。
- 研究过坏幻数和超级块错误
- 建议用备份替换幻数。
- 尝试了所有方法
e2fsck -b {number} /dev/sda7
,但没有一个起作用。
然后我转移注意力尝试重新调整分区,发现它fdisk
本身就做到了这一点,而且它成功了,将 Linux 分区放置在正确的位置。
- 所以现在扇区是正确的。我前后检查了其他人,以确保重新调整不会影响其他任何事情。
但是我仍然卡在无法访问(无法安装)的已调整大小的分区(linux root、ext4)上,显示为未知的文件系统类型。
(当前输出位于底部)
我猜这一切都发生了,因为调整大小使有关分区(超级块)的信息发生了变化,并且没有正确更新。
我可以做什么来恢复?
- 我可以以某种方式重建超级块信息吗?
- 在擦除之前以任何方式备份分区的内容以正确地重新创建它?我路过看到
ddrescue
过,这似乎就是我要找的 - 关于什么
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>