'' EFIブートパーティション ''および '' biosgrub ''パーティション


21

なぜこれらが必要なのですか?非UEFI(マスターブートレコード)でUbuntuをインストールし、「biosgrub」なしでUbuntuをインストールしましたが、正常に動作しますが、「biosgrub」パーティションを作成するよう求められる場合もあります。なぜ必要なのか、そうでないのかはわからない(どちらも同じシステム上にある)。

UEFI(GUID Partition Table)を使用する場合も同じことが起こります。唯一の違いは、「EFIブートパーティション」を作成するように求められることですが、「biosgrub」と同様に、作成するように求められることもあれば、求められないこともあります。

現在のインストールでは、作成するよう求められましたが、作成しなかったため、システムは正常です。システム、同じハードウェア、BIOSなどに変更はありません...誰もこれに光を当てることができますか?


2
起動の一貫性が必要です。UEFIブートモードでefiパーティションが必要な場合のみ、gptパーティショニングを使用するBIOSブートモードでのみbios_grubパーティションが必要です。UEFIを使用しているが、BIOSモードでBoot-Repairを起動し、BIOSモードでgrubをインストールしようとすると、bios_grubパーティションを作成するよう求められます。
オールドフレッド14

回答:


34

4つの条件(BIOS対EFIおよびMBR対GPT)がありますが、そのうちの2つには同じニーズがあります(その1つは非常にまれです)。

  • 従来のMBRパーティションテーブルを備えた従来のBIOSベースのコンピューターでは、GRUBの実行可能コードは、赤ちゃんが投げたスパゲッティのように広がります。その一部はMBRのブートコードセクションにあり、一部は公式に割り当てられていないMBR後のセクターにあり、一部はLinux /bootパーティションにあります。これは本当の混乱であり、開発者が巧妙なハックを作成し、(ほぼ)すべてのねじれを解決するために文字通り何十年も持っているからです。
  • 新しいGUIDパーティションテーブル(GPT)を備えた従来のBIOSベースのコンピューターでは、GRUBコードは前述の場合と似ています。ただし、MBRの直後のセクターは未割り当てではありません。GPT自体によって使用されます。GPTはGRUBがハイジャックするための類似した場所を提供しないため、GRUBの開発者はBIOSブートパーティション(フラグpartedによってGPartedで識別bios_grub)に落ち着いて、MBRディスク上のMBR後のセクターに配置されるコードを保持します。これは、MBRアプローチよりも実際に安全でクリーンです。これは、未割り当て領域を使用しようとする他のプログラムからGRUBコードを保護するのに役立つためです。
  • BIOSではなく新しいEFIを搭載したコンピューターでは、ブートローダーはMBR、公式に割り当てられていないMBR後のセクター、またはBIOSブートパーティションに保存されません。代わりに、ブートローダーはEFIシステムパーティション(ESP)と呼ばれるFATパーティションに通常のファイルとして存在します。(紛らわしいことに、 DebianおよびUbuntuインストーラーはESPを「EFIブートパーティション」という名前で参照しますが、この名前は標準ではありません。GPartedおよびpartedESPに「bootESPはGPTディスクまたはMBRディスクのいずれかに存在できますが、EFIベースのコンピューターでは前者がはるかに一般的です。EFIアプローチはより安全で、奇妙な場所に生のコードを隠さないため、BIOSアプローチよりもはるかに柔軟です;ブートローダーは、OSレベルのプログラムのようにファイルに常駐します。これにより、識別と操作が容易になります。 NVRAMのブートローダーでは、ブートプロセスで2番目の障害点が発生します。EFIの新しさは、十分にテストされていないことを意味し、EFI固有の問題のホストを説明します。

GhostMotleyX、LiveWireBT の応答に対するあなたのコメントは、「最良の」インストール方法はBIOS / MBRであると意見を述べました。もちろんこれは主観的なものですが、その評価には同意しません。BIOS / MBRアプローチは、最も安全性が低く最も安全です先ほど説明した3つのアプローチの不器用。EFIアプローチは、最も安全で柔軟なアプローチです。GRUB / GPTとEFIのアプローチには別々のパーティションが必要であるという事実にあなたがハングアップしていると思うが、それは大したことではない。システムのセットアップ時やパーティションのメンテナンス時を除き、これらのパーティションはほとんど目に見えないため、柔軟性が非常に高くなります。MBRとは異なり、GPTは4つのプライマリパーティションに限定されないため、レプラコーンが金を貯めるようにプライマリパーティションを貯める必要はありません。


回答してくださった皆様、本当に役立つ情報に感謝します。特にロッド・スミス。
GhostMotleyX 14

それでは、EFIブートシステムでは、1つの小さなパーティションだけが必要ですか?MBRブートセクターとgdisk EF02パーティションのコンテンツ(または同等のもの)は、FAT形式のEFIシステムパーティション(gdiskタイプEF00)のファイルに格納できますか?
ピーターコーデス

ピーター、はい、それは基本的に正しいです。EFIブートローダーは、ディスクまたはパーティションブートセクターではなく、ESPに保存されているファイルです。
ロッドスミス

UEFIブートとBIOSブートの両方をサポートしたい場合はどうすればよいですか?私は、GRUBの2つのコピー、1つだろうEFI System Partitionとの他のBIOS boot partition
ハローワールド

Hello World、1つのEFIモードと1つのBIOSモードのブートローダーが必要です。両方がGRUBである必要はありません。実際、少なくともそのうちの1つはそうしないことをお勧めします。ただし、このような構成は、単一のOSを起動するのにはあまり意味がありません。一部のデュアルブートシナリオでは、たとえば、1つのOSにEFIモードブートローダーがなく、他のOSが何らかの理由でEFIモードで起動する必要がある場合(たとえば、Windowsでディスクが2TiBを超える場合、フルサイズをサポートするにはGPTが必要です)。
ロッドスミス

7

レガシーブートをセットアップするときはGPTパーティションディスク上にbiosgrubパーティションを、UEFIブートをセットアップするときはEFIブートパーティション(GPTまたはMBRパーティションディスクの両方)を作成する必要があります。

  • GRUBでは、GPTディスクにポストMBR埋め込みギャップがないためEF02core.imgファイルを埋め込むにはBIOSシステムにBIOSブートパーティション(2 MiB、ファイルシステムなし、gdiskのタイプコード、またはGNU Partedのbios_grubフラグ)が必要です。[...]

https://wiki.archlinux.org/index.php/GPT#Bootloader_Support


1
おかげで、私は今理解したと思います。Ubuntu非UEFIをMBRディスクにインストールする場合、biosgrubは必要ありません。GPTディスク上のUEFIでUbuntuをインストールする場合、EFIパーティションを作成する必要があります。そして、私が経験していた矛盾は、GPTディスクにUEFI以外のUbuntuをインストールし、MBRを使用したUEFIをインストールするときでした。したがって、理論的にUbuntuをインストールする最良の方法は、MBRパーティションテーブルを使用した非UEFIまたはGPTパーティションテーブルを使用したUEFIです。
GhostMotleyX

@GhostMotleyXそれは正しいです。
LiveWireBT 14

1MiBでも十分です。en.wikipedia.org/wiki/BIOS_boot_partition#Overview(編集したばかり)の最後の段落で説明したように、最初の「通常の」1MiBにアライメントされたパーティションの前に配置します。gdiskのsortコマンドを使用して、開始セクターの順序でパーティションの番号を付け直すかどうか、またはそのままにするかどうかを決めていませんsdc4。おそらくソートはそれほど奇妙ではないので、私のgrubパーティションは常にになりますsdX1
ピーターコーデス

3

EFIとBIOSの両方を持っていることに対する1つの余分なポイント/動機を示します。

Grub2からLive SystemRescueCD.isoループを起動するためのUSBスティック。

どうして?簡単な答え:多くのPCで起動します。一部はUEFIを搭載し、一部は32ビットの古いBIOSのみを搭載しています

本当に複雑な動機:可能であれば、高度なハードウェア(UEFI)を使用します。

実際のライブ使用サンプル:

  • 4つのパーティションを持つUSBスティック(GPTモードでフォーマット)
  • NTFS上の最初のパーティション(Windows 7以降で表示可能)と残りのサイズのUSBスティック
  • Grub2およびSystemRescueCD.isoファイル用の2番目のパーティション(少なくとも1GiBが必要です(2GiBの場合、SystemRescueCD.isoの2つのバージョンを同時に実行できるため、古いバージョンを置き換える前に新しいバージョンをテストするためだけです))、通常はExt4ファイルシステムを使用しますそれのための
  • 少なくとも512MiBでFat32としてフォーマットされたEFI(WindowsがESPと呼んでいるもの)の3番目のパーティション(使用するPCが少ないとブータブルメディアとしてUSBスティックが表示されないPCを見たことがある)
  • BIOS_Grubの4番目のパーティション(フォーマットはありませんが、作成時にクリアされます)

1つの重要なこと:パーティションがシリンダーにアラインされていない場合、物理UEFI PCブートにリストされないが、他のUEFI PCおよびUEFIブートを使用するVirtualBOXに表示される8GiB LG USB Strict(私が所有)モードがアクティブになります... MiBに位置合わせされている場合、パーティションを作成するときにすべてのスペースを使用しますが、最後に1MiBに近いパーティション化されていないスペースはありませんが、シリンダーに位置合わせされると、最後の不完全なMiBは使用されません... (つまり、手動でシリンダーを調整します)それは機能しますが、私が言っているように、それはまだシリンダーに調整されています(私はあなたのためにパーティションツールをさせる代わりに手動でそれをしています)。

このような素晴らしいUSBリカバリスティックを取得する方法(2つのトリックがあります):

  1. パーティションをシリンダーに合わせます(MiBに合わせるための互換性が向上します)
  2. grub-install --target = i386-pcを実行してから、同じgrubパーティションで別のgrub-install --target = x86_64-efiを実行するため、両方のブートモードで1つのgrub.cfgのみを使用します

起動方法:

  • a)古いBIOSから起動し、MBRをロードしてから、grubフォームBIOS_grubパーティションのStage2、Grub2パーティションのcore.imgをロードします
  • b)UEFI互換のフォームから起動し、ESPパーティションから.efiファイルをロードします
  • grub.cfgが読み取られます(grub2パーティションに存在する場合)
  • grub2メニューが表示されます
  • その後、ループSystemRescueCD.iso(dochaceパラメーター付き)から起動することを選択し、grub.cfgに2つのオプションを設定しました。32Bitsに1つ、64Bitsに1つ(2つのdostartxパラメーターに設定するため、実際には4つのオプションがあります) GUIで直接起動します)。
  • 起動後にUSBスティックを取り出すことができます(このようなdocacheのおかげでLive Linux全体がramdriveにあります)、コマンドを入力する必要はなく、ペンドライブはマウントされません(再びdocacheパラメータのおかげです)。

