ファイルを削除してすぐに後悔したことがありますか?急いで返却する必要があります。しかし、ファイルが非常に新しく、まだバックアップされていない場合はどうなるでしょうか?幸いなことに、それに対してできることはあります。
rm: Remorseの略ですか?
rm
コマンドを実行すると、ますます後悔の念を抱きながらターミナル ウィンドウを見つめている自分に気づきます。ワイルドカードに小さな間違いが 1 つあると、意図したよりも多くの情報を消去してしまう可能性があります。
デフォルトの Linux ファイル システム、
ext4
i ノードを使用して 各ファイルに関するデータを保持し、inode テーブルを使用して i ノードを追跡します。 i ノードには、ファイルの名前、所有者、権限などのファイルに関するメタデータが含まれています。
ファイルを指すハード リンクへのエントリ ポイントも含まれます。各ファイルには少なくとも 1 つのハード リンクがあります。新しいハード リンクを作成するたびに、ハード リンクの数は 1 つずつ増加します。ハード リンクを削除するたびに、inode 内のハード リンクの数は 1 つずつ減ります。
inode が未使用 (再利用の準備ができている) としてマークした ファイルを削除する と、最後のハード リンクが削除されます。この問題が発生すると、ファイルはディレクトリの一覧に表示されなくなり、使用したりアクセスしたりできなくなります。
ただし、ファイルの内容を構成するデータはハード ドライブ上にまだ存在します。ただし、i ノードにパッチを適用して正しい情報を含めることができれば、ファイルは復元されます。もちろん、これはハード ドライブ上のファイルを構成するデータがそのまま残り、上書きされない場合にのみ機能します。
あるいは、新しい i ノードを作成し、古い i ノードから残っているデータをコピーして、欠落しているビットを置き換えることもできます。
それらは重要な活動です。通常、ファイルを誤って削除してしまうのは最悪の瞬間です。そのファイルは常に必要なときに、そして今必要になります。セクター エディターやその他のユーティリティを使用して作業する時間はありません。さらに、作成したばかりのファイルの場合は、まだバックアップされていない可能性が高いため、これらも役に立ちません。
ここで
testdisk
の出番です。使い方は簡単で、ファイルシステムに関する詳細で低レベルの知識は必要ありません。使い方を見てみましょう!
テストディスクのインストール
Ubuntu に
testdisk
インストールするには、次のコマンドを使用します。
sudo apt-get install testdisk
Fedora では、次のように入力する必要があります。
sudo dnf テストディスクをインストールします
Manjaro では、
pacman
を使用する必要があります。
sudo pacman -Sy テストディスク
テストディスクの使用
testdisk
はターミナル ウィンドウで実行されますが、基本的なインターフェイスを備えています。矢印キーを使用して移動し、Enter キーを使用して選択します。整理整頓するには、復元されたファイル用のディレクトリを作成することをお勧めします。
次のように入力して、復元されたファイル用に「restored」というディレクトリを作成します。
mkdirが復元されました
次のコマンドを入力して新しいディレクトリに切り替え、そこから
testdisk
を起動します。
CDが復元されました/
testdisk
で
sudo
使用する必要があるため、次のように入力します。
sudo テストディスク
testdisk
尋ねる最初の質問は、ログに関するものです。新しいログ ファイルを作成することも、既存のログ ファイルを使用することも、何もログに記録しないこともできます。どのオプションを選択しても問題ありません。
testdisk
動作には影響しません。
Enter キーを押すだけで、強調表示されたオプションを受け入れ、新しいログ ファイルを作成できます。これは、
testdisk
起動したディレクトリに作成されます。選択すると、
testdisk
、作業するファイル システムがどのハード ドライブに保存されているかを尋ねます。
検索できるハードドライブと
squashfs
“/dev/loop” ファイルがリストされます。
snap
からインストールしたアプリケーションごとに、これらが 1 つずつ存在します。これらは読み取り専用であるため、これらのファイル システムから何も削除することはできません。
このテスト コンピューターには物理ハード ドライブが 1 つしかないため、下矢印を使用して「/dev/sda」オプションを強調表示しました。次に、右矢印を使用して「続行」を選択し、Enter キーを押しました。
testdisk
パーティション タイプも知る必要があります。オプションのメニューと、自動検出されたパーティションのタイプが下部に表示されます。
そうしない正当な理由がない限り、自動検出されるパーティションのタイプを強調表示し、Enter キーを押します。
表示される機能メニューで「詳細」を強調表示し、Enter キーを押します。
パーティション選択メニューが表示されます。
探しているファイルは Linux ファイルシステム パーティションにあります。ハード ドライブには Linux パーティションが 1 つしかありませんが、他にもある可能性があります。
ファイルが存在していたパーティションを選択し、左右の矢印キーを使用して「リスト」を選択し、Enter キーを押します。ファイル選択メニューが表示されます。
上矢印と下矢印、または PgUp キーと PgDn キーを使用して、ファイルとディレクトリのリストを移動します。右矢印または Enter を押してディレクトリに入り、左矢印または Esc を押してディレクトリから抜けます。
dave
が所有していたファイルを探しています。すべてのユーザー アカウントのファイルは「ホーム」ディレクトリにあります。したがって、「ホーム」ディレクトリを強調表示し、右矢印または Enter キーを押してそのディレクトリに入ります。
すべてのユーザー アカウントが一覧表示されます。
dave
を強調表示し、右矢印または Enter キーを押してそのディレクトリに入ります。
これで、
dave
アカウントに属するファイルが表示されるようになりました。赤字のエントリは削除されました。回復したいファイルが見つかるまで、ファイルとディレクトリ内を移動します。
ファイルを回復するには、ファイルを強調表示して c (小文字) を押します。
表示が変わり、回復されたファイルの保存先を選択するよう指示されます。 「Restored」というディレクトリを作成し、そこから
testdisk
起動したため、リストの最初のエントリ (.) がそのディレクトリになります。この削除されたファイルをそのディレクトリに復元するには、C (大文字) を押します。
これを実行すると、ファイル選択画面に戻ります。さらに多くのファイルを回復したい場合は、このプロセスを繰り返してください。削除されたファイルを強調表示し、c (小文字) を押してコピーし、C (大文字) を押して復元します。
復元されたファイルの操作
ファイルを復元すると、ディレクトリ ツリーが元の場所に再構築されます。これは、元のファイルがハード ドライブ上のどこに存在していたのかを思い出させるので便利です。これは、コピーして戻す必要がある場合に、それをどこに置くかがわかっていることを意味します。
偶然同じファイル名を持つ複数のファイルを、異なるファイル システムの場所からリカバリする場合は、いずれにせよ、それらを別々に保存する必要があります。
次のように入力すると、「Restored」ディレクトリの内容を確認できます。
ls
testdisk
ログ ファイルの作成を依頼した場合、ログ ファイルは「Restored」ディレクトリに作成されます。回復されたファイルは「/home/dave」にあったため、「Restored」ディレクトリにコピーされ、同じ名前のディレクトリにネストされています。
cd
を使用して、コピーした「dave」ディレクトリに移動できます。パスの先頭にスラッシュ (
/
) が含まれていないことを確認してください。システム “/home” ではなく、ローカル “home” に変更する必要があります。
次のように入力します。
CD ホーム/デイブ
回復されたファイルはそのディレクトリにあるため、次のように入力します。
ls
-l
(長いリスト) オプションを使用して、復元されたファイルをもう一度見てみましょう。
ls -l
sudo
使用して
testdisk
を起動したため、回復されたファイルは所有者として「root」で復元されました。
chown
を使用して所有者を「dave」に戻すことができます。
sudo chown dave.dave *
次のように入力して、正しい所有権が復元されたことを確認します。
ls -l
testdisk: 救済コード
つい先ほどまで取り返しのつかないほど失われたと感じていた重要なファイルを回復した後のあの安堵感は、いつでも味わうことができるものです。
これが、
testdisk
非常に便利なユーティリティである理由です。メニューをすべて完了し、ファイルの復元を開始できるようになると、ハイライト、C、C、繰り返しのリズムに陥りがちです。
関連: 開発者と愛好家のための最高の Linux ラップトップ





