GNU GRUB

GNU GRUB
原作者エーリヒ・ブーリン
開発者GNUプロジェクト
初回リリース1995 (1995年
安定版リリース
2.14 [ 1 ] ウィキデータで編集する / 2026年1月14日
リポジトリ
書かれたアセンブリC [ 2 ]
オペレーティング·システムLinuxGNU/HurdmacOSBSD、(Solaris / illumos(x86 ポート))、およびWindows(チェーンローディング経由)
プラットフォームIA-32x86-64IA-64ARMPowerPCPower ISAs390xMIPSRISC-VLoongArchSPARC
入手可能な英語など
タイプブートローダー
ライセンス2007年: GPL-3.0以降[ a ] [ 4 ] 1999年: GPL-2.0以降[ b ]
Webサイトwww .gnu .org /ソフトウェア/grub

GNU GRUB ( GNU GRand Unified Bootloaderの略、一般にGRUBと呼ばれる) は、 GNU プロジェクトのブートローダパッケージです。GRUB は、フリーソフトウェア財団マルチブート仕様リファレンス実装であり、マルチブート用に設定されたコンピュータにインストールされている複数のオペレーティング システムのいずれかを起動するか、特定のオペレーティング システムのパーティションで利用可能な特定のカーネル構成を選択するかをユーザーに提供します。

GNU GRUBは、 Grand Unified Bootloader ( Grand Unified Theory [ 5 ]をもじったもの)と呼ばれるパッケージから開発されました。主にUnix系システム で使用されています。

手術

MBRパーティション化されたハード ドライブ上の GRUB2 。ステージ 1 () は、パーティション ブート セクターboot.imgの 1 つに書き込むこともできます。
GPTパーティションのハードドライブ上の GRUB2 、 BIOS ファームウェアでの起動、またはUEFI 互換モード (CSM)

起動中

BIOSを搭載したIBM PC互換機の電源を入れると、BIOSは起動可能なプライマリデバイス(通常はコンピュータのハードディスク)を見つけ、マスターブートレコード(MBR)から初期ブートストラッププログラムを実行します。MBRはハードディスクの最初のセクターです。このブートストラッププログラムは、1セクターに収まる必要があるため小さくなければなりません。長い間、セクターのサイズは512バイトでした。2009年以降、セクターサイズが4096バイトのハードディスク(Advanced Formatディスクと呼ばれる)が利用可能になりましたが、2013年10月現在、このようなハードディスクは依然として512eエミュレーションを使用して512バイトセクターでアクセスされています。[ 6 ] 従来のMBRパーティションテーブルは最大4つのパーティションをサポートし、合わせて64バイトを占有します。オプションのディスク署名(4バイト)とディスクタイムスタンプ(6バイト)を合わせると、ブートローダのマシンコードに使用できるのは434~446バイトになります。このような小さなスペースは非常に単純なブートローダには十分かもしれませんが、 [ 7 ]複雑で複数のファイルシステムやメニュー方式のブート選択肢などをサポートするブートローダを格納するには十分ではありません。したがって、フットプリントが大きいブートローダはいくつかの部分に分割され、最小の部分はMBRに収まり、1つまたは複数の大きな部分はMBRと最初のパーティションの間にある空きセクターなど、他の場所に格納されます。MBRのコードは、2番目の部分を開始する以上のことはほとんど行いません。

ブートローダーの残りの部分の目的は、オペレーティングシステムを設定してカーネルを起動することで、実際にオペレーティングシステムを起動することです。カーネルはほとんどの場合、適切なファイルシステム上にファイルとして保存されますが、ファイルシステムの概念はBIOSには理解されていません。したがって、BIOSベースのシステムでは、ブートローダーの役割は、これらのファイルの内容にアクセスし、RAMにロードして実行することです。

ブートローダーの1つのアプローチは、基盤となるファイルシステムを理解せずにハードディスクセクターに直接アクセスしてカーネルイメージをロードすることです。通常、マップまたはマップファイル(カーネルイメージが占有する物理セクターのリストを含む補助ファイル)の形で、追加の間接レベル が必要になります。このようなマップは、新しいカーネルイメージのインストール、ファイルシステムのデフラグなどにより、カーネルイメージがディスク上の物理的な位置を変更するたびに更新する必要があります。また、マップの物理的な位置が変更された場合、セクター間接参照メカニズムが引き続き機能するように、ブートローダーのMBRコード内でマップの位置を更新する必要があります。これは面倒なだけでなく、システムアップデート中に何か問題が発生した場合にシステムを手動で修復する必要が生じます。[ 8 ]

もう1つのアプローチは、ブートローダーに基盤となるファイルシステムを認識させ、カーネルイメージが実際のファイルパスを使用して構成およびアクセスされるようにすることです。そのためには、ブートローダーがサポートされているファイルシステムごとにドライバーを含む必要があり、それによってブートローダー自体がそれらを理解してアクセスできるようになります。このアプローチにより、ハードディスクセクターの位置をハードコードする必要がなくなり、マップファイルの存在もなくなり、カーネルイメージが追加または移動された後にMBRを更新する必要もありません。ブートローダーの構成は通常のファイルに保存され、カーネルイメージが実際に起動する前に、ファイルシステムを認識する方法でブート構成を取得するためにアクセスされます。そのため、システム更新中に問題が発生する可能性が低くなります。欠点としては、このようなブートローダーはサイズが大きくなり、複雑になります。[ 8 ]

GNU GRUBは、基盤となるファイルシステムを理解するという2番目のアプローチを採用しています。ブートローダー自体は、MBRブートスキームに適合するように 複数のステージに分割されています。

GRUBには2つの主要なバージョンが一般的に使用されています。GRUBバージョン0はGRUB legacyと呼ばれ、 Linuxディストリビューションの古いリリースでのみ普及しています。GRUB 2はゼロから開発され、前身となるバージョンを置き換えることを目的としており、現在ではほとんどのLinuxディストリビューションで使用されています。

バージョン 0 (GRUB レガシー)

GRUB Legacy メニュー ( Ubuntu 9.04 インストールの一部として実行)

GRUB 0.x は2段階のアプローチを採用しています。マスターブートレコード (MBR) には通常、GRUBステージ 1 が含まれますが、アクティブパーティションのブートセクタからGRUBステージ 1をチェーンロードする標準的な MBR 実装が含まれる場合もあります。ブートセクタのサイズが小さい (512 バイト) ため、ステージ 1では、ディスクの先頭付近 (最初の 1024 シリンダ内) の固定位置からいくつかのディスクセクタをロードして、GRUB の次のステージをロードする以上のことはほとんどできません。

ステージ1はステージ2を直接ロードできますが、通常はステージ1.5をロードするように設定されています。 は、ハードディスクのMBRの直後、最初のパーティションの前にある最初の30 KiBにあります。このスペースが利用できない場合(通常とは異なるパーティションテーブル、特殊なディスクドライバー、 GPTまたはLVMディスクなど) 、ステージ1.5のインストールは失敗します。ステージ1.5のイメージにはファイルシステムドライバーが含まれており、ファイルシステム内の任意の既知の場所(例: )からステージ2を直接ロードできます/boot/grub。その後、ステージ2はデフォルトの設定ファイルとその他の必要なモジュールをロードします。

バージョン 2 (GRUB 2)

GRUB 2 – MBR と GPT のパーティション分割とブート シーケンスを視覚化します (BIOS ファームウェアを使用するシステム)。

BIOSファームウェアを使用したシステムの起動

  • 右最後の画像の図を参照してください。[ 9 ]
  • boot.imgステージ1 )は、マスターブートレコード(セクター0のMBRブートコード)の最初の440バイトに書き込まれます。または、オプションでパーティションブートセクター(PBR)に書き込まれます。64diskboot.imgビットのLBAアドレスでアドレス指定されます。実際のセクター番号は によって書き込まれますgrub-installdiskboot.imgは の最初のセクターであり、 LBAセクター番号で識別されるcore.imgの残りの部分をロードする目的でのみ使用されます。LBAcore.imgセクター番号も によって書き込まれますgrub-install
    • MBRパーティションディスクでは、core.imgステージ1.5)はMBRと最初のパーティションの間にある空きセクター(存在する場合)に格納されます。最近のオペレーティングシステムでは、アライメントのためにここに1MiBのギャップ(2047 512バイト、または255 4KiBセクター)を設けることが推奨されています。このギャップは、1996年以前にBIOSで使用されていたシリンダヘッドセクター(C/H/S)アドレス指定のセクター数制限を想起させるため、以前は62セクター(31KiB)でしたが、現在は32KiB未満になるように設計されています。core.img
    • GPT パーティション ディスクではcore.img、独自のパーティションに書き込まれます。このパーティションには「BIOS_grub」のフラグが付けられる必要があり、フォーマットされてはならず、1 MiB ほど小さくてもかまいません。
  • ステージ2: によって設定されたパーティションからcore.imgロードします。パーティションインデックスが変更されている場合、GRUBは を見つけることができなくなり、ユーザーにGRUB Rescueプロンプトが表示されます。/boot/grub/i386-pc/normal.modgrub-installnormal.mod
  • GRUB2 のインストール方法に応じて、Linux ディストリビューションのルート/boot/grub/パーティション内、または別の/bootパーティション内に存在します。
  • normal.mod がロードされた後:normal.modを解析し/boot/grub/grub.cfg、オプションでモジュール (グラフィカル UI やファイル システムのサポートなど) をロードして、メニューを表示します。

