web-dev-qa-db-ja.com

外付けドライブのlost + foundディレクトリをクリアするにはどうすればよいですか?

TL; DR:外付けハードドライブをext4ファイルシステムでフォーマットし、fsckを使用して修復し、その上に何千もの_lost+found_ディレクトリがあります不要なファイル。 _lost+found_は削除できないことはわかっていますが、これらの不要なファイルを削除して、再起動時にfsckがこれらの同じファイルを再作成しないようにするにはどうすればよいですか?


次の関連リンクをすでに読みました。

しかし、私の問題の解決策を見つけることができませんでした。


新しいドライブを購入してそこに数GBのデータをロードしましたが、最初からやり直したいので、_$ rm -rf ./*_を使用してドライブ上のすべてのファイルを削除しました。次に、このドライブがFATドライブとしてフォーマットされていることに気付き、ext4パーティションのみが必要なため、partedを使用してドライブをフォーマットしました(_/dev/sda_):

_$ Sudo parted /dev/sda
(parted) p
<some output indicating 2 partitions on the drive>
(parted) rm 1
(parted) rm 2
(parted) p
<I verify that there are no more partitions>
(parted) mklabel gpt
<parted tells me that there's an existing filesystem that will be overwritten and I confirm>
(parted) mkpart primary ext4 0% 100%
<confirmation stuff as well>
(parted) p
<verify that all is as it should be... or so I thought>
(parted) q
_

終了してデバイスをマウントしようとした後、新しいパーティションをマウントできませんでした。ファイルシステムをチェックしたところ、パーティションが破損していることがわかり、_$ Sudo fsck -y /dev/sda1_を試しました(sda1は、ドライブ上の新しい唯一のパーティションで、ext4としてフォーマットされています)。これを実行してパーティションをext2としてフォーマットしたので、戻ってpartedを使用して再フォーマットの手順を繰り返し、_$ Sudo fsck -yt ext4 /dev/sda1_を試しましたが、十分に機能するようでした。

これでファイルシステムをマウントでき、ext4のままでした。ただし、_lost+found_ディレクトリがあり、その中に数千のファイルがドライブに置かれています。これはroot:rootが所有しており、_$ Sudo rm -rf lost+found_を使用しても削除できません。削除しようとするすべてのファイルに対して_rm: cannot remove '#<name of file>': Operation not permitted_を吐き出し続けます。 chmodもchownも、このlost + foundディレクトリ内にあるファイルの削除には役立ちません。

次に_$ Sudo su_を試してみたので、_# cd lost+found_を使用して_# lsattr_でファイルの属性を確認できましたが、ルートとしても_lsattr: Operation not supported While reading flags on ./#<name of the file>_を取得しています。

システム上のファイルは必要ありません。私はローカルマシンとホストの間でrsyncをいじっていましたが、それらはすべて削除したファイルです。私はそれらのどれも必要ないことを知っています(ローカルマシンに存在するすべてのファイルに加えて他のバックアップがあります)ので、このくっきりした_lost+found_ディレクトリを削除したいだけですが、かなり頑固です。


それで、それがすべて言ったので:

私は何をすべきか?私の次のステップは何ですか?これを理解するのに役立つ可能性のある、プログラム出力から提供する必要がある情報は他にありますか?

ドライブをもう一度フォーマットする方が簡単でしょうか?私はすでに2回試しましたが、毎回_$ fsck -t ext4 /dev/sda1_がないとマウントされません(ここにも_-y_フラグを含めます)。何百万もの確認が必要なため、 )そして私はここでもう一度終わります。 _lost+found_オプションを渡したので、これらの_-y_ファイルはfsckプログラムによって生成されていることがわかります。「ドライブ上に既存のデータがあり、回復できるので、fsckはこれらのファイルを_lost+found_に移動する必要がありますか? "そして、自動的に肯定が渡されるため、ディレクトリが作成され、これらの何千ものファイルが入力されます。このパーティションをプライマリパーティションとして指定したからですか?代わりに拡張する必要がありますか(データファイルのみを保持)?

何か助けていただければ幸いです!ファイルはハードドライブのスペースをあまり消費しませんが(〜1%)、rootでもこれらのファイルを削除できない理由と、私が何をしているかがひどく間違っていることを理解したいので、これを理解するのに役立ちます毎回ここで終わるドライブをフォーマットします。


編集:

_$ Sudo su_を介してrootとしてログインした後、_lost+found_内のファイルを表示し、_lost+found_ディレクトリ自体をテストして、ディレクトリをロックしていたプロセスと、ディレクトリも使用しているかどうかを確認します。

_$ Sudo su
# lsof lost+found
<no output>
# fuser lost+found
<no output>
# lsof lost+found/#51817
<no output>
# fuser lost+found/#51817
<no output>
_

他のプロセスがこれらのファイルをロックしているようには見えません。 _# lsattr_で調べると、iフラグの付いたファイルがいくつかありますが、このフラグのないファイルは他にもたくさんあります。

さらに、@ PabloBianchiがコメントで指摘したように、ext *形式のファイルシステムには常に_lost+found_ディレクトリがあるため、タイトルを変更することで質問を明確にしました:上記のディレクトリを削除する代わりに、どうすればクリアできるでしょうか。回復する必要がないことがわかっているファイルは、ドライブのスペースを無駄にしないのですか?

1
rainingimpala

タイプext4のパーティションを作成しても、ext4ファイルシステムはパーティションに配置されません。あなたが手に入れたものは、おそらく以前のファイルシステムから残ったもの/ジャンクでした。パーティションを作成したら、次のコマンドでファイルシステムを配置します。

Sudo mkfs.ext4 /dev/sda1

これは、空のlost + foundディレクトリのみが存在する空のファイルシステムである必要があります。

1
ubfan1