このスティックを使用して、32ビットまたは64ビット(プロセサに拡張機能がある場合)で古いPC(USBから起動できる場合)を起動できますが、BIOSモードで起動します。

このスティックを使用して、32ビットと64ビットで新しいPC(USBから起動できる場合)を起動することもできますが、UEFIモードで起動します(ああ、UEFIモードで起動してからLinux Live SystemRescueCDを32ビットで起動するだけですモードおよび64ビットモード)。

だから私は、32ビットまたは64ビット、BIOSまたはUEFIなどに関係なく、現代または古い(USBブートサポートのみが必要です)近くのすべてのPCで起動できる1つのUSBスティックリカバリブートメディアをすべて持っています... 32ビットまたは64ビットを実行するものを選択します。

さらに、Windows 64Bits(古い32Bitsプロセッサ)のインストールを拒否するPCでテストしましたが、64ビットLinux Liveを実行できます(PAE機能がそのプロセッサに存在するため)。

サイドノート:NTFSなどの最初のパーティションは、Windows 7以降で共有できるデータを保持するためのものです(XPはGPTパーティションをサポートしていないため、XPには表示されません)...ディスクの一部、好きな場所に置くことができますが、パーティションテーブルの最初のエントリとしてマッシュに存在します。これは、リムーバブルにパーティションをマウントするためのhateable windowsモードが原因です。他を同時にマウントすることはできません。