UEFIファームウェアを使用したシステムでの起動

  • /efi/<distro>/grubx64.efi( x64 UEFI システムの場合) EFI システム パーティションにファイルとしてインストールされ、MBR セクター 0 にファイルを置くことなく、ファームウェアによって直接起動されます。boot.imgこのファイルは、stage1 および stage1.5 に似ています。
  • /boot/grub/EFI システム パーティションや別の/bootパーティションなどにインストールできます。
  • x64 UEFI システムの場合、stage2 は/boot/grub/x86_64-efi/normal.modファイルとその他の/boot/grub/ファイルです。

起動後

GRUBは、grub-installによって検出されたオペレーティングシステム(OS)からユーザーが選択できるメニューを表示します。GRUBは、ユーザーが定義したタイムアウト後に指定されたOSを自動的にロードするように設定できます。タイムアウトが0秒に設定されている場合、コンピューターの起動中に を押し続ける⇧ Shiftか、UEFIを使用してロードされた最近のGRUBのバージョンでは を素早く押すことで、ブートメニューにアクセスできます。[ 10 ]Esc

オペレーティング システム選択メニューでは、GRUB はいくつかのコマンドを受け入れます。

  • を押すことで、オペレーティングシステムを起動する前に、選択したメニュー項目のカーネルパラメータを編集することができます。GRUBでこれを行う理由(つまり、すでに起動しているシステムのパラメータを編集しない理由)は、システムが起動に失敗したなどの緊急事態である可能性があります。カーネルパラメータ行を使用すると、カーネルに対して無効にする(ブラックリストに登録する)モジュールを指定することもできます。これは、特定のカーネルモジュールが壊れていて起動できない場合に必要になることがあります。たとえば、カーネルモジュールをブラックリストに登録するには、カーネルパラメータの末尾にを追加します。envidia-currentmodprobe.blacklist=nvidia-current
  • を押すと、ユーザーはGRUBコマンドラインに入ります。GRUBコマンドラインはGNU Bashに似ていますが、行編集機能とGRUB固有のコマンドのサブセットのみを実装しています。[ 11 ]c

