최근에 우리는 아래와 같이 RHEL VM 서버에서 많은 커널 메시지를 받았습니다.
[Mon Oct 4 11:33:32 2021] EXT4-fs error (device sdb): htree_dirblock_to_tree:914: inode #397095: block 1585151: comm du: bad entry in directory: rec_len is smaller than minimal - offset=0(4096), inode=0, rec_len=0, name_len=0
그래서 우리는 fsck
autorun 옵션을 사용하여 조롱합니다 -a
( umount
물론 이후).
$ fsck -a /dev/sdb
fsck from util-linux 2.23.2
/dev/sdb contains a file system with errors, check forced.
/dev/sdb: Directory inode 397095, block #1, offset 0: directory corrupted
/dev/sdb: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
-a
이 옵션이 사용된다고 명시되어 있지만 fsck
사용하지 않을 것을 고집합니다.
따라서 마지막 옵션은 수동으로 수행하는 것입니다.
# fsck /dev/sdb
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Inode 2134692 ref count is 2, should be 1. Fix<y>? yes
Unattached inode 2134798
Connect to /lost+found<y>? yes
Inode 2134798 ref count is 2, should be 1. Fix<y>? yes
Unattached inode 2135050
Connect to /lost+found<y>? yes
Inode 2135050 ref count is 2, should be 1. Fix<y>? yes
Unattached inode 2135058
Connect to /lost+found<y>? yes
Inode 2135058 ref count is 2, should be 1. Fix<y>? yes
위에서 본 것처럼 시간이 걸립니다.
fsck
수동 단계 없이 플래그를 강제로 실행하거나 실행하는 방법을 아시나요 -a
?fsck
답변1
-a
(또는) 옵션은 사용자 개입 없이 파일 시스템을 복구하려고 시도하도록 -p
지시하는 데 사용됩니다. fsck
이것이 가능하지 않은 경우(잘못된 옵션을 선택하여 데이터가 손실되거나 파일 시스템이 추가로 손상될 위험이 있음) fsck -a
실패하고 알려줍니다. 수동 모드에서 실행하려면 아래 단계에 따라 각 오류를 해결하는 방법을 스스로 결정하십시오.
~에서e2fsck 매뉴얼 페이지:
파일 시스템을 자동으로 복구("정리")합니다. 이 옵션을 사용하면 e2fsck가 수동 개입 없이 안전하게 복구할 수 있는 모든 파일 시스템 문제를 자동으로 복구하게 됩니다. e2fsck가 시스템 관리자의 추가 수정 조치가 필요할 수 있는 문제를 발견하면 e2fsck는 문제에 대한 설명을 인쇄한 다음 논리적 OR 값인 종료 코드 4로 종료됩니다. ("종료 코드" 섹션을 참조하십시오.) 이 옵션은 일반적으로 시스템의 부팅 스크립트에서 사용됩니다.
fsck
완전히 비대화형으로 실행 하려면 해당 -y
옵션을 사용하여 모든 질문에 답할 수 있지만 yes
권장하지 않습니다.