このディレクトリを削除するにはどうすればよいですか? fsck
を実行しましたが、ゴミが見つかりました。これらのファイルを調べたところ、重要なものはありませんでした。だから私は/lost+found
の内容を削除しようとしましたが、この奇妙なディレクトリ以外はすべてなくなっています。 /tmp
(ボリューム全体にそのディレクトリを移動できます)に置くと、次回の再起動時にそれが消去されますが、再起動と別のfsck
の両方の後にまだ残っていると思いました。
問題は低レベルであり、所有権と権限で遊ぶだけでは十分ではないようですので、自分で問題を再現できるようにしました。お楽しみください!
dd if=/dev/sda1 of=/files/broken.iso
の結果です;〜1.2GBのイメージで15MBのアーカイブを作成しました。次のコマンドを使用して、ダウンロードしてそれを実行できます。
cd /tmp
wget https://dl.dropboxusercontent.com/u/22701362/broken.tar.xz
tar xvf broken.tar.xz
mkdir test
Sudo mount broken.iso test
cd test
2つのディレクトリがあります(そのイメージの作成中に、ディスクにそのようなディレクトリが2つあるように見えます)。
/tmp/test> tree
.
├── 1
│ └── plexus-component-annotations-1.5.5.jar.sha1 [error opening dir]
└── 2
└── #1589030 [error opening dir]
4 directories, 0 files
これらの2つのディレクトリを削除してください。
/tmp/test> Sudo rm -rf *
rm: cannot remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
rm: cannot remove '2/#1589030': Operation not permitted
/tmp/test> Sudo chown -R root:root *
chown: changing ownership of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chown: cannot read directory '2/#1589030': Permission denied
/tmp/test> Sudo chmod -R 777 *
chmod: changing permissions of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chmod: changing permissions of '2/#1589030': Operation not permitted
chmod: cannot read directory '2/#1589030': Permission denied
1つの可能性は、extファイルシステムの場合の不変フラグです。 lsattr
コマンドの出力を参照してください。 i
が存在する場合は、chattr -i filename
で削除できます
「i」属性を持つファイルは変更できません。削除または名前変更することはできません。このファイルへのリンクを作成することも、ファイルにデータを書き込むこともできません。この属性を設定またはクリアできるのは、スーパーユーザーまたはCAP_LINUX_IMMUTABLE機能を持つプロセスのみです。
この場合、何か他のことが起こっています
これはうまくいくようです、
> lsattr 1
-----a---------- 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1
rmdir: failed to remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
> chattr -a 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1
> lsattr 2
---D-ad--j--T--- 2/#1589030
> chattr -D -a -d -j -T 2/\#1589030
> rmdir 2/\#1589030
それを削除するためにそれを所有するユーザーになってみてください
Sudo -u 6666 -g 19312 rm -rf ./#1589030