sudo rm -rf restituisce “impossibile rimuovere la directory” su una directory vuota di proprietà di root


8

Ho una directory sul mio sistema Debian. La directory è:

root@debian:/3/20150626# stat 00
File: `00'
Size: 6             Blocks: 0          IO Block: 4096   directory
Device: fe00h/65024d    Inode: 4392587948  Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-06-25 20:00:00.086150791 -0400
Modify: 2015-07-07 12:39:04.174903234 -0400
Change: 2015-07-07 12:39:04.174903234 -0400
Birth: -

La directory è vuota:

root@debian:/3/20150626# ls -al 00
total 0
drwxr-xr-x 3 root root  6 Jul  7 12:39 .
drwxr-xr-x 3 root root 23 Jul  7 12:56 ..

Ma il mio sistema non la pensa così:

root@debian:/3/20150626# rm -rf 00
rm: cannot remove `00': Directory not empty

Non so perché ciò accada né sono in grado di trovare un modo per andare avanti. Qualcuno può fornire assistenza?

Nessuna delle precedenti domande che ho potuto individuare ha risolto questo problema specifico. Ma, per rispondere ad alcune delle domande che ho visto poste su post simili:

a.) La cartella è stata creata da un processo in esecuzione, che ha creato molte cartelle in precedenza e queste cartelle sono state rimosse molte volte in precedenza. Questo specifico è bloccato nel limbo.

b.) Non ci dovrebbe essere nulla scritto in questa directory ora. Ho controllato molte volte e l' ls -aloutput non restituisce sempre nulla.

c.) Ho controllato lsof e non c'è nulla aperto per questa directory:

root@debian:/3/20150626# lsof 00
root@debian:/3/20150626# 

d.) rmnon è aliasato per nient'altro. È abbastanza vicino allo stock di Debian ... niente di speciale fatto con nessuno dei principali programmi di Bash come rm, ecc.

e.) La ridenominazione è consentita ma non è ancora possibile eliminare:

root@debian:/3/20150626# mv 00 delete_me
root@debian:/3/20150626# ls -al
total 0
drwxr-xr-x 3 root root  30 Jul  7 13:45 .
drwxr-xr-x 7 root root 105 Jul  7 12:57 ..
drwxr-xr-x 3 root root   6 Jul  7 12:39 delete_me
root@debian:/3/20150626# rm -rf delete_me
rm: cannot remove `delete_me': Directory not empty
root@debian:/3/20150626# ls -al delete_me/
total 0
drwxr-xr-x 3 root root  6 Jul  7 12:39 .
drwxr-xr-x 3 root root 30 Jul  7 13:45 ..

** Nota, di seguito denominato "delete_me" da quando l'ho rinominato e ho intenzione di seguire il flusso.

f.) Questa è l'unica directory che viene restituita quando corro findsu di essa.

root@debian:/3/20150626# find / -type d -name delete_me
/3/20150626/delete_me
root@debian:/3/20150626# find delete_me
delete_me

g.) lsattr non mostra nulla:

root@debian:/3/20150626# lsattr
---------------- ./delete_me

1
È possibile rinominare la directory?
Jenny D,

2
La parte "Link: 3" salta fuori da me; sembra che potresti avere una sottodirectory. Che cosa restituisce "trova 00"?
Jeff Schaller

Aggiornato la mia domanda con una risposta alla tua, @JennyD
harperville,

1
Hai controllato lsattrper vedere se ci sono attributi speciali assegnati ad esso?
Caja

2
Mi sembra sempre più probabile che questo processo in esecuzione dall'elemento (a) si attenga a una sottodirectory di "delete_me" in qualche modo. Puoi interrompere questo processo in esecuzione, quindi ricontrollare l' statoutput (e / o riprovare a rmdir)?
Jeff Schaller

Risposte:


1

Ho trovato la risposta Qualcosa non andava nel collegamento, come suggerito da @JeffSchaller. La soluzione è eseguire xfs_check per verificare che i collegamenti non siano corretti, quindi xfs_repair per risolverli.

  1. eseguire mountper visualizzare il nome del dispositivo. Il mio è/dev/mapper/vg3-lv3
  2. umount /3
  3. xfs_check /dev/mapper/vg3-lv3 che ha restituito il seguente:

    link count mismatch for inode 4392587948 (name ?), nlink 3, counted 2

    link count mismatch for inode 12983188890 (name ?), nlink 1, counted 2

  4. xfs_repair /dev/mapper/vg3-lv3 che indicava che i collegamenti erano corretti:

    resetting inode 4392587948 nlinks from 3 to 2

    resetting inode 12983188890 nlinks from 1 to 2

Ho scoperto che avevo un altro inode collegato in modo errato.

Grazie per tutto l'aiuto ma usando la magia nera di xfs_repair, il mio problema è risolto.


-1

Hai provato a verificare che gli attributi della cartella / directory abbiano l'attributo " i " - imutable è attivo! Verificare con il comando lsattr per verificare che la cartella / directory abbia l'attributo " i " attivato se lo si spegne con "*

chattr -i ' cartella '

* "Con questo è possibile eseguire l'attività desiderata.


1
L' -iattributo su un file / cartella non impedisce che venga visualizzato, tuttavia dove vedi che -iè impostato? Uscita di OP sta affermando il contrario
kos
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.