WindowsおよびUSBパーティションの追加:partitiongテーブルのパーティションエントリをスワップする場合、つまり、アクセスするパーティションをテーブルの最初のパーティションとして配置すると、windowsからアクセスできます(形式がわかっている場合、fat32およびNTFS直接、特別なドライバーを使用したext2など)、パーティションテーブルの最初のエントリにあるものにのみアクセスを許可します... Windowsでこのような作業を実行できるツール(BootICEx86.exeと呼ばれる)がありますUSBスティックを取り外す必要もありません。

スーパーエクストラ:特別なツール(レキサーのツールを使用)で少し変更できるペンドライブ(ソニーの16GiBを所有しているのは非常に幸運です)もあるため、WindowsではUSBスティックではなくUSB HDDとして表示されます、その変更後、すべてのウィンドウでその上のパーティションを削除、作成、管理できます。また、それぞれが独自の文字を持つ複数のパーティションを同時にマウントできます。

Linuxユーザーは、Linuxをパーティション化可能なブロックデバイスと見なし、Windowsのようにパーティションのマウントなどをブロックする特別なコードを実装しないため、これについて心配する必要はありません。

ああ、はい、この最後の段落はM $の誰かがそれらを読んだ場合に備えて書かれているので、彼らの顔は床に落ちて、私はそれらを削除することを試みていますWindowsのcodeいコードを使用し、ユーザーがネイティブな方法でusbスティックにパーティションを作成できるようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.