부팅 할 때마다 fsck를 실행하는 방법-모든 (관련된) 파일 시스템? 플러그를 잡아 당기는

데비안 6 및 3 파티션 (FAT 및 2x ext2)이있는 팬이없는 PC (사실 수백 대)로 작업하고 있습니다. 시스템에는 전원 버튼이 없으므로 대부분의 사람들은 init 0 (또는 동등한) 대신 ‘종료’하기 위해 플러그를 잡아 당기는 경향이 있습니다. 결과적으로 파일 시스템은 오류를 매우 빠르게 생성합니다.

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

/ etc / fstab에서 fsck 매개 변수 설정을 시도했습니다. 이것은 일반적으로 ‘오류를 발견했습니다. fsck manual ‘메시지를 실행하십시오.

다른 옵션이 있습니까?



답변

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

수동 fsck 실행을 방지하려면 편집 후 다음 / etc / default / rcS 항목에서 주석을 해제하고 no를 변경 fsck하여 -y옵션으로 오류를 자동으로 수정 하도록 요청 하십시오 yes.

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=yes

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


답변

fsck.mode=force부트 로더에 Kernel 매개 변수를 추가하십시오 . 이 옵션을 GRUB_CMDLINE_LINUX_DEFAULT=inside 변수에 추가하십시오 /etc/default/grub. 루트로서 새 grub 구성 파일을 생성하십시오.

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

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

checkfs.sh스크립트 를 사용하는 솔루션은 데비안에 더 적합하지만 다른 배포판에서는 작동하지 않습니다.


답변

내 답변을 편집 중입니다.

명령은 다음과 같습니다.

sudo tune2fs -c 1 /dev/sdX

맨 페이지에 따르면 tune2fs의 -c 인수는 파티션에 대한 마운트 인스턴스 수를 계산합니다. 따라서 1은 매 장착 인스턴스마다 fs를 강제로 확인합니다.

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


답변