まず、それはだCRITICAL、あなたのブートモードを理解していること。最近のコンピューターは、次の2つの方法のいずれかで起動できます。
- BIOS-これは、2011年より前に導入されたほとんどのコンピューターで使用されていた古いブート方法です。最近のコンピューターは、互換性サポートモジュール(CSM)と呼ばれる機能、つまり「レガシーモードブートサポート」または同様の用語。したがって、このメソッドは、BIOS、CSM、またはレガシーの3つの名前で参照できます。マスターブートレコード(MBR)やその他のさまざまな場所にスプラッティングされた16ビットブートローダーコードが含まれます。これは洗練されていませんが成熟したブート方法であり、ブートモードについて明示的に言及していないほとんどのサイトはBIOSモードブートについて説明しています。ただし、コンピュータにWindows 8以降が搭載されている場合は、この方法で起動しない可能性があります。
- EFI / UEFI -これは2011年半ば以降に導入、ほとんどのコンピュータ用のネイティブブートモードであり、それは完全に別のあなたがする必要がありますので、BIOSモードの起動から無視明示的にBIOSモードの起動、あるいはその何のためだと述べていること何かアドバイスをブートモードについては触れていません(古いか、違いを知らない人が書いた可能性があるため)。1つの例外:紛らわしいことに、多くの人々、さらにはコンピュータメーカーも、EFIを「BIOS」と呼んでいます。この方法は、大きな混乱を引き起こします。
Windows 10について言及しているので、コンピューターがEFIベースでEFIモードで起動している可能性があります。その前提の下で進めます。これが正しくない場合は、この回答の残りを無視してください。
内部ディスクをEFIモードで起動するために、OSは通常、ブートローダーをディスク上のEFIシステムパーティション(ESP)上のファイルとして保存します。このファイル名は正当なものであれば何でもかまいませんが、Ubuntuの場合はEFI/ubuntu/shimx64.efi
有効になり、起動されEFI/ubuntu/grubx64.efi
ます。OSインストーラーは、ブートローダーの名前をEFIの組み込みブートマネージャーに登録し、その名前をNVRAMに保存します。EFIが正しく機能する場合(すべての機能が機能するわけではありません)、これにより、ブートプロセスが機能します。
このプロセスの問題は、リムーバブルディスクに適用される場合、3つあります。
- UbuntuインストーラーはGRUBを「the」ESPにインストールしますが、複数のESPが使用できる場合があります(ほとんどの場合、ハードディスクに1つ、USBドライブに1つ)。GRUBのインストール場所の制御は注意が必要です。これは、GRUBのインストール場所に関する明確なタイトルが付いたオプションを使用して行われるわけではありません。代わりに、使用するESPを「EFIブートパーティション」または「EFIシステムパーティション」(Ubuntuのバージョンによって異なります)としてマークすることにより、「Something Else」インストールオプションからのみ(AFAIK)実行できます。
- USBドライブのESPにGRUBをインストールした場合、USBドライブを取り外すと、EFIは無効な登録済みのブートローダーエントリがあることに気づき、そのエントリを削除します。多くのEFIがこれを実行します。つまり、GRUBを外部ディスクにインストールしてから取り外した場合、ディスクを再び差し込んでも、そのディスクからブートする機能が失われます。
- UbuntuがGRUBを構成する方法では、ESB
/boot/grub
にはない可能性が高いUbuntu ディレクトリにある構成ファイルに依存します。したがって、Ubuntuが内部ディスクのESPにGRUBをインストールする場合、最初の問題は回避されますが、USBドライブが切断された状態で起動すると、GRUBが起動し、その構成ファイルを見つけることができないため、別の問題が発生します。その結果、grub>
ほとんどのユーザーを迷わせるプロンプトが表示されます。
これらの問題には、次のようないくつかの解決策があります。
- 外部ディスク上の代替ファイル名へのGRUBの手動インストール-OSインストーラーは、代替ファイル名のを使用して起動します
EFI/BOOT/bootx64.efi
。(GRUBを起動する)Shimをこのファイル名にコピーEFI/ubuntu
する場合(EFI/BOOT
ESPにをコピーしてshimx64.efi
からbootx64.efi
、EFI/BOOT
)、Ubuntuインストーラーと同じように、ファームウェアはUSBベースのGRUBを起動できます。これは私が識別した両方の問題を回避できますが、コンピューターの組み込みのブートマネージャーを使用して、ブートするOSを選択する必要があります。この組み込みのブートマネージャーは、使用できないものから許容できるものまでさまざまなので、これは許容できるソリューションである場合とそうでない場合があります。また、Ubuntuをインストールした後、デフォルトで内部ディスクのESPまたは外部ディスクのESPからGRUBが起動しないように、ブート順序を微調整する必要がある場合もあります。
/boot
内部ディスクにパーティションを置く -GRUBを内部ディスクにインストールする場合、内部ディスクに/boot
パーティションを置くこともできます。これにより、GRUBはすべてのブートで正常に機能します。ただし、USBディスクが取り外されていても、Ubuntuオプションは常に表示されます。特にUbuntuがデフォルトの場合、これは望ましくない場合があります。また、このソリューションは、外付けUSBドライブが、それを準備したコンピューターでのみ起動可能になることを意味します。そのディスクを他のコンピューターで使用できるようにする場合は、この解決策を回避する必要があります。
- よりスマートなブートマネージャーを使用する -ブートマネージャーは、ブートするOSの選択肢を提供しますが、ブートローダーはカーネルをメモリにロードします。GRUBは両方のジョブを実行し、EFIの組み込みブートマネージャーは最初のジョブのみを実行します。他にも利用可能なブートマネージャーがあり、そのうちのいくつかは、私が特定した問題を回避するのに役立ちます。私自身のrEFIndは、たとえば、内部ディスクのESPにインストールされ、デフォルトのブートプログラムを作成した場合、GRUBまたはLinuxカーネルが存在する場合、つまりUSBドライブが接続されている場合にのみ、Ubuntuオプションを検出して表示しますで
default_selection
オプションを設定するrefind.conf
適切に、rEFIndを構成して、Ubuntu USBドライブが接続されている場合はUbuntuを自動的に起動し、Ubuntu USBドライブが接続されていない場合はWindowsを直接起動することができます。この質問に対する私の回答は、 PCではなくMac。
運が良ければ、これらのアプローチの1つで問題なく稼働できます。