
é possível executar o reparo do xfs reeditando o arquivo fstab?
/dev/mapper/vg-linux_root / xfs defaults 0 0
UUID=7de1dc5c-b605-4a6f-bdf1-f1e869f6ffb9 /boot xfs defaults 0 0
/dev/mapper/vg-linux_var /var xfs defaults 0 0
/dev/mapper/vg-linux_swap swap swap defaults 0 0
Não tenho certeza, mas substitua o último número de 0 por 1, certo?
Responder1
Não, apenas editar /etc/fstab não pode fazer com que xfs_repair seja executado.
Para outros tipos de sistemas de arquivos, funcionaria. Mas o XFS é especial aqui.
Alterar o 6º campo para /etc/fstab
um valor diferente de zero em um sistema de arquivos XFS fará com que o sistema seja executado fsck.xfs
, cuja página de manual diz:
NAME
fsck.xfs - do nothing, successfully
[...]
However, the system administrator can force fsck.xfs to run xfs_re‐
pair(8) at boot time by creating a /forcefsck file or booting the sys‐
tem with "fsck.mode=force" on the kernel command line.
Então, normalmente fsck.xfs
não fará nada.
Se você realmente deseja xfs_repair
executar na inicialização, há duas condições que devem ser atendidas:
a) O 6º campo /etc/fstab
deve ser diferente de zero para o sistema de arquivos XFS em questão, para que fsck.xfs
seja executado.
b) Um /forcefsck
arquivo deve existir no sistema de arquivos raiz (ou talvez dentro do initramfs, se estiver planejando verificar o sistema de arquivos raiz), ou a linha de comando do kernel deve ter a fsck.mode=force
opção de inicialização. Isso fará com fsck.xfs
que você execute xfs_repair
em vez de não fazer nada.
O que há de tão especial em xfs_repair, então?
O sistema de arquivos XFS e a xfs_repair
ferramenta assumirão que o disco subjacente está em boas condições, ou pelo menos é capaz de substituir de forma transparente blocos defeituosos por blocos sobressalentes integrados (como fazem todos os discos modernos). Se um disco moderno tiver blocos defeituosos persistentes visíveis para o sistema operacional, isso geralmente significa que o mecanismo de bloco sobressalente integrado já foi sobrecarregado pela quantidade de blocos defeituosos e, de qualquer maneira, o disco provavelmente irá falhar completamente em breve.
A página de manual xfs_repair
diz:
Disk Errors
xfs_repair aborts on most disk I/O errors. Therefore, if you are trying
to repair a filesystem that was damaged due to a disk drive failure,
steps should be taken to ensure that all blocks in the filesystem are
readable and writable before attempting to use xfs_repair to repair the
filesystem. A possible method is using dd(8) to copy the data onto a
good disk.
Portanto, você provavelmente não deve configurar xfs_repair
a execução automática em circunstâncias normais.
Se um sistema de arquivos XFS tiver erros, você deve sempre primeiro avaliar a condição do disco subjacente: smartctl -a /dev/<disk device>
pode ser útil, como pode ser usado dd
para ler todo o conteúdo da partição/LV /dev/null
e verificar se o comando pode ser concluído sem erros.
Se o disco estiver falhando, você deve primeiro copiar o conteúdo da partição/LV para um disco novo e livre de erros (talvez usando dd
ou ddrescue
), e só então você deve tentar executar xfs_repair
no sistema de arquivos no disco livre de erros.
A execução xfs_repair
automática no momento da inicialização pode ser uma solução alternativa apropriada se você souber que algo está causando erros no nível do sistema de arquivos, mesmo quando seus discos estiverem em boas condições. Mas isso é apenas uma solução alternativa, não uma correção: você deve descobrir o que está causando os erros do sistema de arquivos e corrigir a causa raiz. (Talvez um bug no driver do sistema de arquivos, exigindo um pacote de kernel atualizado para correção?)
Responder2
Se os arquivos contiverem /dev/sda
erros, você precisará executá fsck
-los. Lembre-se de que isso não reparará o disco em si, mas apenas os arquivos. Se o disco realmente apresentar erros e estiver falhando, é melhor substituí-lo e restaurar os dados de um backup, porque se ficar ruim o suficiente, você possivelmente terá perda de dados, especialmente se o disco morrer completamente.