ブートオプションが選択されると、GRUBは選択されたカーネルをメモリにロードし、制御をカーネルに渡します。あるいは、GRUBはチェーンロードを使用して、ブートプロセスの制御を別のブートローダーに渡すこともできます。これは、マルチブート仕様をサポートしていない、またはGRUBが直接サポートしていない オペレーティングシステムをロードするために使用される方法です。

パーティションの識別(UUIDの回避策)

コンピュータには複数のハードディスクを接続できます。これらのハードディスクはSATAポートで識別できます。コンピュータがPOSTするたびに、特定のマザーボードポートに接続されたハードディスクに同じ識別子(例: )が割り当てられますhd0, hd1, …。しかし、このような一貫性が保証できない場合はどうでしょうか?接続されたハードディスクの配置が起動ごとに変化した場合はどうなるでしょうか?ハードディスクが別のコンピュータに接続された場合はどうなるでしょうか?

GRUB レスキューコンソール( をロードすると利用可能)またはGRUB コンソール( をロードすると利用可能)lsに入ると、利用可能なすべてのハードディスクとパーティションのリストを取得できます。例えば、)には、実際のハードディスクとパーティションに割り当てられる番号が表示されます。 core.imgnormal.modls (hd0,5)/

hd0"デバイス番号によるハードディスクの番号付けスタイルの一貫性は保証できないため、GNU GRUB は、パーティション (実際にはファイル システム インスタンス) を識別するために、 Universally Unique Identifier (UUID) を使用できます。

