外部のUbuntuインストールによってupdate-grubが実行された後、(Intel)MacでAppleブートローダーを復元する


10

私は外付けHDDにUbuntuをインストールしていて、どこにでも持ち運べるポータブルインストールとして使用しています。

今日、私は友人のiMacでそれを起動し、Software Updaterがアップデートのインストールを要求した後、だから私はしました。

その時点で私はそれで終わったので、私はコンピュータをシャットダウンし、外付けHDDを取り外しました。その直後にiMacをもう一度起動したので、OSXで再起動しました。

まったくのショック、恐怖、混乱に、GRUBレスキュースクリーンが表示されました。

そんなことがあるものか?Ubuntuは、内蔵HDDではなく、外付けHDDにインストールされます!GRUBはどのようにしてiMacの内蔵HDDになったのですか?

さらに重要なのは、これをどのように修正すればよいですか?



1
@Fran-いいえ、だまされていない。GRUBではなく、Appleブートローダーを復元したかったのです。
You'reAGitForNotUsingGit

回答:


9

(実際の修正は下にスクロールしてください)

だから、物事は最初に思われたよりもさらに複雑でした。

MS-Windowsとの互換性を維持するために、アップルはハイブリッドUEFIとレガシーMBRモードを使用しています。明らかに、UEFIモード(OS-X)またはレガシーMBRモード(Windows)のどちらでブートを試行するかをファームウェアに指示するNVRAM値があります。この値は、「システム環境設定>起動ディスク」での選択によって制御されます。(理由を聞かないで、Appleに聞いてください)

次に、外付けHDDからUbuntuを起動するために、まずrEFIndのISOを書き込んだDVDから起動しました。(Option起動中にキーを押しながらDVDアイコンで「EFIブート」を選択)。そのDVDから起動した後、rEFIndの内部から起動する外付けHDDを選択しました。

これは、物事が本当に奇妙になり始めるところです。外付けHDDから起動するようにrEFIndに指示した後、紫色のGRUB画面は表示されず(はい、遅延を設定しました)、さらに、紫色のドットブートアニメーションはありませんでした。代わりに、それはスクロールする白いテキストの起動でした。

ブートを実行する前にrEFIndをさらに詳しく見るとわかるのは、Ubuntuオプションは実際には特定のカーネルをロードすることであり、ディスクからブートするだけではなかったことです。

つまり、rEFIndは当然のことながらEFIであり、本質的にGRUBの代替として機能するため、UbuntuがMBRモードで外部HDDにインストールされていても、UEFIモードで起動されることになります。

その事実は非常に重要であり、その理由はすぐにわかります。

それで、ソフトウェアアップデーターに更新を実行させました。ログを見るとupdate-grub、インストールプロセス中にコマンドが実行されたようです。ここですべての悪いことが起こります。現在のところ、何が起こったのか正確にはわかりませんが、私の推測では次のとおりです。grubがMBRモードでインストールされたため、grubアップデーターが混乱しましたが、Ubuntuは現在UEFIモードで起動されていました。混乱と、ブートローダーがブートするmodに応じて異なる場所にインストールされるという事実のため、grubアップデーターは大きな間違いを犯し、grubをMBRモードで内部HDDにインストールします。


今実際の修正のために!

私の特定のケースでは、Option起動中にキーを押しながら「Macintosh HD」を選択した場合、OS-Xパーティションはまだ起動可能でした。

OS-Xを起動した後、システム環境設定を開き、起動ディスクに移動します。OS-Xボリュームを選択し、[Apply]などを押して、再起動し、BOOM!アップルのロゴが表示されます!


さて、参考までに、問題は修正されましたが、GRUBは依然としてセクター0に存在すると思いますが、そこに害を及ぼすことはないと思います。ローダーはそれを上書きします

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