Execute fsck automaticamente ao chamar mount da linha de comando

2

Eu tenho um script de backup que monta e desmonta uma unidade USB.
Acabei de perceber que está me avisando:

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

Minha pergunta: Como posso executá-lo para executar o e2fsck automaticamente quando o comando mount é executado?
É assim que parece em /etc/fsck

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

Portanto, <pass> é 3 , por isso esperava que o fsck fosse executado quando necessário.

EDITAR

Foi assim que acabei fazendo isso, com base na resposta dada:

(em um script 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
    
por user92979 27.10.2014 / 04:34

2 respostas

1

De acordo com man fstab :

The sixth field (fs_passno). This field is used by the fsck(8) program to determine the order in which filesystem checks are done at reboot time. The root filesystem should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2. Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware. If the sixth field is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked.

Então, 3 é inválido. Além disso, o fstab influencia apenas a verificação do tempo de inicialização, não toda vez que um dispositivo é montado. Portanto, para verificar durante a inicialização, altere o 6º campo para 2 . Se o seu quer fazer checar cada montaria você pode fazer isso por script simples ou até mesmo fazer alias (por exemplo

alias bk_mount='fsck -a UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38 && \
                mount /media/backup_disk_1'
    
por 27.10.2014 / 10:23
0

Esse aviso é bastante inútil, então você pode simplesmente ignorá-lo ou, como alternativa, você pode se livrar dele usando tune2fs -c 0 /dev/sdb . Não há realmente nenhuma razão para fsck o sistema de arquivos após o X ser montado, especialmente com o ext3 / 4. Este é um remanescente de quando ext2 era novo nos anos 90 e foi pensado que seria apenas "uma boa idéia", "apenas no caso".

    
por 31.10.2014 / 16:48