LUKSを使用したフルディスク暗号化とは別に暗号化された/homeパーティションを設定しました。私は/ rootを削除する間違いをしましたが、早期に発見してパーティションテーブルだけを変更しました。今、次が残りました。
sudo hexdump -C /dev/nvme0n1 |grep LUKS
3e900000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |LUKS....aes.....|
これは、LUKSヘッダーがまだ破損していないことを意味します(休止)。
次に、対応するオフセットにループデバイスを作成します。
sudo losetup -o 0x3e900000 -r -f /dev/nvme0n1
そしてインストールしてみてください
sudo cryptsetup luksOpen /dev/loop1 luksrecover
これまではうまく機能しており、すべてが正しくインストールされており、私のファイルを表示し、いくつかの追加コマンドを使用して別々の/ homeを復元できます。
しかし、完全なOSがあるのでまた戻ってください。唯一の問題は、元のXubuntu LUKS復号器を呼び出すことができるグラブがないことです。
今私のパーティションにかなりのオフセットがあるのを見ると、ここがグラブが住んでいたところのようです。
それでは、オペレーティングシステムを復元するにはどうすればよいですか?私が理解しているように、バイト0 - $ offsetをgrubとしてマークし、そこにgrubをインストールし、残りを別のものとしてインストールする必要があります。だから私はgrub-install /dev/nvme0n1を試しましたが、aufsについて文句を言いました。
grub-install: error: failed to get canonical path of `aufs'.
その後、インストールされたLUKSシステムのchrootで同じことを試みましたが、ファイルシステムは読み取り専用でしたが、もちろん最初はgrubがありませんでした。
それでは、LUKSの前の空のスペースにgrubを配置し、起動時にLUKSの暗号化を解除するにはどうすればよいですか?
答え1
警告する:
これらすべてを行う前に、ドライブのイメージ(バックアップ)を作成してください。
すべてのコマンドのドキュメント(「manページ」など)を読み、そのコマンドを使用する前に、そのコマンドが何をしているのかを理解してください。
あなたは警告を受けました
後で参照できるように、回避策は次のとおりです。
LUKSパーティションの開始位置を見つけます。すべてのLUKSパーティションには、LUKSという単語を含むプレーンテキストヘッダーがあります。だから
sudo hexdump -C /dev/<the disk> | grep LUKS
LUKSがどこにあるかを確認してください。
hexdump
このヘッダーの先頭が見つかるオフセットを一覧表示する必要があります。 LUKS ヘッダーが見つかったオフセットから始まり、パーティションをループバックデバイスとしてマウントします。sudo losetup -o <offset> -r -f /dev/nvme0n1
ちなみに、Intel SSDとGRUB2を使用したXubuntuのオフセットは0x3e900000です。
どのデバイスが欠落しているかを確認する
losetup -a
復号化とマウント
sudo cryptsetup luksOpen /dev/loop1 luksrecover
この時点でディスクをマウントする必要があります
/media/
。ただし、コンテンツは/home
まだ暗号化する必要があります。今解読する時間です-
cd /home/<yourusername> sudo ecryptfs-recover-private .Private/
これにより、次のような結果が生成されます。
INFO: Found [.Private/]. Try to recover this directory? [Y/n]: Y INFO: Found your wrapped-passphrase Do you know your LOGIN passphrase? [Y/n] Y INFO: Enter your LOGIN passphrase... Passphrase: Inserted auth tok with sig [8c5d84b9d7f0cc5b] into the user session keyring INFO: Success! Private data mounted at [/tmp/ecryptfs.mxsowbiD].
外部ストレージデバイス(HDDなど)を接続し、必要なものをすべて
/home
保存してください。/opt
再インストールし、/home
自分のものと交換してください。または、既存のファイルシステムを適切なパーティションに移動してください。
危機はわずか数時間で解決された。
答え2
Linux Testdiskユーティリティを使用してパーティションテーブルを復元します。最後に、必要なときにソースからコンパイルすると、回復可能なエントリに影響がありました。