Simfs ハードリンクの所在

Simfs ハードリンクの所在

Centos 6.5 VPS サーバーで奇妙なハードリンクを取得しました。これは人為的なものだと思いますが、私が作成したものではありません。

dfいくつかの情報を伝えます。

[root@root]# df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/simfs     209715200 128660820  81054380  62% /
none             4194304         4   4194300   1% /dev
none             4194304         0   4194304   0% /dev/shm
/dev/simfs     209715200 128660820  81054380  62% /var/www/username/data/www/test.site.biz/photo

ls -li何も役に立たない

[root@vz65646 test.site.biz]# ls -li
total 7952
79435160 drwxr-xr-x 2 someuser someuser 8130560 Oct 25 20:52 photo

ハードリンクされたフォルダーですphoto。誤って、rm -rf test.site.biz悪いことが起こりました。つまり、他の場所の写真ディレクトリがクリーンになりました。

データの復元は不可能だと思います。しかし、同じ間違いを二度と繰り返さないように、ここで何が起こったのか理解したいと思います。

ヒントがあれば大歓迎です。

答え1

同じデバイス名、同じディスク使用量など、類似した特性を持つ 2 つのファイルシステムがマウントされています。これらは、実際には同じデバイスである可能性が非常に高いです。たとえば、同じネットワーク ファイルシステムを異なる場所にマウントすると、このような状況になることがあります。これはローカル ファイルシステムであるため、ソースジェダイコメントで特定された場合、これはバインドマウントのようなコマンドによって作成されますmount --bind /origin /var/www/username/data/www/test.site.biz/photo

システムが最新であれば、findmntバインドマウントであることを確認するために使用しますしかし、いずれにせよ、ほとんどのファイルシステムの種類は異なる場所に同時にマウントすることはできないため、同じデバイスがあることは、これがバインドマウントであることの十分な証拠となります。

バインド マウントは、別の場所にあるディレクトリ ツリーのビューを提供します。バインド マウントの下のファイルにアクセスするという点では、ツリー内にシンボリック リンクがあることに似ています。つまり、 は/var/www/username/data/www/test.site.biz/photo/somefileと同じファイルであり、へのシンボリック リンクである/origin/somefileかのように扱われます。ただし、はシンボリック リンクではなく、ディレクトリです。/var/www/username/data/www/test.site.biz/photo/origin/var/www/username/data/www/test.site.biz/photo

/var/www/username/data/www/test.site.biz/photoはディレクトリなので、再帰的なトラバーサルはそこへ降りていきます。 と は同じディレクトリですが、たまたま別の場所に表示されているだけなので、rm -rfの下のファイルは削除されました/original/original/var/www/username/data/www/test.site.biz/photo

答え2

この件に関して私が考えたことはいくつかあります。

  • mount --bind自分が何をしているのか正確に理解するまでは、これは悪い考えです。シンボリックリンクを使用する方がよいでしょう。
  • フォルダーを操作しているときにマウントを検出するのはかなり困難です。これは一種のサーバー スコープです (フォルダーを移動するときに考えるものではありません)。
  • umount your_directoryバインドは削除されますが、元のフォルダーには影響しません。
  • コマンドを使用してすべてのマウントを一覧表示できますfindmnt。バインドされたマウントには角括弧が付きます。

関連情報