壊れたEFIパーティションを修正する方法は?


24

OSX Lionを実行しているiMacがあります。また、ブートキャンプとWindows 7をインストールしました。Windows7のインストール中、完全な注意を払っていなかったため、EFIパーティションを削除してフォーマットしました。

マシンが引き続き正常に動作し、WindowsとOSXの両方を起動したため、この重要性を本当に理解していませんでした。

EFIファームウェアの更新がインストールに失敗したことに気づきましたが、これは気にしませんでした。

しかし、今はMountain Lionをインストールしたいので、問題が山積しています。有効なEFIパーティションがないと、Mountain Lionはインストールされません。

これが私のパーティションテーブルです。

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                  Apple_HFS EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            799.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                200.3 GB   disk0s4

ご覧のとおり、次のコマンドを使用してEFIパーティションを修正しました。

newfs_hfs -v EFI / dev / disk0s1

これは正しいタイプのパーティションを作成しなかったようで、EFIの代わりにApple_HFSを作成しました。

私の質問は(ディスクをフォーマットせずに)EFIパーティションを作成するにはどうすればよいですか?

おかげでリッチ


パーティションタイプを変更するには、この回答も参照してください:apple.stackexchange.com/a/342139/14586
mivk

回答:


31

コマンドラインgptツールを使用して、EFIシステムパーティション(ESP)を再作成できます。セクター40から開始し、409600セクター(正確には200MiB)の長さにする必要があります。GPTエントリのタイプはである必要がC12A7328-F81F-11D2-BA4B-00A0C93EC93Bあり、ハイブリッドMBRがある場合、タイプはである必要がありますEE。この形式は、実際にはHFS +ではなくFATのサブセットです。sudo gpt -r show disk0ターミナルウィンドウでコマンドを使用してGPTを読み取ることができます。これにより、次のような出力が生成されます。

      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  447801712      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  448211352    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  449480888   40753831         
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header

インデックス1で正しいEFIパーティションを確認できます。その行が完全に一致しない場合、最も簡単な方法は、その場所でパーティションを削除して再作成することです。

ここから先に進む前に、自分が何をしているのかを確認してください-混乱するとデータを失う可能性があります。

gptドライブのパーティションがマウントされている間はパーティションテーブルを編集できないため、別のドライブ(OSXインストーラーを備えたUSBスティックなど)から起動するか、ターゲットディスクモードでmacを実行してからパーティションを作成する必要があります別のMac。diskutil unmountDisk disk0続行する前、およびコマンド間で、自動的にマウントされたボリュームをアンマウントする必要がある場合があります

「不良」EFIパーティションを削除するには、次のコマンドを実行します。

sudo gpt remove -i 1 disk0

disk0が実際に変更したいディスクであることを確認してください-再起動するたびに数値が変わる可能性があります。また、これは、ESPの代わりに非ESPパーティションが既にある場合にのみ機能します。そうでない場合、パーティション1を削除することは悲惨です!この場合、ESPにはインデックス1が必要だと思うので、インデックスを一緒に移動する必要があります。その音により、これは必要ありません。

削除したら、正しいレイアウトでパーティションを再度追加し、次を入力します。

sudo gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0

これでパーティション自体が整理されますが、代わりにHFSパーティションを作成したので、そのフォーマットも修正する必要があります。

EFIシステムパーティションのフォーマットは、ここでAppleによって文書化されています。ご覧のとおり、ファイルシステムを再作成するのではなく、既存のESPを複製することをお勧めしますnewfs_msdos。GPTパーティションテーブルを備えた外部ドライブがある場合(OSXインストールスティックに必要です)、それを複製できます。

ディスクとパーティションの番号が正しいことを確認してください。そうしないと、データを上書きできます。

disk1が外部ドライブであり、最初のパーティション(disk1s1)としてESPが含まれ、disk0がESP(disk0s1)を修正するドライブである場合、次のコマンドを実行します。

sudo dd if=/dev/disk1s1 of=/dev/disk0s1

これにより、disk1のESPのすべてのブロックがコピーされ、disk0のESPの対応するブロックが上書きされます。

または、でギャンブルをしてくださいnewfs_msdos


非常に詳細な返信をありがとう。私は最終的にiParitionを使用して問題を修正することができました。しかし、あなたの方法を読んで、iParitionが存在していなかった私が探していた正確な方法のようです。おかげで、私はこれを正しい答えとしてマークしています。
リッチ

GPartedがESPをクローンしてSSDの2048をブロックした後、この方法は10.6でうまく機能しました。インストールディスクを起動し、上記の手順に従って、dd削除、再作成、および書き戻す前に、クローンしたESPをファイルに保存していました。ありがとう!
ニックウェストゲート

