web-dev-qa-db-ja.com

プライマリGPTがなく、FileVaultボリュームもありません

フルディスクのFileVault暗号化が有効になっている単一のHDDを備えたiMacがありました。習熟度が疑わしい一部の「システム管理者」は、FileVaultパスワードも必要な知識もなしにデータにアクセスしようとし、ディスクを無効にしました。

彼が与えた希少で散発的な説明から、彼はいくつかのHEXエディターでディスク構造を台無しにしたと思われるかもしれませんが、そのようなツールの使用はCRC32チェックサムを台無しにすることが知られています、ウィキペディア 明らかに述べています 。おそらくそれが起こっていることです。

したがって、現在取得しているのは、パーティションがまったくないディスクです。

iMac:/ a$ Sudo gpt -r show /dev/disk1
       start        size  index  contents
           0  1953525135
  1953525135          32         Sec GPT table
  1953525167           1         Sec GPT header

したがって、残っているのはセカンダリGPTテーブルとヘッダーだけです。

gdiskは、プライマリGPTが破損していることを明確に示しており、バックアップから復元することを提案していますが、復元されたパーティション構造は奇妙に見えます。

iMac:/ a$ Sudo gdisk /dev/disk1
GPT fdisk (gdisk) version 1.0.1

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: damaged

Found invalid MBR and corrupt GPT. What do you want to do? (Using the
GPT MAY permit recovery of GPT data.)
 1 - Use current GPT
 2 - Create blank GPT

Your answer: 1

Command (? for help): p
Disk /dev/disk1: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): D5FB3C42-0E3D-4DC5-B4A9-7C97E8704CF5
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 8-sector boundaries
Total free space is 1953262957 sectors (931.4 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34          262177   128.0 MiB   0C01  Microsoft reserved ... 

Command (? for help):

そしてここにfdisk出力があります:

iMac:/ a$ fdisk /dev/disk1
Disk: /dev/disk1        geometry: 121601/255/63 [1953525168 sectors]
Signature: 0x2A74
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: ED  813 202  27 -  321 220  54 [ 783900958 - 3581756343] <Unknown ID>
 2: 7C  724 235  26 -  550 178  18 [1238663544 - 3274878647] <Unknown ID>
 3: F6  189 250  53 -  993 151  48 [2185613635 -  893877749] <Unknown ID>
 4: 2E  201 236  53 -  683  56  37 [  23839636 - 1903113077] <Unknown ID>

testdiskですばやく検索すると、2つのプライマリパーティションが見つかりました。最初のパーティションはMS Dataタイプで、以前はgdiskでも検出されていましたが、2番目のパーティションのようです。タイプはMac HFSであり、サイズが約650 MBであるため、RecoveryHDがないことを示しています。そこで、FileVaultで保護されたメインのデータパーティションの境界を見つける必要があります。

  Partition Start   End Size in sectors 
P MS Data   1699755823  1702272435  2516613 [ M-:?->M-'` P^C ]
P Mac HFS   1952255592  1953525127  1269536 

testdiskの詳細検索では、残念ながら大きなパーティションは見つかりませんでした。

enter image description here

問題はセカンダリGPTテーブル/ヘッダーからパーティション構造を復元することさえ可能ですか?これらが存在する場合、それらのいくつかの使用があるかもしれないと思います。そして、他に何を試みることができますかメインデータパーティションの場所を取得します

1

さて、タイトルからの私自身の元の質問への直接の答えは非常に簡単で、実際には質問の本文で答えられます:はい、セカンダリGPTテーブル/ヘッダーデータからドライブパーティションを復元することは可能ですgdiskで実行されます。これは、開始後に復元手順を実行することを自動的に提案しますが、私の場合、復元されたボリューム構造はガベージでした。

メインデータパーティションの場所に関する次の質問にも答えることができます。 はい、インストール中にOS Xがボリュームを作成する方法を学習した後、その場所を計算できます。したがって、失われたボリュームは、デフォルト設定(デフォルトのOS Xインストール、追加のデータパーティションなし)で作成されたと仮定して、元に戻すことができます。そして、それは私がそれをした方法です。

OS Xがブートディスクを準備するパターンを学ぶために、私はYosemite(ありがたいことにEl Capitanはこれで何も変更していませんでした)を予備の320GBドライブにインストールしました。この情報が手元にあるので、次の簡単なコマンドを使用して、問題のディスク上のFileVaultパーティションを復元することができました。

Sudo gpt destroy /dev/disk2
Sudo gpt create -f /dev/disk2
Sudo gpt add -b 409640 -i 2 -s 1951845952 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk2

最初のコマンドは、私の欠陥のある役に立たないGPTを破壊しました。 2番目は新しいものを作成しました。 3番目はボリュームをマークしました。新しく作成されたのではなく、これらのセクターにまたがる特定のタイプのボリュームがあることを示すだけです。ちなみに、この場合、1つのセクターは512バイトです。

私が知っていた方法409640-beginning and1951845952-size?セクター409640は、データパーティション2の標準的な始まりであり、EFIパーティションの後に広がります。これは、OS Xが常にディスクの先頭に作成するため、安全な方法です。 EFIは常に409640セクターで終了します。そして、1,951,845,952セクターサイズは、セクター単位の私の合計ディスクサイズです(1,953,525,168 )マイナスRecovery HDサイズ(1,269,536)マイナス40セクターこの2番目のデータパーティションの前のディスクの終わりから409,640セクターを引いたしきい値。結果は正確に1,951,845,952です。 8で割り切れる、つまり私は正しい。

不思議な53746F72-6167-11AA-AA11-00306543ECACは、まあ、 GPTパーティションタイプGUID であり、このボリュームをマークしますFileVaultパーティションとして。通常のHFS +ではありません。このボリュームを-indexの2でマークしたので、2番目ですが、私はそうではないので、このパラメーターは重要ではないと思います他の2つのパーティション(EFIおよびRecovery HD)を復元します。正直なところ、調査中にRecovery HDを復元しようとしましたが、そこにあることを確認するだけで、マウント可能で、安全で、健全でした。今回は無視しました。EFIRecovery HDも役に立たないため、このドライブから起動する予定はありません。データを回収したいだけです。

FileVaultボリュームの境界を復元した直後に、FileVaultパスワードリクエストを受け取りました。これは喜んで提供しました。それは私が計算した境界が正しいことを意味します。それを証明するために、私はさまざまな境界を試しましたが、この場合、パスワードの要求はありませんでした。

しかし、FileVaultボリュームが正常にロック解除された後、私は有名な

enter image description here

メッセージボックス。つまり、FileVaultパーティションが戻ってきたとしても、それが自動的に無傷であることを意味するわけではありません。ロックを解除できますが、どういうわけか壊れています。

したがって、このFileVaultボリュームを修復するか、データを回収する機会があるかどうかを確認します。フォローアップの質問は ここ です。

1