Recuperando um volume NTFS no Linux

Você possui um volume, partição ou disco formatado em NTFS (o sistema de arquivos do Windows) e que está em modo somente leitura, impedindo a gravação de arquivos a partir do Linux!? Segue lendo para descobrir como resolver…

O sistema de arquivos do Windows (o NTFS) é muito intolerante com relação a falhas de energia e eventualmente eles ficam inconsistentes impedindo que sejam gravados a partir do Linux.

Se você estivesse no Windows, ele o alertaria ou repararia o sistema durante um próximo boot, mas no Linux ele será montado em modo somente-leitura e será preciso tomar algumas ações manuais para que ele fique novamente gravável.

O comando que permite reparar o sistema de arquivos NTFS no Linux, similar ao “chkdsk” do Windows é o “ntfsfix” que deve ser executado com privéligios de root.

Tão logo o sistema seja corrigido você pode forçar a montagem em modo de gravação que tudo estará normal.

A correção

Vamos supor então que você tenha um disco externo mapeado em /dev/sdb1 e que precisa ser reparado. O comando “ntfsfix” (do pacote ntfs-3g) corrigirá a inconsistência existente, como abaixo:

sudo ntfsfix /dev/sdb1
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.

Uma vez que o disco esteja reparado, você poderá montá-lo novamente com permissão de gravar dados nele.

Uma função que faz o serviço [quase] completo

Particularmente, eu uso uma função em shellscript no meu ~/.bashrc que se parece com isso:

fixntfs() {
  [ -z "$1" ] && return 1
  sudo ntfsfix "/dev/$1" && \
  sudo umount "/dev/$1" && \
  sudo mount "/dev/$1"
}

Assim, toda vez que meu disco NTFS está com problemas, basta eu invocar a função pela linha de comandos e meus problemas serão resolvidos:

fixntfs sdb1

Se eu não fornecer a partição a função sai com erro 1, do contrário o comando ntfsfix será invocado para corrigir a partição defeituosa.

Somente no caso da correção ser executada é que a partição será rapidamente desmontada e montada novamente em modo de gravação resolvendo o problema em definitivo.

Por fim

Antes de finalizar é importante lembrar que o comando ntfsfix faz parte do pacote ntfs-3g. Se você já tiver o costume de acessar discos do Windows pelo seu sistema Linux então ela já estará disponível, do contrário, não esqueça de instalar o pacote correspondente.

E ainda, na função que apresentei não há qualquer validação quanto ao sistema de arquivos, o que fica por conta do próprio comando ntfsfix realizar. Isso não é problema se você souber o que está fazendo (não execute esta função em partições não NTFS), mas se você espera que algum leigo use isso, é bom se cercar de validações para evitar que o pior aconteça.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.