web-dev-qa-db-ja.com

"Boot with BIOS"と "Boot with UEFI"の違いは何ですか?

現在、Windows 8はUEFIブートローダーをサポートしており、BIOSとは異なることを読みましたが、Googleで何度も検索した結果、私にはわかりません。

以下の点に留意してください。 -

  • 私たちみんなが知っているように、BIOSはブートオプションにアクセスする上で重要な部分です。だからUEFIは今それをするのだろうか?どうやって?

  • BIOSではなくUEFIで起動していることをどのように確認できますか?

  • それでは、「BIOSで起動する」と「UEFIで起動する」の本当の違いは何ですか?

116
avirk
  • BIOSがブートオプションにアクセスするための重要な部分であることは、誰もが知っているとおりです。だから今UEFIはそれをするのだろうか?どうやって?

BIOSはハードディスクの最初のセクタを読み込んで実行することによって起動します。このブートセクタは順番に追加のコードを見つけて実行します。最近のコンピュータは32ビットまたは64ビットのCPUを使用していますが、BIOSシステムはスペースの制約とBIOSが16ビットコードを実行するため非常に制限されています。対照的に、EFI(またはUEFI、単にEFI 2.x)は、EFIシステムパーティション(ESP)と呼ばれる、ハードディスク上のパーティションからEFIプログラムファイル(ファイル名拡張子.efiを含む)を読み込むことによって起動します。これらのEFIブートローダプログラムは、ハードディスクからファイルを読み取るようなことにEFIブートサービスを利用することができます。

実際問題として、複雑なBIOSモードのブートローダーを持っているLinuxのようなOSを使っているなら、EFIモードのブートはBIOSモードのブートに似ているようです。なぜならGRUB 2(ほとんどの場合)人気のあるLinux用のBIOSモードブートローダはEFIの下で動作するように移植されており、多くのLinuxディストリビューションはデフォルトでEFIシステムにGRUB 2をインストールします。 OTOH、あなたは他のEFIブートローダでGRUB 2を置き換えるか補うことができます。実際、Linuxカーネル自体がEFIブートローダーになることがあります。 3.3.0カーネルでこれを行うためのコードが追加されました。このように使用すると、EFI自体がLinuxカーネルをロードして実行するか、または rEFInd または のようなサードパーティのブートマネージャを使用できます。/gummiboot で起動するOSまたはカーネルを選択できます。

  • BIOSではなくUEFIで起動していることをどのように確認できますか?

Rootが言うように、ファームウェアのユーザーインターフェースには手がかりがあります。ただし、信頼性が低く、コンピュータによって異なります。確認する唯一の方法は、コンピュータの起動状態を確認することです。たとえばLinuxでは、/sys/firmware/efiというディレクトリの存在は診断的です。存在する場合は、EFIモードで起動しました。存在しない場合は、BIOSモードでおそらく起動しています。 EFIを参照するdmesgの出力も、EFIモードの起動を診断するものです。 Windowsでは、ブートディスクのパーティションテーブルが診断用です。 GPTの場合はEFIモードで起動し、MBRの場合はBIOSモードで起動します。

  • それでは、「BIOSで起動する」と「UEFIで起動する」の本当の違いは何ですか?

EFI高速になりますが、確かではありません。最大の速度差は、プロセスの初期の段階でのハードウェアの初期化です。私のシステムでは、これは総起動時間のほんの一部です。そのため、ハードウェアの初期化時間を短縮しても、すべてのそのに大きな違いはありません。結局のところ、私が10分ごとにリブートしているわけではありません。

UEFIは、セキュアブートと呼ばれる機能をサポートしています。これは、その名のとおり、セキュリティの向上を目的としています。それは、ブートローダのデジタル「署名」を要求することによってこれを行います。それは、順番にカーネルの署名を必要とします。これにより、マルウェアの作成者が自分のコードを起動前プロセスに挿入することが難しくなり、セキュリティが向上します。これは良いように思えますが、GRUBのようなコードとLinuxカーネルに署名しなければならないので、デュアルブート設定も複雑になります。大手Linuxディストリビューションベンダーは、これらの要件を平均的なLinuxユーザーの負担にならないようにするための方法に取り組んでいます。ただし現時点では、セキュアブートを無効にするのが最も簡単な方法です。 MicrosoftはWindows 8の認証を取得するためにSecure Bootを有効にする必要があるため、これは主にWindows 8に同梱されている新品のコンピューターにとって実際的な問題です。 UEFIとセキュアブート(後者は前者の1つの機能です)を混同する人もいますが、新しいWindows 8コンピュータでは問題が発生するため、BIOSとUEFIの違いとして言及する価値があります。あなたがより古いシステムを持っているか、またはセキュアブートを無効にするファームウェア設定ユーティリティに十分に慣れているならば、これは本当の問題である必要はありません。

マイクロソフトは、ブートディスクのパーティションテーブルの種類をファームウェアの種類(MBRからBIOS、GPTからUEFI)に関連付けます。 MBRは2TiB(標準のセクタサイズを想定)で最大になるので、これはUEFIが2TiBを超えるディスクでWindowsを起動するための実用的な必要条件であることを意味します。ただし、Windowsではデータディスクとしてこのような大きなディスクを使用することもできます。また、BIOSのGPTを使用して、Microsoft以外のOS(LinuxやFreeBSDなど)を大きなディスク上で起動することもできます。