ext2、ext3、ext4、xfs の各ファイルシステムは、インスタンスを一意に識別するために UUID を使用します。UUID はパーティションのフォーマット時に作成されます。UUID はファイルシステムの一部であり、スーパーブロックに書き込まれます。フォーマット以外の操作では、UUID は変更されません。UUID を変更したり、 dd を使用してパーティション全体を複製することで 複製したりすることも可能です。

このファイルgrub.cfgはGRUBの設定に使用されます。このファイルには、起動時に実行されるコマンドが含まれています。有効な が存在しない場合grub.cfg、GRUBはプロンプトを表示します。

絶対最小限には、grub.cfg次の 2 つのコマンドのみが含まれる場合があります (初期 ramdisk を参照)。

linux (hd0,1)/kernel/vmlinuz-3.20.1-4 ro # 最初のハードディスクの最初のパーティションの/kernelディレクトリにある「vmlinuz-…」というファイルをLinuxカーネルイメージとして使用します initrd (hd0,1)/boot/initrd.img-3.20.1-4 # 最初のハードディスクの最初のパーティションの/bootディレクトリにある「initrd.img–…」というファイルを初期RAMディスクとして使用します 

ファンシーな人はgrub.cfg、表示されるメニューを説明し、複数の色を使用し、背景画像を指定することもあります。

歴史

GRUBは当初、フリーソフトウェア財団が開発したオペレーティングシステムGNU / Hurdのブート作業の一環として、Erich Boleynによって開発されました。[ 12 ] 1999年に、Gordon MatzigkeitとYoshinori K. OkujiはGRUBをGNUプロジェクトの公式ソフトウェアパッケージとし、開発プロセスを一般に公開しました。[ 12 ] 2014年現在、Linuxディストリビューションの大部分はGNU GRUB 2を採用しています。

発達

GRUBバージョン0(別名「GRUB Legacy」)は開発が終了しており、段階的に廃止されています。[ 13 ] GNU GRUBの開発者はGRUB 2に注力し始めました。[ 14 ] GRUB 2は、GNU GRUBをよりクリーンで、堅牢で、移植性が高く、強力にすることを目標に、完全に書き直されました。GRUB 2はPUPAという名前で始まりました。PUPA日本の情報処理推進機構(IPA)によって支援されていました。PUPAは、GRUBバージョン0.9xがGRUB Legacyに改名された2002年頃にGRUB 2の開発に統合されました。

GRUB 2プロジェクトの目標には、非x86プラットフォームのサポート、国際化とローカライズ、非ASCII文字、動的モジュール、メモリ管理、スクリプトミニ言語、プラットフォーム固有(x86)コードのプラットフォーム固有モジュールへの移行、オブジェクト指向フレームワークなどが含まれています。GNU GRUBバージョン2.00は、2012年6月26日に正式にリリースされました。[ 15 ] [ 16 ]

