4개의 EXT4 파일 시스템을 호스팅하는 1개의 하드 드라이브, 이름을 A(1,2,3,4)로 지정하겠습니다. 각 파일 시스템은 fstab에 항목을 가져오지만 거의 마운트되지 않으며 드라이브가 초기화되지도 않습니다. udiskctl을 통해 전원을 끕니다.
8개의 EXT4 파일 시스템을 호스팅하는 1개의 하드 드라이브, 각 파일 시스템은 내 fstab에 항목을 가져옵니다. 그 중 4개는 B(1,2,3,4)가 초기화 시 자동으로 마운트된다고 가정하고 나머지 4개는 C(1,2, 3,4) 필요에 따라 수시로 설치됩니다.
이러한 경우(A(1,2,3,4)는 마운트되지 않고 관련 드라이브는 다운되고, C(1,2,3,4) 파일 시스템은 마운트되지 않음) 어떤 이유로든(정전, 커널 패닉, 하드 리셋...) 시스템이 정상적으로 종료되지 않았습니다.
다음에 재부팅할 때 각 파일 시스템이 검사됩니다.
비정상적인 종료 시 마운트되지 않은 모든 파일 시스템은 빠르게 지워집니다.
질문 1:이 결론은 슈퍼블록의 유일한 해석에서 도출된 것입니까?s_상태필드 또는 다른 검사가 있습니까?
Q2:이는 비정상적인 종료를 유발하는 요인에 따라 달라지나요? 기본 드라이브에 전원이 공급되는지 여부에 따라 달라집니까?
Q3:이러한 검사는 fsck에 파일 시스템을 마운트하도록 지시합니까?
Q4:이러한 정리 상태가 콘솔에 보고되는 동안 내 커널(또는 기타) 로그에 이러한 보고서가 반영된 것을 찾을 수 없는 이유는 무엇입니까? 실제로 복구하고 결국 로그에서 복구해야 하는 파일 시스템의 추적은 다음과 같습니다.
Linux-5.4/e2fsck 1.46.5/아래오픈소스 라이브러리초기화 시스템으로유안 슈에중요한 경우 syslog 데몬 역할을 합니다.
Metalog와 가장 관련성이 높은 규칙:
Kernel messages :
facility = "kern"
logdir = "/var/log/kernel"
break=1
Fallback:
facility = "*"
minimum = 6
logdir = "/var/log/fallback"
답변1
여러 가지 질문을 하지 마십시오.
파티션이 mount
편집되면 파일 시스템 코드는 파티션의 블록 할당 테이블을 메모리에 복사하고 디스크 테이블을 "복구 필요"로 표시합니다.
파일 시스템 코드는 디스크 속도보다 훨씬 빠른 메모리 속도로 블록 할당을 관리합니다.
인 메모리 테이블은 주기적으로 디스크에 다시 기록됩니다. 이를 통해 상대적으로 최신 상태를 유지하고 모든 테이블을 동시에 메모리에 유지하는 것을 방지합니다.
파티션을 umount
편집하면 메모리 내 테이블이 디스크에 기록됩니다("복구 필요" 플래그가 지워짐). 메모리 내 테이블은 삭제됩니다.
시스템이 충돌하면 최신 메모리 테이블이 손실되고 "복구 필요" 플래그가 여전히 디스크에 설정되어 있습니다.
부팅에 파일 시스템이 필요하고( /etc/fstab
항목에 파일 시스템이 하나 있음 auto
) 디스크에 "복구 필요" 플래그가 설정된 경우 fsck
파일 시스템별 파일 시스템(예: filesystem -make 블록 할당 테이블 fsck.ext4
의 경우 )을 실행하여 "복구"합니다. ext4
파일 시스템 수정"(데이터 손실 최소화, 사용 가능한 블록이나 사용되지 않은 블록이 없는지 확인 등...), "복구가 필요"할 때 작성된 블록 보존 등. 자체 테이블을 작성하므로 디스크 fsck
가 편집되지 않을 수 있습니다. mount
, 또한 디스크에는 fsck
성공할 때까지 "복구 필요" 플래그가 설정되어 있습니다.
이러한 사전 설치된 시스템 유도 fsck
활동은 실제로 메시지를 기록할 만큼 부팅 프로세스가 "시작"되기 전에 발생하지만 시도해 보십시오 dmesg
.
LusterOne 덕분에
마운트할 때 e2fsck는 로그에서 "복구 필요" 플래그를 확인하고 파일 시스템을 마운트하는 데 필요한 수퍼 블록 및 그룹 설명자 블록에 대한 기본 검사를 수행합니다. "복구 필요"가 설정된 경우 로그가 재생됩니다. 다른 오류가 발견되면 파일 시스템의 전체 e2fsck를 실행합니다. – 러스트레원