この記事の内容は、オープンソース ツール Extundelete を使用して、誤って削除されたデータを迅速に回復する方法に関するものです。必要な方は参考にしていただければ幸いです。
ファイルを誤って削除した後にデータを復元する方法
日常の使用では、必然的にデータが誤って削除されることがあります。この時点でデータを迅速かつ効果的に復元するにはどうすればよいでしょうか。 Alibaba Cloud 上のデータを復元するには、Alibaba Cloud コンソールを使用したバックアップされたスナップショットのロールバック、カスタム イメージのリカバリなど、さまざまな方法があります。
ビジネスの負荷分散と高可用性を実現するには、複数の ECS を購入します。
オブジェクト ストレージ OSS (オブジェクト ストレージ サービス) を使用して、静的な Web ページや大量の画像、ビデオ、その他の重要なデータを保存します。
このドキュメントでは、主に CentOS7 オペレーティング システムを例として使用し、オープン ソース ツール Extundelete を使用して、誤って削除したデータを迅速に復元する方法を紹介します。
Linux には、debugfs、R-Linux、ext3grep、extundelete などのオープン ソース データ回復ツールが多数あります。これら 2 つのツールの回復原理は、より一般的に使用されます。基本的には同じですが、extundelete の方が強力です。
Extundelete は、Linux ベースのオープンソース データ回復ソフトウェアです。 Alibaba Cloud のクラウド サーバーを使用する場合、データを誤って削除してしまった場合、Linux システムには Windows システムのごみ箱に似た機能がないため、このツールをすばやく簡単にインストールできます。
Extundelete は、ログと組み合わせた i ノード情報を使用して、必要なデータを検索して回復するために i ノードのブロックの場所をクエリできます。このツールの最も強力な点は、ext3/ext4 デュアルフォーマット パーティションの回復をサポートしていることです。ディスク全体のリカバリ機能は比較的強力です。
注データを誤って削除した後、最初に行うことは、削除されたデータが存在するディスクまたはディスク パーティションをアンインストールすることです。位置した。 。ファイルを削除した後、ファイルの inode ノードのセクター ポインタのみがクリアされ、実際のファイルはディスクにまだ保存されているため、ディスクが読み取り/書き込みモードでマウントされている場合、これらの削除されたファイルのデータ ブロックが残る可能性があります。オペレーティング システムがデータを再割り当てし、これらのデータ ブロックが新しいデータで上書きされると、データは実際に失われ、回復ツールは回復できなくなります。したがって、ディスクを読み取り専用モードでマウントすると、データ ブロック内のデータが上書きされるリスクを最小限に抑え、データ回復が成功する可能性が高まります。
注: 実際のオンライン回復プロセス中は、誤って削除したファイルが存在するハードディスクに extundelete をインストールしないでください。これにより、復元する必要のあるデータが完全に上書きされる可能性があります。操作の前にスナップショットのバックアップを作成します。
対象となる対象ディスク上のファイルを誤って削除し、ディスクへの書き込み等の操作を行っていないユーザー
Web サイトへのアクセスが少なく、ECS インスタンスの数が少ないユーザー
使用方法インストールするソフトウェアとバージョン: e2fsprogs-devel e2fsprogs gcc-c make (コンパイラなど) Extundelete-0.2.4
注: extundelete を実行するには libext2fs バージョン 1.39 以降が必要ですが、ext4 をサポートするには、e2fsprogs バージョン 1.41 以降が必要です (コマンド「dumpe2fs」を実行して実行し、出力されたバージョンを記録します)
注: 上記のバージョンは、ドキュメントが作成されたときのソフトウェアのバージョンです。ダウンロードしたバージョンは異なる場合があります。
extundelete ツールをデプロイしますwget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make #安装相关依赖和库
tar -xvjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4 #进入程序目录
./configure #如下图表示安装成功
make && make install
extundelete を使用してデータを誤って削除してから回復するプロセスをシミュレートします
1. ECS の既存のディスクと利用可能なパーティションを確認し、/dev/vdb のパーティションとフォーマットを行いますが、これは対象外です。ここでは、ディスク パーティションのフォーマット方法を紹介します。方法がわからない場合は、この文書をクリックして操作方法「データ ディスクのフォーマットとマウント」を参照してください。
fdisk -l
2. パーティション分割されたディスクを /zhuyun ディレクトリにマウントし、/zhuyun の下に新しいテスト ファイル hello を作成し、test を書き込みます。
mkdir /zhuyun #新建zhuyun目录 mount /dev/vdb1 /zhuyun #将磁盘挂载到zhuyun目录下 echo test > hello #写入测试文件
3. ファイルの MD5 値を記録します。md5sum コマンドは、削除前と復元後の 2 つのファイルの md5 値を生成および確認するために使用されます。
md5sum hello
4. hello ファイルの削除をシミュレートします。
rm -rf hello cd ~ fuser -k /zhuyun #结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步)
5. データ ディスクをアンマウントします。
umount /dev/vdb1 #任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用
6. Extundelete ツールを使用してファイルを回復します。
extundelete --inode 2 /dev/vdb1 #为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode
/usr/local/bin/extundelete --restore-inode 12 /dev/vdb1 #恢复删除的文件
このとき、コマンドを実行したディレクトリと同じ階層にRECOVERED_FILESディレクトリが表示されますので、復元されているか確認してください。
前後 2 つのファイルの md5 値を確認します。同じことは、回復が成功したことを示しています。
注:
--restore-inode 12 # --restore-inode 按指定的I节点恢复 --extundelete --restore-all # --restore-all 全部恢复
以上がオープンソース ツール Extundelete を使用して、誤って削除したデータを迅速に復元する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。