ext4 슈퍼블록의 inode 수가 0으로 재설정될 때 복구하는 방법

ext4 슈퍼블록의 inode 수가 0으로 재설정될 때 복구하는 방법

15TB ext4 파티션의 크기를 16TB로 조정하려고 하다가 예기치 않게 ext4_resize_fs()에서 오래된(최신 버전에서는 수정됨) off-by-one 버그가 발생하여 오버플로 오류로 인해 inode 수가 0으로 재설정되었습니다.

수정 사항은 여기에서 볼 수 있습니다.https://github.com/torvalds/linux/commit/4f2f76f751433908364ccff82f437a57d0e6e9b7

따라서 16TB 파티션은 현재 사용할 수 없습니다.

이런 상황에서 회복할 수 있는 방법이 있나요? 이 경우 모든 파일에 대한 읽기 전용 액세스만으로도 충분합니다.

답변1

이를 처리하는 가장 좋은 방법은 ssvdebugfs 명령을 사용하여 슈퍼블록을 편집하여 항목 가치만큼 블록 수와 inode 수를 줄인 다음 e2fsck를 실행하는 것입니다. 이렇게 하면 크기 조정의 마지막 부분이 취소되어 파일 시스템을 다시 사용할 수 있습니다.

관련 정보