하드 리셋 후 fsck는 ext4를 깨끗한 것으로 보고합니다. 이것이 정상입니까?

하드 리셋 후 fsck는 ext4를 깨끗한 것으로 보고합니다. 이것이 정상입니까?

내 루트 파티션은 ext4 파일 시스템으로 포맷되었습니다.

내 컴퓨터가 충돌하여 하드 리셋해야 할 때마다 다시 부팅하고 루트 파일 시스템을 확인할 때 이 단계는 완전히 종료된 시스템에서 부팅할 때보다 약간 더 오래 걸립니다(예: 1~2초). 그것은 "깨끗하다"고 보고되었습니다(그리고 그와는 전혀 다릅니다 /dev/<rootpartition> was not cleanly unmounted, check forced). 파일 시스템이 92% 찼습니다(352GiB).

내 질문: 이것이 ext4의 정상적이고 안전한 동작인지, 아니면 시작 스크립트의 버그인지 알고 싶습니다. ext4의 fsck가 ext3보다 훨씬 빠르다는 것을 알고 있지만 시스템 충돌 후 "clean"으로 보고되는 것이 걱정됩니다.

해당 파티션에서 수동으로 실행 하면 e2fsck -f검사 기간은 ext2/ext3 파일 시스템과 비슷합니다. 그래서 tune2fs -c 1저는 e2fsck -f모든 부팅 (

명확히 하기 위해 편집합니다. 일반적으로 /var(예: reiserfs)에서 비정리 재설정 후 fsck는 /boot(예: ext2)에서 로그 항목을 재생하고 fsck가 실행되고 진행률 표시줄을 표시하며 "clean" 실행 후 보고합니다. ". 루트 파일 시스템에서만 "강제 검사"가 발생하지 않고 fsck 진행이 발생하지 않는 반면, 다른 파일 시스템에서는 결과가 깨끗하더라도 이 현상이 발생합니다. 이것은 걱정스러운 차이입니다!

답변1

ext4는 저널링 파일 시스템이며 저널링의 주요 목표 중 하나는 손상을 일으키지 않고 비정상 종료에서 살아남는 것이므로 더 이상 fsck가 필요하지 않습니다.

간단히 말해서, ext3/4와 같은 저널링 파일 시스템은 (적어도) 메타데이터 변경 사항을 씁니다.두 배. 먼저 "로그"에 기록합니다. 그런 다음 디스크에 저장되면 실제 파일 시스템 메타데이터를 기록합니다. (로그가 연속적이고 많은 검색이 필요하지 않기 때문에 로그에 쓰는 것이 훨씬 빠릅니다. 적어도 디스크에서는 SSD의 검색 페널티가 크게 줄어듭니다.)

추가 몇 초는 로그 재생이 될 수 있습니다. 기본적으로 파일 시스템이 완전히 마운트 해제되지 않은 경우 다음 마운트에서는 fsck로그를 읽고 기본 파일 시스템에 아직 없는 변경 사항을 적용합니다.

간단히 말해서 예상대로 작동하는 것처럼 들립니다.

답변2

Fsck는 일반적으로 파일 시스템이 완전히 마운트 해제되지 않은 경우(일반적으로 하드 리셋해야 하는 경우) 시작 시 실행됩니다. fsck는 파일 시스템을 마운트하기 전에 파일 시스템을 검사하고 문제(불일치, 로그 재생 불가, 고아 inode 등)가 발견되면 오류를 보고하고, 오류가 발견되지 않으면 "정리"합니다. 따라서 귀하의 경우에는 운이 좋으며 파일 시스템은 괜찮습니다. fsck의 내부 작동에 대해 더 알고 싶다면 fsck에 대한 매우 흥미로운 기사가 ​​있습니다.https://lwn.net/Articles/248180/

답변3

initrd/initramfs에서 발생 했습니다 fsck(불순한 종료 후 이 단계는 몇 초가 걸리고 로그가 재생되는 것처럼 보이는 많은 디스크 활동이 있습니다). 따라서 일반적이고 더 자세한 파일 시스템 검사가 기본 시스템에서 실행되면 이미 깨끗해요.

관련 정보