TL; DR : Formatou um disco rígido externo com sistema de arquivos ext4, reparou-o usando fsck e tem um diretório lost+found
com milhares de arquivos desnecessários. Eu sei que lost+found
não pode ser excluído, mas como posso me livrar desses arquivos desnecessários e garantir que o fsck não repopule esses mesmos arquivos novamente na reinicialização?
Eu já li os seguintes links relevantes:
mas não conseguiu encontrar uma solução para o meu problema.
Comprei uma nova unidade e carreguei alguns GB de dados nela, mas queria começar do zero novamente, então excluí todos os arquivos da unidade por meio de $ rm -rf ./*
. Então notei que esta unidade estava formatada como uma unidade FAT e eu queria apenas uma partição ext4, então usei parted para formatar a unidade ( /dev/sda
):
$ sudo parted /dev/sda
(parted) p
<some output indicating 2 partitions on the drive>
(parted) rm 1
(parted) rm 2
(parted) p
<I verify that there are no more partitions>
(parted) mklabel gpt
<parted tells me that there's an existing filesystem that will be overwritten and I confirm>
(parted) mkpart primary ext4 0% 100%
<confirmation stuff as well>
(parted) p
<verify that all is as it should be... or so I thought>
(parted) q
Depois de sair e tentar montar o dispositivo, não consegui montar a nova partição. Ao verificar o sistema de arquivos, vi que a partição estava corrompida e tentei $ sudo fsck -y /dev/sda1
(sda1 é a nova partição única na unidade, formatada como ext4). Isso passou e formatou minha partição como ext2, então voltei e repeti as etapas de reformatação usando parted e tentei $ sudo fsck -yt ext4 /dev/sda1
e ela pareceu funcionar bem o suficiente.
Agora eu poderia montar o sistema de arquivos e ele continuava ext4. No entanto, existe um diretório lost+found
com milhares de arquivos dentro dele agora localizados na unidade. É de propriedade de root: root e mesmo com um $ sudo rm -rf lost+found
, não consigo excluí-lo. Ele continua cuspindo rm: cannot remove '#<name of file>': Operation not permitted
para cada arquivo que eu tente remover. Nem o chmod nem o chown ajudam a remover os arquivos localizados dentro deste diretório lost + found.
Eu então tentei $ sudo su
, então eu consegui # cd lost+found
e verifiquei os atributos dos arquivos com # lsattr
, mas ainda assim, como root, recebo lsattr: Operation not supported While reading flags on ./#<name of the file>
.
Não tenho necessidade de arquivos no sistema. Eu estava brincando com rsync entre minha máquina local e host e esses são todos os arquivos que eu deletei. Eu sei que não preciso de nenhum deles (eu tenho outros backups, além de todos esses arquivos presentes na minha máquina local), então eu só quero me livrar desse diretório lost+found
, mas ele está sendo bastante teimoso.
Então, com tudo isso dito:
O que devo fazer? Quais são meus próximos passos? Há mais alguma informação que eu deveria fornecer da saída do programa que poderia ajudar a descobrir isso?
Seria mais fácil apenas formatar a unidade novamente? Eu tentei fazer isso duas vezes já, mas toda vez que ele não vai montar sem um $ fsck -t ext4 /dev/sda1
(eu incluo o -y
flag lá também, já que eu não quero ficar com os milhões de confirmações que ele requer) e eu termino aqui de novo. Eu sei que esses arquivos lost+found
estão sendo gerados pelo programa fsck desde que eu passei a opção -y
para ele: existem partes da saída onde ele especifica que "existem dados existentes na unidade e podem ser recuperados, Então, fsck
deve mover esses arquivos para lost+found
? " e recebe automaticamente uma afirmação para que o diretório seja criado e preenchido com esses milhares de arquivos. É porque eu especifico esta partição como uma partição primária? Deve ser estendido em vez disso (apenas segurando arquivos de dados)?
Qualquer ajuda seria apreciada! Embora os arquivos não ocupem muito espaço no disco rígido (~ 1%), eu gostaria de receber ajuda para descobrir isso, pois quero entender por que mesmo o root não pode excluir esses arquivos e o que eu estou fazendo de forma terrivelmente errada formatando meus discos que acabo aqui toda vez.
Edições:
Depois de efetuar login como raiz através de $ sudo su
, eu pude visualizar os arquivos em lost+found
e tentei testar o diretório lost+found
para processos que estavam bloqueando o diretório e o primeiro arquivo que estava no diretório também para ver se alguma coisa estava usando:
$ sudo su
# lsof lost+found
<no output>
# fuser lost+found
<no output>
# lsof lost+found/#51817
<no output>
# fuser lost+found/#51817
<no output>
Parece que nenhum outro processo está bloqueando esses arquivos. Ao examinar com # lsattr
, há alguns arquivos com o sinal i
, mas há muitos mais sem esse sinalizador.
Além disso, como apontou @PabloBianchi nos comentários, como os sistemas de arquivos com formato ext * sempre terão um diretório lost+found
, esclareci a questão modificando o título: em vez de excluir o diretório, como posso limpá-lo? então os arquivos que eu sei que não preciso recuperar não perdem espaço no meu disco?