%3F.png)
Estoy usando el btrfs
sistema de archivos experimental.
Mi directorio se ve así:
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 ..
Intento eliminarlo rm -rf emptyfolder
pero aparece el error rm: cannot remove directory: directory not empty?
¿Cómo puedo eliminar/eliminar mi carpeta vacía? ¿Por qué tengo 4 archivos en esta carpeta? Estoy intentando eliminarlo como usuario root. Mi sistema de archivos es btrfs.
stat emptyfolder
me da:
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 : -
Tengo algunos problemas con el reloj de mi sistema. A veces muestra la hora equivocada.
$ lsof +D emptyfolder
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/user
/.gvfs Output information may be incomplete.
¿Qué es este demonio gvfs-fuse? ¿Cómo puedo eliminarlo?
Probé fuser -uv /dev/disk sin éxito. No hay ningún proceso que acceda a la carpeta. Moví la carpeta a tmp.
Respuesta1
Preguntas frecuentes de Btrfs: no puedo eliminar un directorio vacío:
primer caso, Si lo consigues:
rmdir: failed to remove ‘emptydir’: Operation not permitted
entonces esto probablemente se deba a que "emptydir" es en realidad un subvolumen.
Puedes comprobar si este es el caso con:
btrfs subvolume list -a /mountpoint
Para eliminar el subvolumen tendrás que ejecutar:
btrfs subvolume delete emptydir
Segundo caso, Si lo consigues:
rmdir: failed to remove ‘emptydir’: Directory not empty
entonces es posible que tenga un directorio vacío con un i_size distinto de cero.
Puedes comprobar si este es el caso con:
stat -c %s emptydir 3196 <-- unexpected non-zero size
La ejecución
btrfs check
en ese sistema de archivos (desmontado) confirmará el problema y enumerará otros directorios problemáticos (si los hay).Obtendrá un resultado similar (extracto):
checking fs roots root 5 inode 557772 errors 200, dir isize wrong root 266 inode 24021 errors 200, dir isize wrong ...
Estos errores deberían poder solucionarse
btrfs check --repair
siempre que ejecute una versión suficientemente reciente de btrfs-progs.Tenga en cuenta que
btrfs check --repair
no debe usarse a la ligera, ya que en algunos casos puede empeorar el problema en lugar de solucionarlo.
Respuesta2
He tenido síntomas similares con una partición btrfs y
btrfs check --repair /dev/sdXY
solucionó el problema para mí. Los errores encontrados fueron de la forma:
root X inode Y errors 200, dir isize wrong
y
root X inode Y errors 80, file extent overlap
Sin embargo, el segundo tipo de error persistió incluso después de la reparación, lo que empezó a preocuparme.
Respuesta3
Tuve este problema con un directorio huérfano en una caja ReadyNAS. El recurso compartido ya no estaba visible en la GUI, pero el directorio debajo de /data existía hasta ahora. Entonces quería eliminar esta carpeta pero rmdir no funciona.
Eliminé instantánea por instantánea
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
Después de eliminar todas las instantáneas, pude eliminar la "carpeta" misma.
btrfs subvolume delete ./VirtualBox1
Respuesta4
Intente cd
salir del directorio vacío y ejecutarlo lsof +D /path/to/emptydir
para ver qué lo tiene abierto. Dependiendo de cuál sea el directorio y cómo se usa, tal vez algo esté abriendo y cerrando el directorio muy rápido y simplemente lo detectas cuando no tiene nada cuando ejecuta ls pero sí tiene algo cuando ejecuta rm -fr emptydir
. En este caso no debería haber ninguna diferencia, pero intenta ejecutar también rmdir emptydir
.
El número total en la parte superior de su ls
salida (supongo que insgesamt significa total?) indica un directorio vacío.
Creo que conocer el tipo de sistema de archivos también puede resultar útil. Probablemente también quieras ejecutarlo fsck
y ver si eso ayuda.