如何恢复 ext4 文件系统

如何恢复 ext4 文件系统

我有一个名为 /dev/sdc1 的 HDD 设备,它承载着除根文件系统之外的文件系统。断电后我启动了,但无法挂载它。我想知道文件系统是否可能已损坏且无法修复。我认为在发生故障时它甚至没有被使用过。我可以尝试什么来让它再次挂载?

user@pc ~ $ sudo fdisk -l /dev/sdc 
... 
Device     Start        End    Sectors  Size Type 
/dev/sdc1   2048 5860532223 5860530176  2.7T Linux filesystem

/etc/fstab: 
/dev/sdc1   /mnt/data_c ext4    defaults    0 0 

user@pc ~ $ sudo mount /dev/sdc1 
mount: wrong fs type, bad option, bad superblock on /dev/sdc1, 
   missing codepage or helper program, or other error 

   In some cases useful info is found in syslog - try 
   dmesg | tail or so.

user@pc ~ $ dmesg|tail
...
[154150.717274]  sdc: sdc1 
[154564.927084] EXT4-fs (sdc1): VFS: Can't find ext4 filesystem

然后我尝试使用备用超级块位置进行安装。

mount -t ext4 -o sb=131072,ro /dev/sdc1 /mnt/data_c

我执行了上述操作,将 sb 选项设置为以下所有数字的 4 的倍数:32768、98304、163840、229376、294912、819200、884736、1605632、2654208、4096000(因为有人告诉我超级块备份存储在这些块上,并且必须将它们乘以 4,因为 mount 需要其 sb= 以 1k 块为单位)。我总是得到相同的错误(错误的 fs 类型、错误的选项、错误的超级块... 和 VFS:找不到 ext4 文件系统)。

然后我使用了 testdisk,它可以找到分区,并列出其中的文件(我认为是所有文件)。它还可以逐个复制一些文件,但问题是我需要大约 200-300 个文件,这很耗时,所以我想探索另一种可能修复文件系统的可能性。

Disk /dev/sdc - 3000 GB / 2794 GiB - CHS 364801 255 63 

     Partition                  Start        End    Size in sectors 

  MS Data                     2048 5860532223 5860530176 [data3] 
superblock 0, blocksize=4096 [data3] 
superblock 32768, blocksize=4096 [data3] 
superblock 98304, blocksize=4096 [data3] 
superblock 163840, blocksize=4096 [data3] 
superblock 229376, blocksize=4096 [data3] 
superblock 294912, blocksize=4096 [data3] 
superblock 819200, blocksize=4096 [data3] 
superblock 884736, blocksize=4096 [data3] 
superblock 1605632, blocksize=4096 [data3] 
superblock 2654208, blocksize=4096 [data3] 

To repair the filesystem using alternate superblock, run 
fsck.ext4 -p -b superblock -B blocksize device

我很好奇,这个硬盘使用不到一年,我相当确定在停机时没有写入任何内容(尽管可能正在读取)。所有超级块都可能失效吗?也许它们在其他地方?

答案1

首先,您可以通过软件包测试您的硬盘智能工具

在您的驱动器中激活“智能”:

 smartctl -s on /dev/sdc

开始一个长测试(你可以先尝试“短的“ 测试 ) :

 smartctl -t long /dev/sdc

等待测试结束并获取结果:

 smartctl -l selftest /dev/sdc

如果您的硬盘没有问题,您可以尝试下面的命令来检查文件系统:

 e2fsck -n /dev/sdc1

如果不起作用,测试磁盘是解决方案。

相关内容