FSCK 无法修复 LVM 磁盘映像或原始 SSD 上的 e2fs

FSCK 无法修复 LVM 磁盘映像或原始 SSD 上的 e2fs

我有一个处于 SMART Pre-fail 状态的 Sandisk 1TB SDD 作为运行 Ubuntu 22.04 的计算机上的启动磁盘。最近,该磁盘无法启动机器,并且在移除并安装到 USB 外壳中时不再可安装。文件系统是 LVM VG 之上的 ext4。该磁盘是卷组 ubuntu-vg 中唯一的 PV。

更换该驱动器并从头开始安装操作系统后,我能够提取该驱动器的完整 dd 映像。当我尝试修复根分区时,物理驱动器和映像都会出现相同的 fsck 错误。即使系统将其识别为 ext4 文件系统,我也无法挂载该分区。我尝试使用多个备份超级块运行 fsck,输出没有任何差异,除了额外的“文件系统已修改”行(如果我使用备份超级块)。尝试安装时出现“无法读取超级块”错误。如果我对图像进行十六进制编辑,我可以在磁盘上数据,所以看起来超级块或日志有问题,但我不确定此时该怎么做。

$ sudo mount /dev/mapper/ubuntu--vg-root /mnt/oldroot/
mount: /mnt/oldroot: can't read superblock on /dev/mapper/ubuntu--vg-root.


$ sudo fsck -v /dev/mapper/ubuntu--vg-root 
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
/dev/mapper/ubuntu--vg-root: 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 /dev/mapper/ubuntu--vg-root
fsck.ext4: unable to set superblock flags on /dev/mapper/ubuntu--vg-root


/dev/mapper/ubuntu--vg-root: ********** WARNING: Filesystem still has errors **********

答案1

我建议使用替代超级块安装只读文件系统,例如,

mke2fs -n /dev/mapper/ubuntu--vg-root # this is a no-op but gives the block # of the alt superblock
mount -oro,sb=###### /dev/mapper/ubuntu--vg-root /mnt/oldroot/

我建议安装 ro 因为设备出现故障。尽快备份数据。

您还可以以相同的方式安装映像,但使用环回安装。

相关内容