lost + foundの削除できないディレクトリ


10

このディレクトリを削除するにはどうすればよいですか?私はそうしましたfsck、そして、それは若干のゴミを見つけました、私はこれらのファイルを調べました、そして、重要な何かがありませんでした。だから私は内容を削除しようとしましたが、/lost+foundこの奇妙なディレクトリを除いてすべてがなくなっています。それを置くと/tmp(ボリューム全体でそのdirを移動できます)、次回の再起動時に消去されると思いましたが、再起動と別の再起動の両方でまだ残っていfsckます。

問題は低レベルであり、所有権と権限を操作するだけでは十分ではないようなので、問題を自分で再現できるようにしました。楽しい!

  • これは安全です。イメージをアンマウントして、マシン上のこれらのディレクトリを取り除くことができます
  • これはISOイメージではありませんdd if=/dev/sda1 of=/files/broken.isoこれはの結果です

15MBのアーカイブを作成しましたが、その画像は約1.2GBです。次のコマンドを使用して、ダウンロードしてそれを使用できます。

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

どのように/tmp同じボリューム上?の出力を投稿できますdfか?また、sudo perl -MFile::Path -e 'rmtree("/tmp/foo") || die "$!"'より有益なエラーメッセージが表示される場合に備えて、の出力を投稿してください。
terdon 2016

@terdon質問に出力を追加しました。出力は少しでも役立つと思いますか?
2016

1
さて、df出力は、/ tmp`が実際には通常のディレクトリで/あり、デフォルトのセットアップであるtmpfsではないことを示しています。これは驚くべきことですが、dirをにコピーできる/tmp理由と、再起動しても生き残る理由の両方を説明しています。perl出力は本当にいや、あまり追加しませんが、それはショットの価値がありました。ここでストローをつかんでいます。
terdon

offtopic:Ubuntuでは/tmpデフォルトで通常のディレクトリです。これは、100%に達するのを防ぎ、RAMを節約するために行われます。起動時にクリーンアップされます。この動作は長い間存在します。
悲しみ

livecdから起動して、ファイルシステムを調べてみます。
ジャーニーマンオタク2016

回答:


8

1つの可能性は、extファイルシステムの場合の不変フラグです。lsattrコマンドの出力を参照してください。存在する場合はichattr -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か?画像をダウンロードしてマウントし、自分で試していただければ幸いです。
悲しみ

これは「ISOイメージ」ではなく、次の結果ですdd if=/dev/sda1 of=broken.iso
悲しみ

はい、あなたはおそらく正しい、ごめんなさい!問題を再現する機会がありましたか?
悲しみ

1
はい、そしてそれは本当に奇妙に見えます。
JJハカラ2016

私は今ばかばかしく感じています:(しかし、あなたは私の日のヒーローです、JJハカラさん
悲しみ

1

それを所有するユーザーになって削除してみてください

sudo -u 6666 -g 19312 rm -rf ./#1589030

sudo -u '#6666' -g '#19311' rm -rf \#1589030 rm: cannot remove '#1589030': Permission denied sudo -u '#6666' -g '#19311' chmod 777 \#1589030 chmod: cannot access '#1589030': Permission denied
悲しみ

ユーザーが存在しない場合はユーザーより作成する必要があります
Amias

これらのUIDとGIDを使用してユーザーとグループを作成しても効果がありませんでした
Grief
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.