web-dev-qa-db-ja.com

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

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

今日、友人のiMacで起動し、Software Updaterからアップデートをインストールするように要求された後。だから私はやった。

その時点で私はそれで終わったので、私はコンピューターの電源を切り、外付けHDDのプラグを抜きました。その直後に、iMacを再び起動して、OSXを再起動しました。

私の全くのショック、恐怖、そして混乱に、私はGRUBレスキュー画面に出会った!

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

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

8
Android Dev

(実際の修正のためにスクロールダウン)

そのため、最初は思っていたよりもさらに複雑になりました。

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

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

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

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

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

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

それで、Software Updaterにいくつかのアップデートを実行させました。ログを見ると、インストールプロセス中にupdate-grubコマンドが実行されたようです。 これはすべての悪いことが起こる場所です。現時点では、何が起こったのか正確にはわかりませんが、ここに私の最善の推測があります:grubがMBRモードでインストールされたため、grubアップデーターが混乱しましたが、Ubuntuは現在UEFIモードで起動しました。混乱と、ブートMODは起動するmodに応じて異なる場所にインストールされるため、grubアップデーターは大きな間違いを犯し、grubをMBRモードで内部HDDにインストールします。


実際の修正のために!

私の特定の場合、OS-Xパーティションは、 Option 起動時にキーを押し、「Macintosh HD」を選択します。

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


さて、参考までに、それは問題を修正しますが、GRUBはまだセクター0にありますが、そこに害を及ぼすとは思わない、そして確かにWindowsをブートにインストールする場合はそうではありませんキャンプ、Windowsのブートローダーが上書きするため

7
Android Dev