在 ext4 上挂载“结构需要清理”的文件系统

und*_*ine 5 linux filesystems ext4 mount

有一个多年前创建的(并且多次调整大小)带有 ext4 的文件系统。电源故障后,它停止安装。\n当我尝试手动安装它时,我收到错误:

\n
# mount /dev/space/vservershosting-vs /mnt/\nmount: /mnt: mount(2) system call failed: Structure needs cleaning.\n
Run Code Online (Sandbox Code Playgroud)\n

dmesg 中有更多信息:

\n
[32618.800854] EXT4-fs error (device dm-44): __ext4_iget:5080: inode #2: block 1953722220: comm mount: invalid block\n[32619.264574] EXT4-fs (dm-44): get root inode failed\n[32619.264633] EXT4-fs (dm-44): mount failed\n
Run Code Online (Sandbox Code Playgroud)\n

fsck 无需任何修复即可通过:

\n
# fsck.ext4 -c -f -v /dev/space/vservershosting-vs\ne2fsck 1.44.5 (15-Dec-2018)\nChecking for bad blocks (read-only test): done                                                 \n/dev/space/vservershosting-vs: Updating bad block inode.\nPass 1: Checking inodes, blocks, and sizes\nPass 2: Checking directory structure                                           \nPass 3: Checking directory connectivity                                        \nPass 4: Checking reference counts                                              \nPass 5: Checking group summary information                                     \n                                                                               \n/dev/space/vservershosting-vs: ***** FILE SYSTEM WAS MODIFIED *****\n\n     1551308 inodes used (7.89%, out of 19660800)\n      115052 non-contiguous files (7.4%)\n         861 non-contiguous directories (0.1%)\n             # of inodes with ind/dind/tind blocks: 48107/1394/6\n             Extent depth histogram: 988992/12798/13\n    67929516 blocks used (86.38%, out of 78643200)\n           0 bad blocks\n          16 large files\n\n     1377888 regular files\n      143712 directories\n          74 character device files\n          25 block device files\n          10 fifos\n         810 links\n       29496 symbolic links (29045 fast symbolic links)\n          94 sockets\n------------\n     1552109 files\n
Run Code Online (Sandbox Code Playgroud)\n

(与当前版本的 fsck 输出相同)

\n

当我尝试安装时 - 它失败了。之后 - fsck“修复”fs(第二次运行 fsck 不执行任何操作)。但 fs 仍然没有修复 - 当我尝试安装它时它失败了。

\n
root@undefine-ThinkPad-T470p:~# fsck.ext4 -v /dev/sdb1\ne2fsck 1.45.5 (07-Jan-2020)\n/dev/sdb1 zawiera system plik\xc3\xb3w z b\xc5\x82\xc4\x99dami, wymuszono sprawdzenie.\nPrzebieg 1: Sprawdzanie i-w\xc4\x99z\xc5\x82\xc3\xb3w, blok\xc3\xb3w i rozmiar\xc3\xb3w\nPrzebieg 2: Sprawdzanie struktury katalog\xc3\xb3w\nPrzebieg 3: Sprawdzanie \xc5\x82\xc4\x85czno\xc5\x9bci katalog\xc3\xb3w\nPrzebieg 4: Sprawdzanie licznik\xc3\xb3w odwo\xc5\x82a\xc5\x84\nPrzebieg 5: Sprawdzanie sumarycznych informacji o grupach\n \n     1551308 u\xc5\xbcytych i-w\xc4\x99z\xc5\x82\xc3\xb3w (7.89% z 19660800)\n      115052 pliki nieci\xc4\x85g\xc5\x82e (7.4%)\n         861 katalog\xc3\xb3w nieci\xc4\x85g\xc5\x82ych (0.1%)\n             liczba i-w\xc4\x99z\xc5\x82\xc3\xb3w z blokami ind/dind/tind: 48107/1394/6\n             Histogram g\xc5\x82\xc4\x99boko\xc5\x9bci ekstent\xc3\xb3w: 988992/12798/13\n    67929516 u\xc5\xbcytych blok\xc3\xb3w (86.38% z 78643200)\n           0 wadliwych blok\xc3\xb3w\n          16 du\xc5\xbcych plik\xc3\xb3w\n \n     1377888 zwyk\xc5\x82ych plik\xc3\xb3w\n      143712 katalog\xc3\xb3w\n          74 pliki urz\xc4\x85dze\xc5\x84 znakowych\n          25 plik\xc3\xb3w urz\xc4\x85dze\xc5\x84 blokowych\n          10 potok\xc3\xb3w\n         810 dowi\xc4\x85za\xc5\x84\n       29496 dowi\xc4\x85za\xc5\x84 symbolicznych (29045 szybkich dowi\xc4\x85za\xc5\x84 symbolicznych)\n          94 gniazda\n------------\n     1552109 plik\xc3\xb3w\nroot@undefine-ThinkPad-T470p:~# fsck.ext4 -v /dev/sdb1\ne2fsck 1.45.5 (07-Jan-2020)\n/dev/sdb1: czysty, 1551308/19660800 plik\xc3\xb3w, 67929516/78643200 blok\xc3\xb3w\nroot@undefine-ThinkPad-T470p:~# mount /dev/sdb1 /mnt/test/\nmount: /mnt/test: wywo\xc5\x82anie systemowe mount(2) nie powiod\xc5\x82o si\xc4\x99: Struktura wymaga wyczyszczenia.\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试使用替代超级块进行安装 - 相同的错误/结果。

\n

但是-当我使用 debugfs 连接到卷时,我在丢失+找到中看到所有重要内容(3 个目录)。

\n

我可以使用 debugfs 和 rdump 命令恢复所有内容,但是 - 如何安装/修复该卷?

\n