最も広く使用されているLinux ディストリビューションのうち 3 つは、主流のブートローダーとして GRUB 2 を使用しています。[ 17 ] [ 18 ] [ 19 ] Ubuntu は、2009 年 10 月のバージョン 9.10 でこれをデフォルトのブートローダーとして採用しました。[ 20 ] Fedora も、2011 年 11 月にリリースされた Fedora 16 でこれに続きました。[ 21 ] OpenSUSE は、2012 年 9 月の 12.2 リリースで GRUB 2 をデフォルトのブートローダーとして採用しました。[ 22 ] Solarisも、Solaris 11.1 リリースで x86 プラットフォーム上の GRUB 2 を採用しました。[ 23 ] Buildrootもx86およびx86_64ターゲットに GNU GRUB を使用しています。

2015年後半には、バックスペースキーを28回押してログインパスワードを回避する脆弱性が発見され、すぐに修正されました。[ 24 ] [ 25 ]

変種

GNU GRUBはフリーソフトウェアであるため、いくつかの派生版が作成されています。GRUBのメインラインにマージされていない注目すべき派生版をいくつかご紹介します。

ユーティリティ

GRUB設定ツール

StartUp-Manager、GRUBの設定に使用されるプログラム

様々なディストリビューションで使用されているセットアップツールには、GRUBをセットアップするためのモジュールが含まれていることがよくあります。例えば、SUSE LinuxおよびopenSUSEディストリビューションのYaST2 、 Fedora / RHELディストリビューションのAnacondaなどです。StartUp-ManagerとGRUB Customizerは、Debianベースのディストリビューション向けのグラフィカル設定エディタです。StartUp-Managerの開発は、リード開発者が個人的な理由でプログラムの開発を積極的に行わないことを理由に、2011年5月6日に中止されました。[ 35 ] GRUB CustomizerはArchベースのディストリビューションでも利用可能です。

GRUB 2にはKDEコントロールモジュールがあります。[ 36 ] [ 37 ]

GRLDR ICEは、GRUB4DOSのgrldrファイルのデフォルト設定を変更するための小さなツールです。[ 38 ]

ブート修復ユーティリティ

Boot-Repairは、GRUBおよびMicrosoft Windowsブートローダーで頻繁に発生するブート関連の問題を修復するためのシンプルなグラフィカルツールです。このアプリケーションはGNU GPLライセンスの下で利用可能です。Boot-Repairは、Debian、Ubuntu、 Mint、Fedora、openSUSE、Arch Linuxなど、複数のLinuxディストリビューションでGRUBを修復できます。

GRUBカスタマイザー

Windows用インストーラー

Grub2WinはWindows用のオープンソースソフトウェアパッケージです。WindowsディレクトリからGNU GRUBを起動できます。セットアッププログラムは、NTFSパーティションにGNU GRUBバージョン2.12をインストールします。その後、Windows GUIアプリケーションを使用して、GRUBブートメニュー、テーマ、UEFIブート順序、スクリプトなどをカスタマイズできます。すべてのGNU GRUBスクリプトとコマンドは、UEFIシステムとレガシーシステムの両方でサポートされています。Grub2Winは、Windows、Ubuntu、openSuse、Fedora、その他多くのLinuxディストリビューションのマルチブート用にGRUBを設定できます。SourceForgeからGNU GPLライセンスの下で無料で入手できます

代替ブートマネージャー

GRUB の強みは、サポートされるプラットフォーム、ファイル システム、オペレーティング システムの範囲が広いことであり、ディストリビューションや組み込みシステムのデフォルトの選択肢となっています。

