私は、jpegファイルをオンラインで管理するサービスのDevOpsの立場で働いています。残念ながらデプロイがあり、メディアファイル(jpeg)は完全になくなっています。私たちの損失はおそらく単純であり、回復可能かもしれないと私は予想しています。どういうわけか、jpegファイルを含むサブディレクトリを含むディレクトリがリンク解除されたと思います。この場合、それらを回復できるはずです。
私はほとんどすぐに損失に気づきました、そして幸いなことに私たちはその時点でオンラインのユーザーがいませんでした。サービスを停止し、サーバーを停止しました。私は、ファイルシステムへのこれ以上の書き込みを防ぐために、書き込みを回避することがファイルの回復に不可欠であると考えてそれを行いました。
DigitalOceanでUbuntu16.04を実行しています。 DigitalOceanのリカバリモードを使用してサーバーをバックアップしました。これにより、仮想ホストを実行せずに、また仮想ホストで実行しているサービスを実行せずに、特定の仮想ホストのファイルシステムをマウントできます。これは、あらゆる形式のリカバリを実行するために十分かつ正しいはずです。
リカバリ用のデータを書き込む場所が必要です。そのために、同じデータセンターのDigitalOceanに別のサーバーがあります(残念ながらSFO1)。 sshfsを使用してそのホストのファイルシステムをマウントしました。仮想ホストのファイルシステム(リカバリモード)からこの他のホストにsshfsを介してリカバリデータを書き込むことができるはずです。
リカバリを実行するために次のユーティリティを選択しました: PhotoRec
そのユーティリティは、実際にはPhotoRecとTestDiskの2つのユーティリティです。
回復したいホストのファイルシステムはext4です。 PhotoRecはext4をサポートしています。 TestDiskはext4をサポートしていない可能性があります。ドキュメントによると、データがまだそこにあり、ほとんど破損していない場合は、PhotoRecを使用してデータを回復できるはずです。
df -Th
を実行したときの出力は次のとおりです。回復したいファイルシステムは/dev/vda1
で、タイプはext4
で、/mnt
を介してマウントされます。 tmpfsである/lib/live/mount/overlay
にphotorecをインストールしました。同じデータセンター内のsshfsを介して別のホストをマウントし、復元されたデータを次の場所に配置しました。
root@xxxx-xxxxxx-xxxxxxxxx:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs tmpfs 1.6G 6.2M 1.6G 1% /run
/dev/sr0 iso9660 251M 251M 0 100% /lib/live/mount/medium
/dev/loop0 squashfs 220M 220M 0 100% /lib/live/mount/rootfs/rescue_rootfs.squashfs
tmpfs tmpfs 7.9G 14M 7.9G 1% /lib/live/mount/overlay
overlay overlay 7.9G 78M 7.8G 1% /
tmpfs tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
[email protected]:/ Fuse.sshfs 311G 13G 298G 5% /mnt2/xxxxxx-xxxxxx-xxxxxx
/dev/vda1 ext4 311G 41G 270G 14% /mnt
photorec
を実行すると、次のように表示されます。
>Disk /dev/sr0 - 252 MB / 250 MiB (RO) - QEMU DVD-ROM
リカバリを実行したいファイルシステムがまったく表示されません。あれは:
/dev/vda1 ext4 311G 41G 270G 14% /mnt
ファイルシステムをマウントした状態でこれを試しました。しかし、いくつかのオンラインドキュメントで、一部のファイル回復ツールではファイルシステムをマウントしない必要があることがわかりました(これは私には奇妙に思えます-それはどのように機能するはずです)。だから私はそれをマウントせずに実行しようとしましたが、同じことです:それは見るだけです:
>Disk /dev/sr0 - 252 MB / 250 MiB (RO) - QEMU DVD-ROM
photorec
を取得して私のファイルシステムを表示することに関して誰か提案がありますか?
/dev/vda1 ext4 311G 41G 270G 14% /mnt
私はいくつかのバックアップを持っていますが、残念ながら、私は約7日分のバックアップされていない写真を持っています。理論的には、それらがなくても生活し、クライアントに連絡してデータを取得し、再処理して再投稿することができます。しかし、いくつかのボタンを数回クリックするだけで、ファイルシステムに到達できない可能性が高いこのデータを取り戻すことができれば理想的です。
この目的のためにphotorec
を使用するのを手伝ってください。失われた/失われたファイルを回復する方法に関する他の提案と同様に、理想的です。
ありがとう!
どのブロックデバイスを使用するかをphotorecに明示的に指示できます。 photorec /dev/vda1
。マウントしないでください。
もちろん、photorecの前に、extundelete
を使用してみてください。これにより、ext *ファイルシステム上のファイルの削除がより迅速に行われる可能性があります。繰り返しますが、マウントしないでください。
そしてもちろん、バックアップに進む準備をしておく必要があります。