一般化する
ファイルが削除される前にファイルの完全修飾パスがわかっている場合は、LUKSコンテナ内のLVMボリューム内のext4ファイルシステム内のファイルを(比較的簡単かつ確実に){回復、削除解除}するのですか? (間違った用語を使用した場合は事前にお詫び申し上げます。必要に応じて修正してください。)
詳細
良いニュースは、簡単に復元できないファイル(バックアップなど)が誤って削除されてから数年が経ちました。いくつかの精度用語を定義します。
- 私のファイルに電話してください。 {削除済み、回復リクエスト}
target file
- 以前にターゲットファイルがあったディレクトリ/フォルダを呼び出します。
target dir
- 呼び出しパーティション{ターゲットファイルがあった場所とターゲットファイルを復元しようとしている場所}
target partition
悪いニュースは、
- 前回は対象パーティションが「単純ext4」でした。つまり、暗号化やその他の管理はありませんでした。
LVM2_crypt-home
今回のターゲットパーティションは、次の表で名前が=のパーティションですlsblk
。NAME MAJ:MIN SIZE TYPE MOUNTPOINT sda 8:0 465.8G disk ├─sda1 8:1 16.6G part ├─sda2 8:2 97.7G part ├─sda3 8:3 500M part /boot ├─sda4 8:4 1K part └─sda5 8:5 351G part └─LVM2_crypt 254:0 351G crypt ├─LVM2_crypt-swap 254:1 3.9G lvm ├─LVM2_crypt-root 254:2 20G lvm / └─LVM2_crypt-home 254:3 327.1G lvm /home
次のコマンドを使用して単純なパーティションからファイルを回復する方法を覚えているようです。拡張を削除:以下の手順を参照してください。私が知りたいことは
- 管理+暗号化パーティションに対して同じまたは類似のプロセスが機能しますか?そうでない場合は、何を追加、編集、削除する必要がありますか?
extundelete
このユースケースに対して(より)信頼性の高いツールはありますか?それでは、このユースケースの手順は何ですか?
簡単なパーティショニングプロセス
私の最後の手順 - 「簡単な」ext4パーティションの場合 -extundelete
次の(bash)例を使用しました。
- 読書
info extundelete
と(とても貧弱)文書削除の拡張(タイトル=までスクロールダウンDocumentation
)。回復など、ここに示されているもの以外のユースケースも処理できます。みんなパーティションからファイルを削除します。 宛先ファイルの指定:
正規化されたパスを定義して
TARGET_FQP
覚えておいてください。いいえ使用~
:# CHANGE FOR YOUR USECASE! TARGET_FQP="${HOME}/video/greatest_movie_ever.mp4" echo "TARGET_FQP='${TARGET_FQP}'"
ディレクトリ/フォルダを定義します(ターゲットファイルと同じ(ターゲット)パーティションにあるとします)。
TARGET_DIR="$(dirname "${TARGET_FQP}")" echo "TARGET_DIR='${TARGET_DIR}'"
ファイル名の定義(以下を使用)
TARGET_FN="$(basename "${TARGET_FQP}")" echo "TARGET_FN='${TARGET_FN}'"
ターゲットディレクトリ内のターゲットパーティション
TARGET_PART
とそのマウントポイントを識別します。TARGET_MP
TARGET_PART="$(df --output=source "${TARGET_FQP}" | tail -1)" echo "TARGET_PART='${TARGET_PART}'" TARGET_MP="$(df --output=target "${TARGET_FQP}" | tail -1)" echo "TARGET_MP='${TARGET_MP}'"
現在の作業ディレクトリ(CWD)を使用して、目的の端末で目的のシェルを開きます。
- CWD がターゲット以外のパーティションにあります。 (パーティションに関する情報を取得するには、必要なツールを使用してください。
lsblk
)fdisk
extundelete
見つかったすべてのファイル(存在する場合)をCWDサブディレクトリname =に復元するので、RECOVERED_FILES
その名前のファイルが既に存在する場合はそのファイルを移動したいと思います。 (再定義する方法をご存知でしたら教えてください。IIRC、--restore-directory
実際にいいえこれを行います。 )
- CWD がターゲット以外のパーティションにあります。 (パーティションに関する情報を取得するには、必要なツールを使用してください。
ターゲットパーティションを読み取り専用で再マウントします。
mount --options remount,ro --source "${TARGET_PART}"
ランニング
extundelete
:date # because if this runs too long, you'll wanna give up extundelete --restore-file "${TARGET_FQP}" "${TARGET_PART}"
修復されたファイルを確認してください。
SAVED_RELPATH="./RECOVERED_FILES/${TARGET_FN}" echo '(hopefully) restored file @' ls -al "${SAVED_RELPATH}"
回復された file@ が必要な
SAVED_RELPATH
ものであると仮定すると、TARGET_PART
読み書きを再マウントしてそこに移動できます。または(通常はそうします)- 復元されたファイルを外部バックアップに移動する
- 次に、PCを再起動してください。
TARGET_PART
- 回復したファイルをバックアップから次にコピーします。
TARGET_DIR
あなたの修正や改善を歓迎します。