부팅할 때마다 fsck를 강제하는 방법 - 모든 (관련) 파일 시스템?

부팅할 때마다 fsck를 강제하는 방법 - 모든 (관련) 파일 시스템?

나는 데비안 6 및 3 파티션(FAT 및 2x ext2)이 있는 팬 없는 PC(문자 그대로 수백 개)를 사용하고 있습니다. 시스템에는 전원 버튼이 없기 때문에 대부분의 사람들은 init 0(또는 이에 상응하는 것)보다는 "끄기" 위해 플러그를 뽑는 경향이 있습니다. 결과적으로 파일 시스템 오류가 빠르게 발생할 수 있습니다.

"shutdown -rF"를 사용하여 fsck를 강제로 시도했지만 작동하지 않는 것 같습니다. 마운트하기 전에 각 마운트 지점/FS를 확인하도록 시스템에 지시하는 방법이 있는지 궁금합니다.

/etc/fstab에서 fsck 매개변수를 설정해 보았습니다. 이로 인해 일반적으로 "오류 발견"이 발생합니다. fsck' 메시지를 수동으로 실행합니다.

시도해 볼 수 있는 다른 옵션이 있나요?

답변1

In /etc/init.d/checkfs.sh줄이므로 커널 명령줄에서 제공하거나 if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline종료 시 파일을 만들면 다음 재부팅 시 fsck가 발생해야 합니다.forcefsck/forcefsck

수동 fsck가 실행되는 것을 방지하려면 fsck다음 /etc/default/rcS 항목의 -y주석 처리를 제거하고 no를 no로 변경하여 이 옵션에 대한 오류를 자동으로 수정해 보십시오 . 편집한 후에는 다음과 같아야 합니다.yes

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=yes

한 옵션(forcefsck 또는 FSCKFIX)은 다른 옵션을 의미하지 않습니다.

답변2

fsck.mode=force부트로더에 커널 매개변수를 추가합니다. 이 옵션을 GRUB_CMDLINE_LINUX_DEFAULT=내부 변수 에 추가합니다 /etc/default/grub. 루트로 새 grub 구성 파일을 생성합니다.

[root@host]# grub-mkconfig -o /boot/grub/grub.cfg

forcefsck이 매개변수는 마운트 지점의 루트 디렉터리에 파일을 생성하는 것과 동일한 효과를 갖습니다.

스크립트를 사용한 솔루션은 checkfs.shDebian에서는 더 잘 작동하지만 다른 배포판에서는 작동하지 않습니다.

답변3

내 답변을 편집하고 있습니다.

명령은 다음과 같습니다:

sudo tune2fs -c 1 /dev/sdX

맨페이지 -c 매개변수에 따라 tune2fs는 파티션 마운트 인스턴스 수를 계산합니다. 따라서 1은 모든 인스턴스 설치 후에 fs를 강제로 확인합니다.

(http://man7.org/linux/man-pages/man8/tune2fs.8.html)

관련 정보