Como reparar erro de I/O no `/mnt/user` causado por corrupção no XFS no Unraid

Tutorial passo a passo para diagnosticar e reparar erros de I/O no Unraid, incluindo parada de containers, desmontagem segura de disco, verificação com xfs_repair e reinicialização do serviço shfs para restaurar o acesso ao /mnt/user.

Como reparar erro de I/O no `/mnt/user` causado por corrupção no XFS no Unraid

:mag: Problema:

O acesso ao diretório /mnt/user ou /mnt/diskX apresentava o erro:

ls: cannot access '/mnt/user': Input/output error

Além disso, comandos como rm, chmod ou acesso via containers Docker falhavam com erro de I/O.


1. Diagnóstico inicial

Verifique o estado dos discos:

df -h

Veja os logs do sistema:

dmesg | grep -iE "shfs|error|fail|IO|XFS"

Identifique processos ativos no volume com erro:

lsof | grep /mnt/disk1

2. Interrompa serviços que usam o disco

Pare todos os containers Docker:

docker stop $(docker ps -q)

Mate o processo do shfs (se estiver travado):

ps aux | grep shfs
kill -9 <PID-do-shfs>

3. Desmonte o disco corrompido

umount /mnt/disk1

Se estiver ocupado, mate os processos usando:

lsof | grep /mnt/disk1
kill -9 <PID>

4. Reparar o disco com xfs_repair

Tente reparar normalmente:

xfs_repair /dev/md1p1

Se aparecer erro:

ERROR: The filesystem has valuable metadata changes in a log...

Use a opção de destruição do log:

xfs_repair -L /dev/md1p1

:warning: Atenção: a opção -L pode causar perda de metadados recentes, mas é segura se você já perdeu acesso ao disco.


5. Remonte o volume

mount /mnt/disk1

Verifique se tudo voltou:

ls -l /mnt/disk1
ls -l /mnt/user

6. Reinicie os containers

docker start $(docker ps -a -q)

Ou reinicie o sistema:

reboot

:white_check_mark: Conclusão

Este procedimento é eficaz para reparar corrupção no sistema de arquivos XFS no Unraid, quando ocorrem erros de Input/output que afetam o shfs e o /mnt/user.

Mantenha backups e monitore seus discos com smartctl regularmente para evitar problemas futuros.