デュアルブートシステムでは、BIOSは実行するブートローダーをどのように選択しますか?


24

WindowsとUbuntuのデュアルブートがあります。マシンの電源を入れると、BIOSがPOSTを実行し、その後ブートローダーが起動します。

BIOSが実行するブートローダーをどのように選択するかを理解したいと思います。BIOSとデュアルブートコンピューターのブートローダーの間で行われているプロセスを知りたい。


回答:


40

BIOSファームウェアは、実際にはブートローダーを選択しません。ドライブのセクター0からコードをロードして実行します。そこに何があっても、それは実行されます。うまくいけば、それはブートローダー(またはブートローダーをロードするもの)ですが、そうである必要はありません。初期のPC時代には、OSなしで単純に起動して実行するゲームがフロッピーディスクにありました。これらは現在、「ブーター」と呼ばれています。

UEFIファームウェアは実際にパーティションとファイルシステムを理解し、ドライブをスキャンしてUEFIシステムパーティションタイプを探します。これはファイルシステムであるため、複数のブートローダーをここに配置できます。UEFIファームウェアは、使用するブートローダーを選択するためのメニューまたは他の方法を提供することになっています。

多くのUEFIシステムは「レガシーモード」で起動します-UEFIは「互換性サービスモジュール」-BIOSのように見えるものをロードし、実際にはBIOSのように動作します。

GRUBは一般的なオープンソースのブートローダーで、Linuxをブートするか、Windowsブートローダー(通常はWindowsパーティションのブートフォルダーにあるwinload.exe)を「チェーンロード」する(制御を与える)ことができます。GRUBは、決定を下す能力を提供します。GRUBは構成ファイルを読み取り、それらからデフォルトの選択を取得できます。

たくさんの詳細な情報が必要な場合は、これをお読みください。


これは、Ubuntuでは、sudoマウントされていないディスクに何かを書き込むためにroot が必要な理由の1つです。プログラムまたは悪意のあるユーザーがマルウェアをブートパーティションに書き込む場合...
wizzwizz4

おかげで、あなたの説明が再び私の理解をより明確.thanksを作るLawrenceC
のPrashantシン

13

この図は、制御がファームウェア(BIOSまたはUEFI)からブートローダーに、およびブートローダーからUbuntuのオペレーティングシステムにどのように渡されるかを示しています。

ここに画像の説明を入力してください
          BIOSとUEFI

OSが異なるモード(BIOSとUEFI)でインストールされている場合、WindowsとUbuntuのデュアルブートは機能しません。


UbuntuをUEFIモードに変換する

  1. ブート修復を開始し、[ 詳細オプション ] -> [ GRUBロケーション ]タブを選択します。
  2. あなたが表示されない場合は別の/ boot / EFIパーティションのオプションを、この手段はあなたのPCには、任意のUEFIパーティションを持っていないこと。
  3. [ / boot / efiパーティションを分割する ]オプションが表示されている場合は、その左側のチェックボックスにチェックマークを付けて、右下隅の[ 適用 ]ボタンをクリックします。

    UbuntuをUEFIモードに変換する

  4. UEFIモードでハードドライブを起動するようにBIOSを設定します。この設定を調整する方法は、コンピューターの特定のモデルによって異なりますが、通常、この設定はBIOS / UEFIセットアップユーティリティの[ ブート ]タブの下のブート優先度設定にあります。


7

レガシーモード(UEFIではなくBIOSブート)では、BIOSがドライブの順序を制御します。昔々、これはケーブルによって制御されていました。BIOS設定を変更すると、ボックスを開いてケーブルを変更するよりも速くなります。

BIOSは、最初のディスク(またはBIOSによって制御されるドライブ順序)の最初のセクター(MBRまたはマスターブートレコードと呼ばれる512バイトのディスク)を(メモリに)ロードし、この「ブートローダー」に(CPU)制御を渡します。BIOSはこのようにジョブを完了し、最初のセクターのコードが実行されます。


SORRY先生BIOSがブートローダーとウィンドウに制御を与え、プロセスのBIOSがブートローダーを選択することを経る.whatそれはコントロールを与えるにブートローダので、別のブートローダーを持っているLinuxなどが、私は少しの混乱しています
のPrashantシン

2
システムは、ディスクごとに1つのブートローダーしか持つことができません(アクティブなのは1つだけです)。通常、システムに2つのオペレーティングシステムがある場合、2番目にインストールされたオペレーティングシステムは、MBRに独自のコードを書き込んだときにブートローダーを所有します。これが、GNU / Linux(Ubuntu)がGRUBを使用する理由です。ロード/実行するOSを尋ねるメニューを表示するマルチステップシステム(ステップ1はMBR、ステップ1.5と2は/ bootにあります)(とにかくgrubが知っているものに加えて、どんなISOでもそれに追加されました)。2つのディスクドライブがある場合。各ドライブにブートローダーを設定できますが、BIOSはどちらを実行するかを決定します。
-guiverc

したがって、コンピューターに2つのオペレーティングシステムがある場合、GRUBが、どちらのOSを読み込むかを尋ねるメニューを表示する必要があります。
プラッサントシン

windowsにはブートローダーもあります(とにかくVistaまで)。しかし、grubほどスマートではありません。windozeバージョンは、msft以外の製品を検索しません(ext / reiserfs / xfs / zfs / btrfs / ...を読み取ることができません)。したがって、* nixを自分で追加する必要があります。そして次のアップデート..... grubの方がずっと良いので、windozeバージョンは使用する価値がありません。windozeが一方のドライブにあり、Ubuntuが他方のドライブにある場合は、BIOSでブートを変更できます。しかし、grubはより高速/簡単です。(私の答えに満足している場合、質問を閉じるためにそれを受け入れます)
-guiverc

3
@Prashant Singh:Windowsブートローダーがこれを行わない(または、Windowsについて少し知っていたときに戻っていない)最も基本的な理由は、MicroSoftが他のオペレーティングシステムを実行させてお金をmakeけないことです。
-jamesqf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.