SD 카드의 ext4 파일 시스템에 대한lazy_itable_init=1과 관련된 위험

SD 카드의 ext4 파일 시스템에 대한lazy_itable_init=1과 관련된 위험

내 설정은 다음과 같습니다.

  • 리눅스 커널 2.6.28
  • e2fsprogs 1.42.7
  • 64GB 클래스 10 SD 카드

전체 카드를 ext4 파일 시스템으로 포맷하는 데 걸리는 시간을 단축하려고 합니다. 내 연구에서는 mkfs.ext4에 대한lazy_itable_init=1 옵션이 지적되었습니다. 내가 올바르게 이해했다면 이러한 옵션은 SD 카드 파티션 포맷 속도를 크게 향상시키지만 이는 파일 시스템이 처음 마운트될 때까지 inode 초기화를 연기함으로써 달성됩니다. 그런 다음 커널은 백그라운드에서 이 초기화를 수행합니다(v2.6.27+에만 해당).

매뉴얼 페이지에는 이 옵션에 대한 다음 문장이 있습니다.

이 [플래그]는 파일 시스템 초기화 속도를 크게 향상시키지만 파일 시스템이 처음 마운트될 때 커널이 백그라운드에서 파일 시스템 초기화를 완료해야 합니다.

내 질문은 커널이 백그라운드에서 파일 시스템 초기화를 완료하지 않으면 어떻게 됩니까?

나는lazy_itable_init=1 옵션으로 포맷하고 파일 시스템을 마운트한 후 곧 SD 카드를 제거하여 이를 테스트했습니다. 카드를 다시 연결하면 파티션을 마운트하고 0이 포함된 여러 개의 100MB 파일을 문제 없이 쓸 수 있습니다. 이 내용을 다시 읽어보면 정확합니다.

이건 그냥 우연인가요? 일련의 이벤트 후에 이 동작이 보장됩니까?

답변1

inode 테이블이 0으로 초기화되는 이유는 이전에 발생한 쓰레기가 유효한 inode로 잘못 해석되지 않도록 하기 위한 것입니다 e2fsck. 일반적으로 아무런 차이가 없지만 e2fsck오류가 감지되면 비트맵이 사용 중임을 나타내는지 여부에 관계없이 경험적으로 inode를 식별하여 복구를 시도할 수 있으므로 삭제해야 하는 잘못된 inode를 복구하려고 시도할 수 있습니다. 이 inode는/분실+발견되었습니다.

관련 정보