ext4에 "구조 정리 필요"를 사용하여 파일 시스템 마운트

ext4에 "구조 정리 필요"를 사용하여 파일 시스템 마운트

ext4를 사용하여 몇 년 전에 생성된(그리고 그 당시부터 여러 번 크기가 조정된) 파일 시스템이 있습니다. 정전 후 장착이 중지됩니다. 수동으로 마운트하려고 하면 오류가 발생합니다.

# mount /dev/space/vservershosting-vs /mnt/
mount: /mnt: mount(2) system call failed: Structure needs cleaning.

dmesg에는 더 많은 정보가 있습니다:

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

수리 없이 fsck를 통과합니다.

# fsck.ext4 -c -f -v /dev/space/vservershosting-vs
e2fsck 1.44.5 (15-Dec-2018)
Checking for bad blocks (read-only test): done                                                 
/dev/space/vservershosting-vs: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure                                           
Pass 3: Checking directory connectivity                                        
Pass 4: Checking reference counts                                              
Pass 5: Checking group summary information                                     
                                                                               
/dev/space/vservershosting-vs: ***** FILE SYSTEM WAS MODIFIED *****

     1551308 inodes used (7.89%, out of 19660800)
      115052 non-contiguous files (7.4%)
         861 non-contiguous directories (0.1%)
             # of inodes with ind/dind/tind blocks: 48107/1394/6
             Extent depth histogram: 988992/12798/13
    67929516 blocks used (86.38%, out of 78643200)
           0 bad blocks
          16 large files

     1377888 regular files
      143712 directories
          74 character device files
          25 block device files
          10 fifos
         810 links
       29496 symbolic links (29045 fast symbolic links)
          94 sockets
------------
     1552109 files

(현재 버전의 fsck와 동일한 출력)

마운트하려고 하면 실패합니다. 그 후 - fsck는 fs를 "수정"합니다(두 번째 실행 fsck는 아무것도 하지 않습니다). 하지만 fs는 여전히 수정되지 않았습니다. 마운트하려고 하면 실패합니다.

root@undefine-ThinkPad-T470p:~# fsck.ext4 -v /dev/sdb1
e2fsck 1.45.5 (07-Jan-2020)
/dev/sdb1 zawiera system plików z błędami, wymuszono sprawdzenie.
Przebieg 1: Sprawdzanie i-węzłów, bloków i rozmiarów
Przebieg 2: Sprawdzanie struktury katalogów
Przebieg 3: Sprawdzanie łączności katalogów
Przebieg 4: Sprawdzanie liczników odwołań
Przebieg 5: Sprawdzanie sumarycznych informacji o grupach
 
     1551308 użytych i-węzłów (7.89% z 19660800)
      115052 pliki nieciągłe (7.4%)
         861 katalogów nieciągłych (0.1%)
             liczba i-węzłów z blokami ind/dind/tind: 48107/1394/6
             Histogram głębokości ekstentów: 988992/12798/13
    67929516 użytych bloków (86.38% z 78643200)
           0 wadliwych bloków
          16 dużych plików
 
     1377888 zwykłych plików
      143712 katalogów
          74 pliki urządzeń znakowych
          25 plików urządzeń blokowych
          10 potoków
         810 dowiązań
       29496 dowiązań symbolicznych (29045 szybkich dowiązań symbolicznych)
          94 gniazda
------------
     1552109 plików
root@undefine-ThinkPad-T470p:~# fsck.ext4 -v /dev/sdb1
e2fsck 1.45.5 (07-Jan-2020)
/dev/sdb1: czysty, 1551308/19660800 plików, 67929516/78643200 bloków
root@undefine-ThinkPad-T470p:~# mount /dev/sdb1 /mnt/test/
mount: /mnt/test: wywołanie systemowe mount(2) nie powiodło się: Struktura wymaga wyczyszczenia.

대체 슈퍼블록을 사용하여 마운트하려고 시도했지만 동일한 오류/결과가 발생했습니다.

하지만 debugfs를 사용하여 볼륨에 연결하면 loss+found에 중요한 콘텐츠(디렉터리 3개)가 모두 표시됩니다.

debugfs 및 rdump 명령을 사용하여 모든 콘텐츠를 복원할 수 있지만 해당 볼륨을 마운트/수정하는 방법은 무엇입니까?

관련 정보