ext4 슈퍼블록 오류 복구

ext4 슈퍼블록 오류 복구

과도한 posgresql 메모리 사용량으로 인해 서버가 충돌했습니다. 재시작 후 슈퍼블록 오류로 인해 postgresql 데이터가 위치한 디스크가 마운트되지 않습니다.

파티션을 복원하기 위해 aws 콘솔에서 새 볼륨을 생성했습니다.

1- ddrestore를 통해 손상된 디스크를 새 디스크에 복제했습니다.

ddrescue -v —force /dev/nvme1n1 /dev/nvme3n1 /tmp.log

2-fsck 결과

ext2fs_open2: 슈퍼블록의 잘못된 매직 넘버 fsck.ext2: 슈퍼블록이 잘못되었습니다. 블록을 백업하는 중... fsck.ext2: /dev/nvme1n1을 열려고 할 때 슈퍼블록의 잘못된 매직 넘버입니다.

슈퍼블록을 읽을 수 없거나 유효한 ext2/ext3/ext4 파일 시스템이 설명되지 않았습니다. 장치가 유효하고 ext2/ext3/ext4 파일 시스템(스왑이나 ufs 또는 기타 파일 시스템은 포함하지 않음)을 포함하는 경우 슈퍼 블록이 손상된 것이므로 대체 슈퍼 블록(e2fsck -b 8193 또는 e2fsck -b 32768)을 사용하여 e2fsck를 실행해 볼 수 있습니다.

- 백업 슈퍼블록 목록을 찾았어요

sudo mke2fs -n /dev/nvme1n1

결과:

73242187 4k 블록 및 18317312 inode로 파일 시스템 생성 파일 시스템 UUID: 5b950060-1755-46b4-bef0-4a76e721f668 블록에 저장된 슈퍼블록 백업: 32768, 98304, 163840, 229376, 294912, 00, 8 847 36. 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616

4- 슈퍼 블록을 모두 시도해 보았습니다.

sudo e2fsck -b 32768 /dev/nvme1n1 

나에게는 효과가 없습니다. 동일한 SSD의 다른 부분(예: 루트 볼륨)은 정상적으로 작동합니다.

도와주세요?

관련 정보