LoginSignup
5
5

More than 5 years have passed since last update.

暗号化APFS環境で EFI Volume を消してしまった場合にどうするか

Last updated at Posted at 2017-10-10

これは、MacBookPro13inch with touchbarにLinuxがdd焼きされたUSBメモリを指して、そのメモリを初期化しようと思っていた矢先の話である。

前提として、macOS X 10.13 High Sierra かつ、暗号化APFS環境の話です。
FusionDriveの人は更に特殊なので、とっととGenius Barに持っていくこと!

やらかし

$ diskutil eraseVolume "Free Space" dummy disk0s1

はい注目、disk0です。理由理屈関係なくdisk0を対象にdiskutilでなにかしてはいけません!
ここで、diskutil listをつかって普通の構成を覗いてみましょう↓

$ diskutil list internal 
/dev/disk0 (internal): 
     #: TYPE NAME SIZE IDENTIFIER 
     0: GUID_partition_scheme 121.3 GB disk0 
     1: EFI EFI 314.6 MB disk0s1 
     2: Apple_APFS Container disk2 120.9 GB disk0s2 

## https://beta.apple.com/sp/betaprogram/apfsfusion から引用

このようにdisk0s1EFIボリュームであることがわかりますが、先程消しました

この状況では、Macはおろかコンピュータは起動できなくなってしまいます(※出来る場合もある)

対応策

まず、以下全ての用意が済むまで、再起動はしないこと。なぜならば、シャットダウンしなければ問題にならないので。

再起動やkernel panicなどでcrashするまえにやること

  1. Time Machineでバックアップをします
  2. 必要なデータは更に手動でバックアップしておきます
  3. id_pubなど秘密鍵やキーチェーン、二段階認証系をなんとかバックアップします
  4. お気に入りなどをなんとかします

つまり消し去る前提でなんとかしましょう。。

以下を諦めましょう

  1. いまのパーティションを消さずに済ます
  2. 時間をかけずに復旧

ただし、rEFItとかで何とかする方法とか、ぼくの環境ではうまく動かなかったが、単純なリカバリモードでの再インストールでもうまくいく場合があります。

チャレンジ 1

Command+Rによるリカバリモードでの macOS High Sierra 再インストールは、うまく行きませんでした。
順調に進むのですが、再起動2回目あたりの、このエラーが出て止まってしまう。

スクリーンショット 2017-10-11 4.29.55.png

これ、ぐぐるとファイアウォール内だからダメとかあるので、テザリングしたりなど色々試しましたが、何やってもダメでした。

チャレンジ 2

Command+S起動のシングルモードでのfsck -fyですが、これもやったんですがAPFS暗号化環境では、行われないようで、ぐぐってもあんまり知見がなくAPFS用のコマンドも用意されるっぽいんですが、何れにしてもEFIボリュームは復活しなかった。

チャレンジ 3

Option+Command+Rによる最新バージョンをAppleサーバからとってくる方法の再インストールも、チャレンジ1と同じ画面が出てあぼーん。

チャレンジ 4

ついに諦め、フォーマットすることにした。とりあえずAPFSではmacOSが最新であれば最善なはずなので、Option+Command+R起動し、ターミナルを起動

メモしたりしてないので、とりあえずやったことを羅列する。意味がわからない人はやらないほうが身のためです。。

↓まずは、APFSコンテナを削除します。論理ボリューム?なので、これをするとJHFS+が生まれます…

$ diskutil apfs deleteContainer disk0s1

その生まれたボリュームも消します↓

$ diskutil eraseVolume "Free Space" dummy disk0s1

これをすると、disk0がスッキリ何もない状態になります。なるはず。

あとはAPFSボリュームをつくるだけ

そしたら、ボリュームを作るのはディスクユーティリティでもできるので、そっちに切り替えて、SSDに対して「消去」でAPFSを作って下さい。

もしTime Machineから復旧を考えていて、元々APFS暗号化を使っていた場合は、ここでAPFS暗号化でボリュームを作っておくのが良いです。

うまくボリュームが作れると、そのタイミングでEFIを作ってくれます。EFI REBORN!!

diskutil listで確認しても戻ってきています(実際の画面)
スクリーンショット 2017-10-11 4.43.11.png

Time Machine からの復元

さあリカバリモードの最初にもどって気合を入れて「Time Machineバックアップから復元」します。

が、復元基となるボリュームがAFP先のAirMacに繋がったUSB HDDであって、これが最初から出てこない。

↓ココに繋げたい
スクリーンショット 2017-10-11 4.45.34.png

↓出てこない
IMG_3091.JPG

この「その他のサーバ」は、URLで記入しろと言う。ここで、ターゲットのURLは afp://SkyTower.local/Time Capsuleだが、スペースを不正なURLだと判断する。

↓URLエンコードして、スペースを%20にしてやるとうまくいく
スクリーンショット 2017-10-11 4.49.05.png

そんで、username/passwd入れれば、きっと出てくるはず。

したら最新のバックアップをチョイスして、ディスクユーティリティでさっき作ったばっかりのAPFSボリュームに対して復元すれば…ッ!

EFI ボリュームは消しちゃダメ

未来の自分とのお約束だよ

 参考リンク

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5