![Grub が外付けドライブを認識しない (Intel Mac)](https://rvso.com/image/1416350/Grub%20%E3%81%8C%E5%A4%96%E4%BB%98%E3%81%91%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%82%92%E8%AA%8D%E8%AD%98%E3%81%97%E3%81%AA%E3%81%84%20(Intel%20Mac).png)
私は Intel Mac (MacMini) と外付け USB ドライブを持っています。内部ドライブには、OSX インストールのパーティションと、Ubuntu+Grub2 のパーティションがあります。外付けドライブには、完全な OSX パーティションのコピーと、完全な Ubuntu パーティションのコピーがあります (どちらも元のものと UUID が異なります)。
私はデュアルブートに rEFIt を使用しています。内部 OSX と Linux、および外部 OSX が rEFIt メニューに表示され、起動可能です。起動できるようにしたい外部 Linux がありません。Linux バックアップを作成した後、内部 Linux (4 つのインストールがすべて見つかりました) と外部 Linux (chroot 経由 - 内部 Linux 以外のすべてのインストールが見つかりました) で update-grub を実行しました。これでは問題は解決しませんでした。
内部 Grub を使用して外部 Linux を起動しようとすると、次のエラー メッセージが表示されます。
error: no such device: <the UUID of the external Linux partition>
error: no such partition.
error: you need to load the kernel first.
内部 Grub メニューに入力するとls
、内部ドライブ上のすべてのパーティションが一覧表示されますが、(hd1)
完全に欠落しています。
を使用して外付けドライブのパーティション テーブルを同期しようとしましたgptsync
が、GPT が存在しないと表示されます。gdisk
ただし、GPT は見つかり、fdisk
の出力と手動で比較すると、同期しているように見えます (Linux パーティションは両方のテーブルに含まれています)。
編集:
rEFInd を CD に書き込んで実験してみました。結果:
CD から起動するために C を押して Mac を起動すると、rEFInd の灰色の背景が一瞬表示されますが、その後すぐに内部インストールから grub が起動します。この問題は、rEFIt から rEFInd を選択することで回避できます。ただし、これでは OSX に rEFInd をインストールできるかどうか自信が持てません。
rEFInd は、表示されるべきすべてのオプションを表示します。予想どおり、Grubs は外部ディスクから Linux を起動できません。
rEFIndを使用して外部ディスクからLinuxカーネルを起動すると、起動はしますが、起動後にINternalパーティションがとしてマウントされていることがわかります
/
。これ記事によると、パーティションをコピーした後で変更する必要があるのは、GRUB のみです。私は GRUB を使用していないので、理解できません。
答え1
まず、ネイティブ EFI モードのブートと BIOS/CSM/レガシー モードでのブートの違いを理解する必要があります。Intel ベースの Mac には EFI ファームウェアがあり、OS X は EFI モードでブートします。このファームウェアには、BIOS モードのブート ローダーをブートできるようにする BIOS エミュレーター (互換性サポート モジュールまたは CSM と呼ばれる、または「レガシー モード」サポートと呼ばれることもあります) が含まれています。Apple はこれを Windows のブートに使用することを意図していますが、この BIOS/CSM/レガシー サポートを使用して Linux などの他の OS をブートする人も多くいます。ただし、Linux は BIOS モードのブートだけでなく EFI モードのブートもサポートしているため、Mac の CSM を使用する必要がほとんどなく、むしろ複雑です。一方、ハードウェアが Linux で BIOS モードでブートした方が EFI モードでブートしたときよりもうまく動作するモデルもあります。
Mac で外部メディアから起動するのは、特に BIOS/CSM/レガシー モードでは、難しい問題です。おそらく、これがあなたが遭遇している問題でしょう。BIOS モードの問題に対する「銀の弾丸」のような解決策は知りません。最もうまくいく解決策は、EFI モードの起動に切り替えることです。これを行うには、放棄された rEFIt から、私が維持しているフォークに切り替えることをお勧めします。再検索。rEFInd は、EFI スタブ ローダーを使用して Linux カーネルを直接起動するサポートを追加します (これには、3.3.0 以降のディストリビューションで提供されるカーネルのほとんどが含まれます)。ダウンロード ページで入手できる USB フラッシュ ドライブまたは CD-R イメージから rEFInd を起動すると、内部ドライブと外部ドライブの両方から Linux を起動できます (両方の場所から OS X も起動できます)。これが機能する場合は、rEFInd をインストールします。OS Xの場合また、Linux カーネル (通常は ext4fs) を保持するファイルシステム用のドライバーもインストールします。その結果、GRUB をバイパスして、どちらの OS も直接起動できるようになります。
もしこれがうまくいけば、醜くて危険なものを取り除くことをお勧めしますハイブリッドMBR、Apple の EFI はこれをトリガーとして CSM をアクティブ化します。(このgptsync
ユーティリティはハイブリッド MBR を作成または変更します。) ハイブリッド MBR とは何か、なぜそれが問題なのかを理解するには、このリンクをお読みください。
編集:
rEFInd CD-R が「C」を使用して直接起動したときには正常に動作しなかったが、rEFIt から起動したときには動作したという事実は、ハード ディスクまたは USB フラッシュ ドライブにインストールされた rEFInd が正常に動作する確率についてはほとんど何も示していません。残念ながら、EFI で光学メディアから起動するのはかなり複雑で、Apple が独自の工夫を凝らしているようです。したがって、この方法で起動するのは少し危険です。特に、私 (rEFInd の開発者) はテスト用に古い Mac を 1 台しか持っていないためです。ハード ディスク (または USB フラッシュ ドライブ) から起動すると、動作する可能性が高くなります。
あなたの説明から判断すると、/etc/fstab
コピーしたファイルシステム上のファイルの更新に失敗したのではないかと思います。/etc/fstab
その手順に従う場合は、パーティションの新しい UUID を参照するように更新する必要があります。偶然ファイルがある場合は/boot/refind_linux.conf
、それも更新する必要があります。(そのファイルがない可能性はありますが、私の指示を少し超えたり、過去に rEFInd を操作したりした場合は、そのファイルがある可能性があります。)