如何恢复坏超级块?写锁损坏 Nvme

如何恢复坏超级块?写锁损坏 Nvme

今天早上,我的笔记本电脑启动时出现问题。我强制关闭电源,但磁盘不再被检测到。我启动了一个实时的 ubuntu 驱动器,试图修复磁盘。

此磁盘是三星 1TB Nvme 卡。它有 3 个分区

/dev/nvme0n1p1       2048    1050623    1048576  512M EFI System
/dev/nvme0n1p2    1050624 1945135103 1944084480  927G Linux filesystem
/dev/nvme0n1p3 1945135104 1953523711    8388608    4G Linux swap

我首先尝试使用 - 按照提示恢复备份块并删除脏标志来修复启动分区 nvme0n1p1 fsck -p /dev/nvme0n1p1。 执行此操作后,我能够挂载启动分区(尽管系统仍无法识别)

我现在已经竭尽全力尝试恢复主分区,/dev/nvme0n1p2但收到各种错误:

gparted 的错误

Error fsyncing/closing /dev/nvme0n1p2: No data available

文件系统检查

ubuntu@ubuntu:~$ sudo fsck /dev/nvme0n1p2 
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
Ubuntu: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
fsck.ext4: Input/output error while recovering journal of Ubuntu
fsck.ext4: unable to set superblock flags on Ubuntu


Ubuntu: ********** WARNING: Filesystem still has errors **********

尝试从超级块备份中恢复。尝试了所有方法

ubuntu@ubuntu:~$ sudo dumpe2fs /dev/nvme0n1p2 | grep -i superblock
dumpe2fs 1.46.5 (30-Dec-2021)
  Primary superblock at 0, Group descriptors at 1-116
  Backup superblock at 32768, Group descriptors at 32769-32884
  Backup superblock at 98304, Group descriptors at 98305-98420
  Backup superblock at 163840, Group descriptors at 163841-163956
  ...
  ...
dumpe2fs: Block bitmap checksum does not match bitmap while trying to read '/dev/nvme0n1p2' bitmaps

ubuntu@ubuntu:~$ sudo e2fsck -f -b 32768 /dev/nvme0n1p2
e2fsck 1.46.5 (30-Dec-2021)
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
Ubuntu: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
e2fsck: Input/output error while recovering journal of Ubuntu
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
e2fsck: unable to set superblock flags on Ubuntu


Ubuntu: ***** FILE SYSTEM WAS MODIFIED *****

Ubuntu: ********** WARNING: Filesystem still has errors **********

运行坏块给我 1500 多个坏块。我很快就停止了。但也许我应该尝试修复这些块?

ubuntu@ubuntu:~$ sudo badblocks -c 4096 /dev/nvme0n1p2 > /home/$USER/badblocks.txt
ubuntu@ubuntu:~$ wc -l /home/$USER/badblocks.txt
1325 /home/ubuntu/badblocks.txt

尝试直接挂载超级块

ubuntu@ubuntu:~$ sudo mount -o sb=32768 /dev/nvme0n1p2 /mnt/backupSuperblock
mount: /mnt/backupSuperblock: wrong fs type, bad option, bad superblock on /dev/nvme0n1p2, missing codepage or helper program, or other error.

尝试使用 gparted 检查扇区对齐。显示一切正常,但我不太确定,因为它存在 IO 问题。

root@ubuntu:~# parted /dev/nvme0n1p2
Warning: Error fsyncing/closing /dev/nvme0n1p2: Input/output error
Retry/Ignore? Ignore                                                      
GNU Parted 3.4
Using /dev/nvme0n1p2
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) align-check opt 1
1 aligned

我检查的卡上没有物理写入锁定开关。我也在同一个接口上尝试了不同的 nvme 存储卡,它工作正常。

我已经用尽了所有能想到的办法来寻找线索。我能够恢复其他 2 个分区,这让我觉得该卡并没有受到无法修复的物理损坏,并且能够进行 io。我真的希望至少可以恢复这个分区,以便能够安装它并恢复一些工作。

有人知道如何修复这个损坏的分区吗?

答案1

希望这对任何人有帮助。如果所有备份也损坏了,似乎没有办法恢复超级块。如果您知道偏移量,您仍然可以安装磁盘的使用部分来恢复数据。

另一个 Ubuntu 论坛将我引向测试磁盘。我能够使用此实用程序从磁盘恢复数据。

相关内容