É seguro desabilitar o boot fsck no sistema de arquivos ext3 somente leitura?

É seguro desabilitar o boot fsck no sistema de arquivos ext3 somente leitura?

Eu tenho um sistema de arquivos ext3 grande, lido com frequência, montado somente leitura em um sistema que geralmente é sempre ligado e desligado cerca de 2 a 3 vezes por dia.

Como o dispositivo geralmente é desligado cortando a energia, o fsck é executado na inicialização desse sistema de arquivos, mas para esse aplicativo, tempos de inicialização rápidos são importantes (para o segundo).

Posso desabilitar as verificações de tempo de inicialização no sistema de arquivos no fstab, mas minha pergunta é: é seguro fazer isso? Dado que o sistema de arquivos é montado somente leitura, mas nunca é desmontado corretamente, existequalquerrisco de acumular corrupção no sistema de arquivos por um longo período se eu desabilitar a verificação do tempo de inicialização?

Responder1

Na mountpágina de manual,

   -r, --read-only
          Mount the filesystem read-only. A synonym is -o ro.

          Note  that,  depending  on the filesystem type, state and kernel
          behavior, the system may still write to the device. For example,
          Ext3 or ext4 will replay its journal if the filesystem is dirty.
          To prevent this kind of write access, you may want to mount ext3
          or  ext4  filesystem  with  "ro,noload" mount options or set the
          block device to read-only mode, see command blockdev(8).

Se ro,noloadfor insuficiente, não conheço nenhuma maneira de configurar um dispositivo somente leitura com apenas uma entrada fstab; você pode precisar chamar blockdev --setroou criar um dispositivo de loop somente leitura ( losetup --read-only) por algum outro meio antes de seu sistema de arquivos ser montado.

Se você torná-lo verdadeiramente somente leitura, ele nem saberá que foi montado. Portanto, nenhuma atualização de contagem de montagens e nenhum fsck forçado e, especialmente, nenhuma corrupção possível, desde que nada seja gravado no dispositivo...

Responder2

Na tune2fspágina de manual:

   -c max-mount-counts
          Adjust the number of mounts after which the filesystem will be checked by e2fsck(8).  If max-mount-counts is 0 or -1, the number
          of times the filesystem is mounted will be disregarded by e2fsck(8) and the kernel.

          Staggering  the mount-counts at which filesystems are forcibly checked will avoid all filesystems being checked at one time when
          using journaled filesystems.

          You should strongly consider the consequences of disabling mount-count-dependent checking entirely.  Bad  disk  drives,  cables,
          memory, and kernel bugs could all corrupt a filesystem without marking the filesystem dirty or in error.  If you are using jour-
          naling on your filesystem, your filesystem will never be marked dirty, so it will not normally be checked.  A  filesystem  error
          detected  by the kernel will still force an fsck on the next reboot, but it may already be too late to prevent data loss at that
          point.

          See also the -i option for time-dependent checking.

e:

   -i  interval-between-checks[d|m|w]
          Adjust the maximal time between two filesystem checks.  No postfix or d result in days, m in months, and w in weeks.  A value of
          zero will disable the time-dependent checking.

          It  is  strongly recommended that either -c (mount-count-dependent) or -i (time-dependent) checking be enabled to force periodic
          full e2fsck(8) checking of the filesystem.  Failure to do so may lead to filesystem corruption due to bad disks, cables, memory,
          or kernel bugs to go unnoticed until they cause data loss or corruption.

Então você pode definir ambos como zero, o que deve desabilitar fsckos automáticos (assumindo que vocêna verdadequero fazer isso, no entanto).

Responder3

Deixando minha outra resposta por motivos históricos e contextuais, mas relendo estou vendo sua pergunta real: Sim, você ainda quereventualmentefaça um fsck. Todos os discos têm uma vida finita e fsckalocarão setores defeituosos para um inode/lista de "blocos defeituosos" para que nenhum novo arquivo os utilize.

Ser somente leitura (e fazer as noloadcoisas sobre as quais frotschutz está falando) ajuda a evitar problemas de consistência devido à interrupção do serviço, mas você ainda precisa levar em conta o fato de seu hardware simplesmente estar morrendo.

informação relacionada