web-dev-qa-db-ja.com

GRUBとSYSLINUXの違いは何ですか?

この質問は、Ubuntuとその派生物がSYSLINUXGRUBDesktopリリースのISOイメージのブートローダー。

32ビットISOイメージから起動する場合、SYSLINUXブートプロセス(進行中のドットアニメーションで美しいスプラッシュスクリーンを表示するブート)を処理します。

ただし、64ビットISOイメージから起動する場合、GRUBは代わりに使用します(画面の上部にGNU GRUB version...を明確に表示する白黒画面)。

したがって、私の質問を言い換えると、UbuntuがISOイメージでGRUBとSYSLINUXを使用するようにしたdifferencesとは何ですか?どちらか一方を代わりに使用しないのはなぜですか?

説明のために

この質問は、私の説明の欠如とハードウェアの可用性のために、どういうわけか混乱を招きました。 この回答 (または下にスクロール)を追加して、64ビットISOイメージの説明を改善しました。

答えではないもの

以下のコメントスレッドは既にいくつかのアイデアを提供しましたが、ここで明確にする必要があります。答えはnotです。どちらもEFIを適切にサポートしているためです。この質問の目的は、EFIのサポートだけでなく、根本的な理由に向かってより多くを見つけることでした。

これが他の方法で尋ねられる場合、つまり「GRUBとSYSLINUXの両方がISOイメージで使用されるのはなぜですか?」これは、「GRUBはEFI対応システムをサポートするために含まれており、SYSLINUXは常に含まれており、BIOSのみのシステムで動作します」などの答えを与える可能性があります-これはnot私の意図です。

EFIサポートが答えの一部である可能性が高いことを認めなければなりません。

しかし、私はそれが答えだけではないはずだと感じています。 UbuntuがISOイメージに2つのブートローダーを含めるようにしたのは、EFIサポートだけではないはずです。それとも、本当にEFIサポートが唯一の違いなのでしょうか?もしあれば、これに答えてください。

9
clearkimura

これが私の最終回答です。これは buntu Wikiのこのリスト の2000+ページ内のキーワードと一致することで見つかった情報に基づいています。私が見つけたのは、Ubuntuの開発と仕様に関する古いメモ(単語、単語、単語)でした。そのため、この答えを得るまでに時間がかかりました。

オプション、間違った命名

まず、ブートローダーの命名を明確にします。

  • すべて大文字で始まる名前は、ブートローダーを指します(例:GRUB、SYSLINUX)

  • 最初の文字が大文字の名前は、プロジェクト名、またはブートローダーファミリのいくつかまたはすべてのバリアント(Syslinuxなど)を指します

  • 特に、「Syslinux」は「SYSLINUX」、「ISOLINUX」、「EXTLINUX」、「PXELINUX」を含むブートローダーのコレクションです

命名規則 に続いて、質問は実際には「El Torito no-emulation」ブートローダーの「ISOLINUX」、not「SYSLINUX」を参照しています。おそらく後者は、昔は前者と交換可能に使用されています。じゃあ心配しないで。

簡単な履歴

2005:GRUBではなく、ISOLINUXがUbuntu CDブートローダーに選択されました。

以前はGRUBが代替ブートローダーの可能性として提案されていましたが、このアプローチはWartyライブCDで試行され、ISOLINUXを使用したインストールCDと比較して、ブート性が大幅に低下しました。 ISOLINUXに基づいたソリューションに固執することは、長期的にサポートされるリリースに最も適切なアプローチであると感じています。

-from CdBootloader-Ubuntu Wiki

2006:gfxbootが追加されました。これは、2010年に引用された情報をサポートします。

Dapperでは、AMD64およびi386 CDイメージにgfxbootを追加し、これらのアーキテクチャでUbuntu CDイメージをブートするときにユーザーが最初に目にする、わかりやすいグラフィカルブートメニューを提供しました[...]

-from PortableGfxboot-Ubuntu Wiki

2009:ISOLINUX(SYSLINUXと表記)は、Ubuntu CDのブートに引き続き使用されます。

UbuntuライブCDは引き続きSYSLINUXを使用して起動しますが、これにはグラフィックモードでのカーネルの起動のサポートは含まれていません。つまり、ライブCDはグラフィカルブートメニューを表示し、テキストモードに戻ってカーネルを起動し、通常は後でグラフィックモードに戻ります。その結果、現在、ライブCDは、ブート時に通常のインストール済みシステムよりもちらつきます。

-from BootGraphicsArchitecture-Ubuntu Wiki

2010:ISOLINUXが使用されましたが、UEFIサポートにはGRUB 2が必要です。

現在のUbuntu CDは、グラフィカルメニューを実装するSuSEのgfxboot拡張機能を備えたISOLINUXを使用しています。

これは、維持するのがかなり難しいことが証明されており、関連するテーマコードを理解しているのはUbuntuの1人だけです[...]

[Since] GRUB 2には最近、グラフィカルメニューのサポートがアップストリームに追加されました。これに移行すると、メンテナンスの負荷を軽減できる可能性があります。 EFIをサポートするために、とにかくGRUB 2を使用する必要がありそうなので、CDに2つの異なるブートローダーを構成することは望ましくありません。