UEFIを心配している、または興味を持っている場合の実際的な問題として、最大の問題は、UEFIのサポートが少しむらがあるほど新しいことです。 UEFI自体は、その実装の大部分がバグの多いものであるという点では十分に新しいものであり、一般的に物事を説明するのは難しい場合があるため、それら自身の間で十分に異なるものではありません。したがって、UEFIを使用することは困難な場合があります。 OTOH、UEFIは未来です。それはいくつかの控えめな利点を持っています、そのうちのいくつかは時間がたてばもっと重要になるでしょう(Windowsの2TiBブートディスク制限のような)。 UEFIブートに切り替えるとブートプロセスのいくつかの詳細が変わりますが、あなたが遭遇するかもしれないブートの問題を克服したならあなたの全体的なコンピューティングエクスペリエンスはそれほど変わらないでしょう。


編集:

OpRom設定を拡大してもらえますか(Option Rom)。それらはあなたがUEFIブートか "レガシー"ブートのどちらかを選ぶことを可能にしているようで、それらはビデオカード、ネットワークカード、そして他の様々なPCIデバイスに適用されます。

多くのプラグインカードはマザーボード上のファームウェアとインターフェイスするファームウェアを提供します。カードのファームウェアがうまくいくのであれば、2種類のファームウェアは「会話」できなければなりません。これは、OSの起動前にカードを使用するために必要です。たとえば、ビデオカードにファームウェアのオプションやブートマネージャのメニューを表示したり、ネットワークカードを介してネットワークブートを実行したり、またはディスクコントローラカード。

ブートローダと同じように、プラグインデバイスのファームウェアのコードは、BIOSかEFIのどちらかとインタフェースするように書かれています(ただし、誤解がない限り、プラグインカードは両方をサポートできます)。ご存知のように、EFIによっては、このサポートをきめ細かく設定して有効または無効にするオプションがあります。場合によっては、EFIはカードのBIOSモードサポートを使用して、呼び出しを「変換」することによって、カードがEFIモードで動作できるようにすることができます。 (これは例えばビデオカードによくあることです。ファームウェアにBIOSサポートしかない古いビデオカードを接続してもEFIモードで起動することができます。)

あなたが注意している各設定が何をするのか正確にはわかりません。たとえば、これらのオプションの1つに "BIOS only"を指定すると、カードがBIOSモードでのみ機能するようになるか、 "変換"してEFIがEFIモードでBIOSモードの呼び出しを使用できるか、その他の設定が可能になります。実際、他のEFIユーザーインターフェイス領域には規格がないため、詳細はEFIごとに異なると予想されるので、詳細を知る必要がある場合は、コンピュータのマニュアルを参照するか実験する必要があります。私は2つの異なるメニューで非常によく似たオプションを持ついくつかのコンピュータを見ましたが、それはさらに問題を複雑にします。

131
Rod Smith
  • BIOSがブートオプションにアクセスするための重要な部分であることは、誰もが知っているとおりです。だから今UEFIはそれをするのだろうか?どうやって?

UEFIは、BIOSと呼ばれるx86固有のファームウェア規格に代わる、クロスプラットフォームのファームウェアインターフェイスです。多くのUEFI実装はまた、MBRからの起動を可能にし、OSにBIOSのようなインターフェースを提示することを可能にするために、BIOS互換性/「レガシー」モードを含みます。ただし、これは規格では要求されていません。

  • BIOSではなくUEFIで起動していることをどのように確認できますか?

互換性/レガシBIOS起動を提供するUEFI対応マザーボードをお持ちの場合、そのファームウェアメニューはデフォルト起動モードの設定やUEFIまたはBIOSモードでの単一デバイスの起動などの選択肢を提供します。  そうでなければ、わかりやすい方法はないかもしれません。 OSを使用してファームウェアを調べます。

  • それでは、「BIOSで起動する」と「UEFIで起動する」の本当の違いは何ですか?

多くの違いがあります。

  • UEFIは、BIOSと同様のOSファームウェアインターフェイスを定義していますが、どのプロセッサアーキテクチャにも固有のものではありません。 BIOSは、Intel x86プロセッサでサポートされている16ビットの「リアルモード」インタフェースに依存するため、Intel x86プロセッサアーキテクチャに固有のものです。
  • UEFIは、ブートプロセスのさまざまな部分を高速化するように設定できます。たとえば、 Gigabyte GA-EP45-DS3上のUEFIは19秒でBIOSに対して11秒で初期化されます .
  • UEFIモードは、BIOSモードとは異なるファームウェア/ハードウェア機能を同じインストール済みOSに提示することがあります。

UEFIについての 詳細情報を参照してください

21
Elmo

Q:誰もが知っているように、BIOSは起動オプションにアクセスする上で重要な部分です。だから今UEFIはそれをするのだろうか?どうですか?

A:これは用語についての混乱です。例えば。 「BIOSを入力してblablaを変更します」。政治的に正しい用語は、「ファームウェア設定ユーティリティ」です。 「UEFI」と対比して「BIOS」について話す場合、それは他の何か、すなわちブート実行環境を指します。

つまり、そのセットアップユーティリティを使用する場合は、a)UEFIと呼ばないでください。また、b)それは基本的に以前と同じものです。

Setup-utilityがハードウェアと通信する方法、そしてそれが恒久的に保存される方法は、ファームウェアに固有のものです。それで何も変わっていません。

Q:それでは「BIOSで起動する」と「UEFIで起動する」の本当の違いは何ですか?

A:ブートローダが自分自身を見つける環境は異なります。そしてUEFIを使うと、その環境はより明確に指定され、はるかに近代的で機能豊富になります。

8
Robert Siemer