sudo rm -rf は、ルートが所有する空のディレクトリから「ディレクトリを削除できません」を返します。

sudo rm -rf は、ルートが所有する空のディレクトリから「ディレクトリを削除できません」を返します。

私のDebianシステムにディレクトリがあります。ディレクトリは次のとおりです。

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

ディレクトリが空です。

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

しかし、私のシステムはそうは思いません。

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

なぜこのようなことが起こっているのか分からないし、今後の道を見つけることができない。誰でも助けることができますか?

私が見つけた以前の質問のどれも、この特定の問題を解決できませんでした。ただし、同様の投稿で見たいくつかの問題を解決するには、次の手順を実行します。

a.) フォルダーは、以前に複数回削除された多くのフォルダーを以前に作成した実行中のプロセスによって作成されました。この特別な質問が詰まっています。

b.) 今はこのディレクトリに何も記録してはいけません。私はこれを何度も確認しましたが、ls -al出力は常に何も返しません。

c.) lsofを確認しましたが、ディレクトリに何も開いていません。

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

d.) rm他のものに対するエイリアシングはありません。これはDebianと非常によく似ています...rmコアBashプログラム(例:など)に対して特別なことはしません。

e.) 名前の変更は許可されますが、削除はまだできません。

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

**参考に、今後は「delete_me」と呼びます。名前を変更したのでそのままにします。

f.)これはこれを実行したときに返される唯一のディレクトリです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 には何も表示されません。

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

ベストアンサー1

答えを見つけました。 @JeffSchallerが提案したように、リンクに問題があります。解決策は、xfs_checkを実行してリンクが正しくないことを確認し、xfs_repairを実行して修正することです。

  1. 実行mountしてデバイス名を確認してください。私のもの/dev/mapper/vg3-lv3
  2. umount /3
  3. xfs_check /dev/mapper/vg3-lv3次を返します。

    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これはリンクが変更されたことを示します。

    resetting inode 4392587948 nlinks from 3 to 2

    resetting inode 12983188890 nlinks from 1 to 2

誤って接続された他のインデックスノードがあることがわかりました。

すべての助けに感謝します。しかし、私はxfs_repairの黒魔法を使って私の問題を解決しました。

おすすめ記事