-from FoundationsTeam/Specs/MaverickCDBoot-Ubuntu Wiki

Foundations-m-grub2-boot-framebufferに従って、EFIでグラフィカルブートメニューをサポートする機能を検討する必要があります。 GRUBは、UGAおよびGOPグラフィックスをある程度サポートしています。

これには、CDのブートにGRUBを使用するか、少なくともそれをサポートするための最低限の構成が必要です[...]

-from FoundationsTeam/Specs/MaverickUefiSupport-Ubuntu Wiki

差異が見つかったかどうか

簡単な歴史をたどると、次のことがわかりました。

  • GRUBに回帰があったため、ISOLINUXが好まれました(2005)

  • ブート移行中にちらつきを引き起こすグラフィックモードでカーネルを起動するサポートがないにもかかわらず、ISOLINUXが依然として好まれていました(2009)

  • ISOLINUXはgfxbootでグラフィカルメニューを提供するために使用されてきましたが、それはGRUBで実装されていなかったか、不可能でした(2010)

  • GRUBは、Maverick(2010年以降)以降UEFIサポートでブートするために追加されました

それから、UbuntuライブCDに2つのブートローダーが含まれるのは、GRUBとSYSLINUXの違いnotであることに気付きました。

根本的な理由

私の読書から、これらの裏付けとなる事実は実際に次のことをほのめかしました。

  1. Ubuntu Live CDは、グラフィカルなメニューとテーマの提供をより良くサポートし、ブートスプラッシュを表示するためのスムーズな移行を行った特定のブートローダーを使用しています。この場合、SYSLINUX(正確にはISOLINUX)。

  2. UEFIシステムがますます一般的になると、UbuntuのみがUbuntuライブCDにGRUB(正確にはGRUB 2)を含めてUEFIサポートで起動しました。

何よりも、これは私が1年以上にわたって抱いていた質問に答えるものであり、この答えがついに私の好奇心を休めることになったと思います。

TL; DRGRUBおよびISOLINUXは、排他的な理由でUbuntuライブCDで使用されます。両方とも、より良いブートエクスペリエンスとハードウェアサポートのためにライブCDに含まれていました。

10
clearkimura

これは私の予備的な回答であり、私の質問の一部をよりよく理解できるようにしますが、それでも質問自体には答えません。

以下にいくつかの説明を示します。

  • 32ビットISOイメージとは異なり、64ビットISOイメージには実際にGRUBとSYSLINUXの両方が含まれます(これは、/boot/grubおよび/isolinuxディレクトリが両方ともISOイメージにあることで確認されます)
  • ISOイメージがEFI対応マシンで起動されると、GRUBが表示されます。
  • SYSLINUXは、BIOSのみのマシンでISOイメージを起動すると表示されます。
  • プリマスは、GRUBまたはSYSLINUXが表示されているかどうかに関係なく、進行状況ドットアニメーションを処理します(これは、最初のコメントで@muruによって正しく示唆されました)。

ブートエクスペリエンスの不一致

私のマシンでさえEFIを実装していて、セキュアブート機能[* 1] [* 2]を順番にオフにしていたため、「EFI対応」と書きました。 Live USBからUbuntu(私の場合はXubuntu 14.04)を起動します。

[* 1] Xubuntu 14.04 64ビットリリースは、セキュアブートがオンになっているときに起動できます。afterローカルディスク(Live USBではありません)にインストールされています。

[* 2] Xubuntu 16.04 64ビットリリースは、セキュアブートがオンになっているときにブートできます。

明確化方法

物理的なDVDメディアを使用して外部光学ドライブから起動する代わりに、仮想化ソフトウェア(私の場合はVirtualBox 4.3)を使用して上記のケースを証明しました。

  • VirtualBox 4.3にはすでにEFIとBIOSシステムを切り替えるオプションがあり、Machine>Settings>System>Motherboardタブの下で、拡張機能を探します:[] EFIを有効にします(特別なOSのみ)。デフォルトでは、チェックされていません[* 3]。

  • 仮想マシンは、64ビットホストシステムで実行される64ビットバージョンのVirtualBoxを使用して作成する必要があります。 Xubuntu 14.04 64ビットISOイメージは、次の試みで使用されます。

  • 最初の試み:デフォルト設定でISOイメージを実行しました(これはBIOSシステムを想定しています)。仮想マシンの背景が紫色で、アイコンが下部に表示されます。これはSYSLINUXです。

  • 2回目の試行:マシンを閉じて設定に移動し、オプション[* 3]をオンにしてEFIを有効にしました。同じISOイメージを使用して、仮想マシンを再び起動しました。今回は、GNU GRUB version...がモノクロテキストで表示されるまで時間がかかりました。これはGRUBです。

  • どちらの試みでも、起動プロセスを進めると、起動中に進行状況のドットアニメーションが表示されます。

  • ページのこのセクション Ubuntu Wikiには、上記の2つのケースを説明するスクリーンショットが含まれています。

免責事項

この回答は、ブートエクスペリエンスの不一致と明確化の方法について説明することを目的としています。ただし、これはnotが私の質問に対する最終的な答えです。質問に自分で答えることができた場合、最終回答は個別に投稿されます。

4
clearkimura