ssdハイブリッドドライブを使用したmbpでうまく機能しました。EFIはgrubインストールによって上書きされ、この方法はそれを元に戻すために完全に機能しました。
sean_m

共有してくれてありがとう。入力を保存するには、GUIDの代わりにEFIをパーティションタイプとして実際に指定できます。sudo gpt add -b 40 -i 1 -s 409600 -t EFI disk0

1
ESPがインデックス1になるようにパーティションのインデックスを変更するにはどうすればよいですか?
アディソン14年

3

これを試して:

  1. タイムマシンでドライブをバックアップします。
  2. 再起動し、Lionインストールディスクを再起動します。
  3. ディスクユーティリティに移動します。
  4. パーティションを消去します。
  5. HDを消去します。
  6. パーティションを再度消去します。今回は名前を付けます。
  7. HDをクリックします。
  8. HDを確認して、EFIエラーメッセージが表示されないことを確認します。
  9. インストール画面に戻ります。
  10. バックアップから復元を選択します。

2

より簡単なソリューションはここで見つかりました:https : //unix.stackexchange.com/a/174522/182014

EPartitionはGParted Live CD / USB経由で作成できます:

  • 200MBのドライブを作成します(最初はすべて空き容量があります):
    • タイプ: fat32
    • ラベル: EFI
  • フォーマットする
  • ブートフラグ(フォーマット後にのみ使用可能なオプション)を設定します "boot, esp"

ここに画像の説明を入力してください

準備完了!


0

iPartition 3以降をお試しください。メニューを表示し、システムデバイスを表示します。200mb EFIが欠落しているので、できればディスク上の最初のパーティションを200mb縮小してください。新しいパーティションを作成すると、ディスクインスペクターウィンドウにタブが表示されます。さまざまな種類のファイルシステムを選択できます。EFIシステムパーティションを選択するだけです。


0

これで問題が解決しました。

1)Wincloneを使用してBootcampパーティションをバックアップします

2)Carbon Copy Cloneを使用してMac OSXドライブを外部ドライブにバックアップします

3)Mountain Lionをフラッシュドライブまたは外付けドライブにインストールします

4)iPartitionのコピーを購入し、フラッシュドライブまたは外部ドライブにダウンロードする

5)Optionキーを押しながら再起動して、起動メニューを取得します

6)起動するフラッシュまたは外部ドライブを選択します

7)iPartitionを抽出して実行します。ドロップダウンメニューから[表示と検査]を選択します。

8)[パーティション]タブで[Bootcampパーティション]を選択し、リスト内の2つのボックス(Windowsではアクティブと表示)をオフにして、ボックスを閉じます。

9)[Go]ボタンが点灯している場合は、Bootcampパーティションを少し大きくします。私のものは、2.5 TBドライブ上の2 TB OSX、500 GB Windowsです。

10)[Go]ボタンを押すと、処理が開始されます。ただし、実行を妨げているプロセスを強制終了する必要がある場合があります(アクティビティモニターで完了)

11)シャットダウンが完了したら、外部ブートデバイスを取り外してから、Macの電源を入れ直します。それは修正され、正常に起動するはずです-少なくとも私のものはそうでした。

16 GB RAMと2.5 TBハードドライブを搭載したiMac 27、3.2 GHz Intel Core i3を実行しています。リストされているアイテムのほとんどは、Bootcampドライブの現在のバックアップを除き、Mountain Lionのインストール前にすでに行っていたものです。Bootcampが起動せず、復元プロセスがMBRの書き込みエラーを生成したにもかかわらず、Wincloneは機能しました。エラーを無視し、残りのプロセスを続行しました。どうやらMountain LionはPMBRやEFI、さらにはrEFを台無しにしたようです。その修正。

*免責事項**

このプロセスは私にとってはうまくいったかもしれませんが、あなたにはうまくいかないかもしれません!パーティションテーブルとブートデータを編集するプロセスと同様に、データが失われる可能性があります。データを保持したい場合は、ドライブをバックアップしてください。

OSXパーティションのバックアップにはCarbon Copy Cloneを強くお勧めします。これは、これまで失敗したことのないブート可能なクローンを作成できるためです。

他の人がこの問題を解決するのに他の場所で成功していると確信しており、自分のiMacでこの問題を解決するのに役立ったので、自分がやったことを投稿したすべての人に感謝しています。

みんなに感謝し、これが他の誰かに役立つことを願っています。(Appleフォーラムに投稿) https://discussions.apple.com/message/19220149#19220149

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.