fsck 在 30TB ext4 分区上运行了 30 多天,无法挂载

G G*_*mid 6 linux filesystems fsck

在 hw raid5 上给定一个 30TB 的磁盘分区。LVM 在最上面,文件系统是 ext4。(它有 99.9% 的数据。)我想再添加 20TB 并调整分区和文件系统的大小。在调整大小之前,它坚持先运行 FSCK。已经运行了一个多星期,我取消了,但是无法挂载分区。首先需要 FSCK。所以我又开始了。

fsck.ext4 -v -C 0 /dev/vgname/lvname
e2fsck 1.44.3 (10-July-2018)
Superblock has an invalid journal (inode 8).
Clear<y>? yes
*** journal has been deleted ***

Resize inode not valid.  Recreate<y>? yes
Run Code Online (Sandbox Code Playgroud)

并且因为 31 天过去了,它仍在运行,100% 占用 1 个 CPU 内核。

当用strace看它时,我看到的是:

strace -p 3174
strace: Process 3174 attached
strace: [ Process PID=3174 runs in x32 mode. ]
strace: [ Process PID=3174 runs in 64 bit mode. ]
pread64(4, "\375\210\372\374\360\10\375=$\375\254\221\375\334\361\375l?\376?U\376\24?\376\27\351\375:\305\375\217"..., 4096, 2447145635840) = 4096
mremap(0x7fa5e3565000, 208764928, 208769024, MREMAP_MAYMOVE) = 0x7fa5e3565000
pread64(4, "\0\305\7\0\321\376\377q\367\377Q\364\377\371\361\377H\355\377\323\346\377\271\337\377\275\332\377J\326\377\16"..., 4096, 1724118507520) = 4096
pread64(4, "x\377\371p\377_b\377\177W\377\35[\377\223N\377\226[\377&h\377QS\377\203O\377sT\377"..., 4096, 3443764559872) = 4096
pread64(4, "\377\263\371\377\375\355\377\363\6\0\367\356\377\326\21\0\350\353\377?\30\0\242\345\377\375\26\0|\344\377D"..., 4096, 6956990242816) = 4096
pread64(4, "\0\3201\273\0\24)\273\0\34=\273\0\336/\273\0\316/\273\0\3167\273\0\220*\273\0\3569\273"..., 4096, 8609803698176) = 4096
pread64(4, "o\f\257\205\16\377=\20\367\270\21\376\312\22\252R\0234\227\23\242\303\23\234\343\23Z\376\23LI\24"..., 4096, 1755810463744) = 4096
mremap(0x7fa5e3565000, 208769024, 208773120, MREMAP_MAYMOVE) = 0x7fa5e3565000
pread64(4, "\22\0\\\2\0\347\352\377\347\303\377?\250\3776\224\377Ht\377\17W\377\245G\377\5G\377}[\377"..., 4096, 14672424988672) = 4096
mremap(0x7fa5e3565000, 208773120, 208777216, MREMAP_MAYMOVE) = 0x7fa5e3565000
pread64(4, "\255\2\202)#m\22\5N\244F\210\221\20+.\21\5\352\306\344\220\25\3567\250\16\323\2\247P\352"..., 4096, 16981972766720) = 4096
mremap(0x7fa5e3565000, 208777216, 208781312, MREMAP_MAYMOVE) = 0x7fa5e3565000
pread64(4, "M\0\205N\0KO\0\4P\0\221P\0)Q\0\336Q\0\204R\0SS\0\tT\0\371T\0"..., 4096, 833004105728) = 4096
Run Code Online (Sandbox Code Playgroud)

每 30-60 秒生产一条新线,所以很少。任何人都可以告诉我发生了什么,我应该等待还是需要做些什么才能再次访问数据?

小智 0

请执行以下步骤,

先卸载磁盘,

卸载/dev/磁盘

Linux 在每个文件系统中维护超级块的多个冗余副本。我们可以使用超级块元数据的冗余副本来恢复数据。

dumpe2fs /dev/disk |grep 超级块

它将显示我们可以使用的备用超级块。

fsck -y -b blockid /dev/disk

对所有损坏的超级块重复该步骤。即用备份超级块替换超级块。

挂载磁盘即可再次使用