ただし、よりフレンドリーなユーザー エクスペリエンス、グラフィカル OS セレクター、より簡単な構成を提供する、エンド ユーザーを対象としたブート マネージャーもあります。

  • rEFInd – Macintosh スタイルのグラフィカル ブート マネージャー。UEFI ベースのコンピューター専用 (BIOS はサポートされていません)。
  • CloverEFI – BIOSおよびUEFIベースのコンピュータ向けのMacintoshスタイルのグラフィカルブートマネージャ。TianoCoreプロジェクトのDUETを大幅に改良してUEFIをエミュレートし、BIOSシステムでもFATフォーマットのパーティションを必要とします。利点として、パーティションのブートセクターに基本的なファイルシステムドライバが搭載されているため、第2段階または第3段階の脆弱性や、悪名高いGRUB Rescueプロンプトを回避できます。ユーザーインターフェースはrEFIndに似ており、どちらも廃止されたブートマネージャrEFItから継承されています。

非グラフィカルな代替手段:

  • systemd-boot – テキストベースの OS 選択メニューを備えた軽量の UEFI 専用ブート マネージャー。

ハウツーとトラブルシューティング

ディストリビューション Wiki には、一般的な問題やカスタム セットアップに関する多くの解決策が掲載されており、役立つ可能性があります。

ドキュメント

入門記事

技術的な詳細

参照

注記

  1. ^ 2007年7月21日からGPL-3.0以降。 [ 3 ]
  2. ^ 1999年から2007年7月2日まではGPL-2.0以降。

