![Simfs ハードリンクの所在](https://rvso.com/image/97219/Simfs%20%E3%83%8F%E3%83%BC%E3%83%89%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E6%89%80%E5%9C%A8.png)
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
。バインドされたマウントには角括弧が付きます。