sudo rm -rf mengembalikan "tidak dapat menghapus direktori" pada direktori kosong yang dimiliki oleh root

8

Saya memiliki direktori di sistem Debian saya. Direktori tersebut adalah:

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: -

Direktori kosong:

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 ..

Tetapi sistem saya tidak berpikir begitu:

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

Saya tidak tahu mengapa ini akan terjadi juga saya tidak dapat menemukan cara untuk bergerak maju. Adakah yang bisa memberikan bantuan?

Tak satu pun dari pertanyaan sebelumnya yang dapat saya temukan memecahkan masalah khusus ini. Tetapi, untuk menjawab beberapa pertanyaan yang saya lihat ditanyakan pada posting serupa:

a.) Folder itu dibuat oleh proses yang berjalan, yang telah membuat banyak folder sebelumnya dan folder ini telah dihapus berkali-kali sebelumnya. Yang spesifik ini terjebak dalam limbo.

b.) Seharusnya tidak ada apa pun yang ditulis ke direktori ini sekarang. Saya telah memeriksa berkali-kali dan ls -alhasilnya selalu tidak menghasilkan apa-apa.

c.) Saya telah memeriksa lsof dan tidak ada yang terbuka untuk direktori ini:

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

d.) rmtidak alias apa pun. Cukup dekat dengan stok Debian ... tidak ada yang istimewa yang dilakukan dengan program inti Bash seperti rm, dll.

e.) Mengganti nama diizinkan tetapi masih tidak dapat menghapus:

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 ..

** Catatan, selanjutnya disebut sebagai "delete_me" sejak saya menamainya kembali dan saya hanya akan mengikuti arus.

f.) Ini adalah satu-satunya direktori yang dikembalikan ketika saya menjalankannya find.

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 tidak menunjukkan apa-apa:

root@debian:/3/20150626# lsattr
---------------- ./delete_me
Harperville
sumber
1
Apakah mungkin untuk mengganti nama direktori?
Jenny D
2
Bagian "Tautan: 3" melompat keluar untuk saya; sepertinya Anda mungkin memiliki subdirektori. Apa yang "temukan 00" kembali?
Jeff Schaller
Memperbarui pertanyaan saya dengan jawaban Anda, @ JennyD
harperville
1
Sudahkah Anda memeriksa lsattruntuk melihat apakah ada atribut khusus yang ditugaskan padanya?
Caja
2
Tampaknya semakin mungkin bagi saya bahwa proses menjalankan ini dari item (a) berpegang pada subdirektori "delete_me" dengan cara tertentu. Bisakah Anda menghentikan proses yang berjalan ini, kemudian memeriksa kembali statoutput (dan / atau coba lagi rmdir)?
Jeff Schaller

Jawaban:

1

Menemukan jawabannya. Ada yang salah dengan tautannya, seperti yang disarankan @JeffSchaller. Solusinya adalah menjalankan xfs_check untuk melihat bahwa tautannya salah, kemudian xfs_repair untuk memperbaikinya.

  1. jalankan mountuntuk melihat nama perangkat. punya saya/dev/mapper/vg3-lv3
  2. umount /3
  3. xfs_check /dev/mapper/vg3-lv3 yang mengembalikan yang berikut:

    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 yang menunjukkan bahwa tautan diperbaiki:

    resetting inode 4392587948 nlinks from 3 to 2

    resetting inode 12983188890 nlinks from 1 to 2

Ternyata saya memiliki inode lain yang tertaut salah.

Terima kasih atas semua bantuan selain menggunakan sihir hitam xfs_repair, masalah saya terpecahkan.

Harperville
sumber
-1

Anda mencoba memverifikasi bahwa atribut folder / direktori memiliki atribut " i " - imutable aktif! Periksa dengan perintah lsattr untuk memverifikasi bahwa folder / direktori memiliki atribut " i " aktifkan jika Anda mematikannya dengan "*

chattr -i ' folder '

* "Dengan ini Anda dapat melakukan tugas yang Anda inginkan.

Lelucon Sr. Oke
sumber
1
The -iatribut pada file / folder tidak mencegah dari muncul, namun di mana Anda melihat bahwa -iadalah set? Output OP menyatakan sebaliknya
kos