参考文献

  1. ^ Daniel Kiper. 「GRUB 2.14 リリース」. 2026年1月15日閲覧。
  2. ^ 「Ohloh Analysis Summary – GNU GRUB」。Ohloh 2009年2月4日時点のオリジナルよりアーカイブ。 2010年5月12日閲覧
  3. ^ “GNU General Public License Version 3への移行” . 2007年7月21日. 2021年10月27日時点のオリジナルよりアーカイブ。 2021年10月27日閲覧
  4. ^ 「GNU GRUBライセンス」 。2013年9月11日時点のオリジナルよりアーカイブ
  5. ^ EnterpriseLinux.com の定義 2010年12月3日アーカイブ、 Wayback Machine GRand Unified Bootloader の定義
  6. ^ライアン・スミス(2009年12月18日)「Western Digitalの高度なフォーマット:4Kセクターへの移行が始まる」 AnandTech 2012年3月12日時点のオリジナルよりアーカイブ。 2013年10月10日閲覧
  7. ^ "mbldr (Master Boot LoaDeR)" . mbldr.sourceforge.net . 2009年. 2013年3月16日時点のオリジナルよりアーカイブ。 2013年10月10日閲覧
  8. ^ a b「ブートとブートマネージャ」。SUSE。2013年9月17日時点のオリジナルよりアーカイブ2013年10月10日閲覧。
  9. ^ 「GNU GRUBマニュアル2.04」。www.gnu.org 。 2018年43日時点のオリジナルよりアーカイブ2020年11月10日閲覧。
  10. ^ Hoffman, Chris (2014年9月22日). 「GRUB2ブートローダーの設定方法」 HowToGeek.com . 2015年4月28日時点のオリジナルよりアーカイブ2015年4月25日閲覧。
  11. ^ 「GNU GRUBドキュメント」2014年4月18日時点のオリジナルよりアーカイブ2014年4月16日閲覧。
  12. ^ a b GRUBマニュアル – 1.2 Grubの履歴Archived April 16, 2014, at the Wayback Machine . Gnu.org (2012-06-23). 2012年12月1日閲覧。
  13. ^ GNU GRUB – GRUB Legacy 2014年4月20日アーカイブ、 Wayback Machine . Gnu.org. 2012年12月1日閲覧。
  14. ^ 「GNU GRUB – GRUB 2」。2008年6月7日時点のオリジナルよりアーカイブ2014年4月18日閲覧。{{cite web}}: CS1 maint: bot: 元のURLステータス不明(リンク
  15. ^ Serbinenko, Vladimir (2012年6月28日). 「GRUB 2.00 リリース」 . grub-devel (メーリングリスト). 2013年1月13日時点のオリジナルよりアーカイブ。 2012年12月1日閲覧
  16. ^ Larabel, Michael. 「GRUB 2.00 ブートローダーが正式にリリース」 . Phoronix.com . 2016年9月13日時点のオリジナルよりアーカイブ。 2012年6月28日閲覧
  17. ^ Haddon, Tom (2012年1月26日). 「Ubuntu入門」 . WebJunction. 2012年10月28日時点のオリジナルよりアーカイブ。 2012年9月21日閲覧
  18. ^ Janssen, Cory. 「Red Hat Enterprise Linux (RHEL) とは?」 Technopedia. 2012年10月3日時点のオリジナルよりアーカイブ。 2012年9月21日閲覧
  19. ^ Varghese, Sam (2012年9月20日). 「SUSE CEO、民営化以降の進捗状況を報告」 . 2012年9月22日時点のオリジナルよりアーカイブ2012年9月21日閲覧。
  20. ^ 「9.10 Karmic GRUB version」 Distrowatch.com。2012年5月9日時点のオリジナルよりアーカイブ2012年7月8日閲覧。
  21. ^ GRUB 2 2012年8月5日アーカイブ、 Wayback Machine . FedoraProject. 2012年12月1日閲覧。
  22. ^ openSUSE:Upcoming features – openSUSE 2012年9月20日アーカイブ、 Wayback Machine . En.opensuse.org. 2012年12月1日閲覧。
  23. ^ Solaris 11.1 2018年6月19日アーカイブ、 Wayback Machine。Oracle 2015年3月19日閲覧。
  24. ^ Khandelwal, Swati (2015年12月16日). 「Backspaceキーを28回押すだけでLinuxコンピュータにハッキングできる」 . thehackernews.com . 2017年4月30日時点のオリジナルよりアーカイブ。 2017年3月13日閲覧
  25. ^ Marco and, Hector; Ripoll, Ismael (2015年12月). 「Back to 28: Grub2 Authentication 0-Day」 . 2017年5月17日時点のオリジナルよりアーカイブ2017年3月13日閲覧。
  26. ^ x86: ブート時にGRUBメニューを編集してブート動作を変更するArchived July 19, 2011, at the Wayback Machine、x86ベースシステムでのSolarisブート動作の変更(タスクマップ) – システム管理ガイド:基本管理
  27. ^ x86: サポートされている GRUB 実装Archived October 21, 2009, at the Wayback Machine , (System Administration Guide: Basic Administration) – Sun Microsystems
  28. ^ Peng, Tao. 「Grub4ext4」 . 2016年12月31日時点のオリジナルよりアーカイブ2017年6月13日閲覧。
  29. ^ 2.3 Syllable が独自の GRUB を持っているのはなぜですか? 2011年1月7日アーカイブ Wayback Machine、Syllable ドキュメント
  30. ^ 「TrustedGRUB プロジェクト」 . sourceforge.net . 2013年6月5日. 2014年11月29日時点のオリジナルよりアーカイブ2014年11月18日閲覧。
  31. ^ BIOS実装テストスイートArchived October 19, 2016, at the Wayback Machine , Official BITS website
  32. ^ "grub4dos" . Googleサイト. 2019年4月7日時点のオリジナルよりアーカイブ2019年4月7日閲覧。
  33. ^ 「GRUB for DOS Introduction」 . grub4dos.sourceforge.net . 2007年. 2019年4月7日時点のオリジナルよりアーカイブ。 2019年4月7日閲覧
  34. ^ GitHubgrub4dos
  35. ^ “StartUp-Manager is dead : StartUp-Manager” . launchpad.net . 2011年5月6日. 2020年8月1日時点のオリジナルよりアーカイブ2017年4月9日閲覧。
  36. ^ GRUB2 ブートローダーエディタArchived September 7, 2015, at the Wayback Machine . Kde-apps.org (2012-06-18). 2012年12月1日閲覧。
  37. ^ "Grub2 KCM" . KDE-Apps.org . 2015年9月6日時点のオリジナルよりアーカイブ2011年1月27日閲覧。
  38. ^ 「Grub4dosチュートリアル」 Narod.ru . 2015年5月3日時点のオリジナルよりアーカイブ2015年4月25日閲覧。