Como remover um diretório vazio (sistema de arquivos btrfs)?

3

Estou usando o sistema de arquivos experimental btrfs .

Meu diretório é assim:

 ls -la empytfolder
 total 4
 drwxr-xr-x 1 root root   0 19. Mär 14:00 .
 drwxr-xr-x 1 root root 298 19. Mär 13:59 ..

Eu tentei removê-lo com rm -rf emptyfolder , mas ele dá o erro rm: cannot remove directory: directory not empty? Como posso remover / excluir minha pasta vazia? Por que eu tenho 4 arquivos nesta pasta? Estou tentando excluí-lo como usuário root. Meu sistema de arquivos é o btrfs.

stat emptyfolder me dá:

 Datei: „emptyfolder“
 Größe: 0           Blöcke: 0          EA Block: 4096   Verzeichnis
 Gerät: 21h/33d Inode: 256         Verknüpfungen: 1
 Zugriff: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
 Zugriff    : 2012-03-19 14:00:28.205205566 +0100
 Modifiziert: 2012-03-19 14:00:23.925025572 +0100
 Geändert   : 2012-03-19 14:00:23.925025572 +0100
 Geburt    : -

Tenho alguns problemas com o relógio do meu sistema. Às vezes, está mostrando a hora errada.

$ lsof +D emptyfolder
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/user
/.gvfs Output information may be incomplete.

O que é esse daemon gvfs-fuse? Como posso deletar?

Eu testei o fusor -uv / dev / disk sem sucesso. Não há nenhum processo acessando a pasta. Eu movi a pasta para tmp.

    
por Bytemain 19.03.2012 / 15:30

4 respostas

1

Experimente cd 'saindo do emptydir e executando lsof +D /path/to/emptydir para ver o que está aberto. Dependendo do que o diretório é e como ele é usado, talvez algo esteja abrindo e fechando o diretório muito rápido e você simplesmente o perceba quando não tem nada nele quando executa ls, mas tem algo quando executa rm -fr emptydir . Não deve fazer nenhuma diferença neste caso, mas tente também executar rmdir emptydir .

O número total na parte superior da sua saída ls (eu acho que insgesamt meants total?) indica um diretório vazio.

Acho que conhecer o tipo de sistema de arquivos também pode ser útil. Você provavelmente também deseja executar fsck e ver se isso ajuda.

    
por 19.03.2012 / 15:40
4

Eu tive sintomas semelhantes com uma partição btrfs e

btrfs check --repair /dev/sdXY

consertou o problema para mim. Os erros encontrados foram da forma:

root X inode Y errors 200, dir isize wrong

e

root X inode Y errors 80, file extent overlap

O segundo tipo de erro permaneceu mesmo após o reparo, o que começou a me preocupar.

    
por 27.04.2014 / 11:44
3

FAQ do Btrfs - não consigo excluir um diretório vazio:

First case, if you get:

rmdir: failed to remove ‘emptydir’: Operation not permitted 

then this is probably because "emptydir" is actually a subvolume.

You can check whether this is the case with:

btrfs subvolume list -a /mountpoint

To delete the subvolume you'll have to run:

btrfs subvolume delete emptydir

Second case, if you get:

rmdir: failed to remove ‘emptydir’: Directory not empty 

then you may have an empty directory with a non-zero i_size.

You can check whether this is the case with:

stat -c %s emptydir
3196         <-- unexpected non-zero size

Running btrfs check on that (unmounted) filesystem will confirm the issue and list other problematic directories (if any).

You will get a similar output (excerpt):

checking fs roots
root 5 inode 557772 errors 200, dir isize wrong
root 266 inode 24021 errors 200, dir isize wrong ...

Such errors should be fixable with btrfs check --repair provided you run a recent enough version of btrfs-progs.

Note that btrfs check --repair should not be used lightly as in some cases it can make a problem worse instead of fixing anything.

    
por 19.02.2015 / 13:27
2

Teve esse problema com um diretório órfão em uma caixa ReadyNAS. Compartilhar não era mais visível na GUI, mas o diretório abaixo / data estava existente até o momento. Então, eu queria remover essa pasta, mas o rmdir não funciona.

Eu apaguei o instantâneo pelo instantâneo

cd /data
btrfs subvolume delete ./VirtualBox1/.snapshots/309/snapshot
...
btrfs subvolume delete ./VirtualBox1/.snapshots/2/snapshot
btrfs subvolume delete ./VirtualBox1/.snapshots/1/snapshot
btrfs subvolume delete ./VirtualBox1/.snapshots

Após excluir todos os instantâneos, consegui remover a "pasta" em si

btrfs subvolume delete ./VirtualBox1
    
por 21.10.2015 / 07:58