私の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を実行して修正することです。
- 実行
mount
してデバイス名を確認してください。私のもの/dev/mapper/vg3-lv3
umount /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
xfs_repair /dev/mapper/vg3-lv3
これはリンクが変更されたことを示します。resetting inode 4392587948 nlinks from 3 to 2
resetting inode 12983188890 nlinks from 1 to 2
誤って接続された他のインデックスノードがあることがわかりました。
すべての助けに感謝します。しかし、私はxfs_repairの黒魔法を使って私の問題を解決しました。
答え2
フォルダ/ディレクトリのプロパティに "私- 不変性が有効になっています!確認してください。 lsattr コマンドはフォルダ/ディレクトリに「私「*」でオフにすると有効になります。
シャルトルイフォルダ'
* 'を選択して目的の操作を実行できます。