명령줄에서 mount를 호출할 때 자동으로 fsck를 실행합니다.

명령줄에서 mount를 호출할 때 자동으로 fsck를 실행합니다.

USB 드라이브를 마운트 및 마운트 해제하는 백업 스크립트가 있습니다.
방금 경고가 표시되는 것을 확인했습니다.

EXT3-fs warning: maximal mount count reached, running e2fsck is recommended

내 질문: mount 명령을 실행할 때 e2fsck가 자동으로 실행되도록 하려면 어떻게 해야 합니까?
이게 그 모습이야/etc/fsck

UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38   /media/backup_disk_1  auto  defaults,rw,noauto  0 3

이것도 사실 <pass>이므로 필요할 때 실행될 것으로 3기대합니다 .fsck

편집하다

주어진 답변을 바탕으로 제가 한 일은 다음과 같습니다.

(Bash 스크립트에서)

function fsck_disk {
  UUID=$1
  echo "Checking if we need to fsck $UUID"
  MCOUNT=`tune2fs -l "UUID=$UUID" 2> /dev/null | sed -n '/Mount count:\s\+/s///p'`
  if [ "$MCOUNT" -eq "$MCOUNT" ] 2> /dev/null
  then
    echo "Mount count = $MCOUNT"
    if (( $MCOUNT > 30 ))
    then
      echo "Time to fsck"
      fsck -a UUID=$UUID \
           1>> output.log \
           2>> error.log
    else
      echo "Not yet time to fsck"
    fi
  fi
}

fsck_disk a60b1234-c123-123e-b4d1-a4a111ab2222

답변1

에 따르면 man fstab:

게임 6(fs_passno). 이 필드는 fsck(8) 프로그램이 재부팅 시 파일 시스템 검사가 수행되는 순서를 결정하는 데 사용됩니다. fs_passno는 루트 파일 시스템의 경우 1로 지정하고 기타 파일 시스템의 경우 2로 지정해야 합니다. 드라이브 내의 파일 시스템은 순차적으로 검사되지만, 하드웨어에서 사용 가능한 병렬성을 활용하기 위해 다른 드라이브에 있는 파일 시스템은 동시에 검사됩니다. 여섯 번째 필드가 없거나 0인 경우 0 값이 반환되고 fsck는 파일 시스템을 확인할 필요가 없다고 가정합니다.

그러므로 3비어 있습니다. 또한 fstab장치를 설치할 때마다 시작 시간에만 미치는 영향을 확인하지 않습니다. 따라서 부팅 중에 확인하려면 6번째 필드를 2. 모든 설치를 확인하려면 간단한 스크립트를 사용하거나 별칭(예:

alias bk_mount='fsck -a UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38 && \
                mount /media/backup_disk_1'

답변2

tune2fs -c 0 /dev/sdb이 경고는 의미가 없으므로 간단히 무시하거나 다음을 사용하여 제거할 수 있습니다. 특히 ext3/4의 경우 X를 설치한 후 파일 시스템을 fsck할 이유가 없습니다. 이것은 90년대에 ext2가 새로 나왔을 때부터 남아 있는 것으로 사람들은 이것이 단지 "만약을 대비해서" "좋은 생각"이라고 생각했습니다.

관련 정보