GNU GRUB
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/10/19 15:29 UTC 版)
GNU GRUB | |
開発元 | GNUプロジェクト |
---|---|
最新版 | |
最新評価版 |
2.06~rc1[1]
/ 2021年3月12日 |
リポジトリ | |
プログラミング 言語 | アセンブリ言語、C言語[4] |
プラットフォーム | IA-32, x86-64, PowerPC |
サポート状況 | 開発中 |
種別 | ブートローダ |
ライセンス | GPLv3+[5] |
公式サイト | GNU GRUB |
GRUBはMultiboot Specificationのリファレンス実装でもある。Multiboot Specification(マルチブート仕様)とは、コンピュータにインストールされた複数のオペレーティングシステムを個別に起動する際にOSの選択肢をユーザーに提示したり、または、あるOSのパーティション上に存在する特定のカーネルに関する利用可能な設定を有効化する方法を提供するなどといった、マルチブートに関するクロスプラットフォームなシステムを規定する仕様である[注釈 1]。同仕様は現在フリーソフトウェア財団 (FSF) がメンテナンスしている。
もともとGRUBはGrand Unified Bootloader[注釈 2]という名前でGNUプロジェクトとは無関係のプロジェクトにて開発されていたが、GNUオペレーティングシステムは開発中のカーネルであるGNU HurdをブートするためGRUBを利用していた。のちに主要貢献者の助言もあり、公式なGNUプロジェクトとなった。現在ではGNUのカーネルであるGNU Hurdだけではなく、主にLinuxやFreeBSDなどのUnix系OSや、Solaris x86(10 1/06 release以降[7])でも利用されている。
歴史
GRUBは当初、エーリヒ・シュテファン・ブーリン(Erich Stefan Boleyn)により開発されており[8]、これはFSFが開発していたGNU Hurdオペレーティングシステムを起動させるための作業の一環であった[9]。1999年、主要貢献者であったゴルドン・マッツィヒカイト(Gordon Matzigkeit)と奥地秀則(Yoshinori K. Okuji)の働きかけによって、GRUBは公式GNUプロジェクトの公開プロジェクトとなり最新のソースコードをホストするanonymous CVSが提供されることとなった[9]。
特徴
GRUBは動的に設定でき、コンピュータのブートタイム中に異なるカーネルや初期RAMディスク (initrd) を選択するといった柔軟な設定変更が可能である。そのような目的を実現するために、GRUBはシンプルかつBashライクなコマンドラインインタフェースを提供しており、ユーザーは通常のブートメニューリストにその場で新たなブートシーケンスを追加することもできる。
GRUBは(起動処理の初期のコードがアセンブリ言語を利用している[10]のを除き、)移植性が極めて高く、複数の実行可能フォーマットをサポートしており、ディスクのジオメトリ変換に依存していない。GRUBはLogical Block Address(LBA)モードのサポートに加え、ほぼ全ての主要なUNIXファイルシステム、並びにVFAT及びNTFSなどMicrosoft Windowsで使用するファイルシステムもサポートしている。GRUBを利用することで、サポートしている任意のファイルシステム上に存在するファイルの中身をユーザーは見ることができる。
GRUBは様々なユーザインタフェースを用いて設定することができる。多くのLinuxディストリビューションではGRUBのブートメニューに表示される背景画像のカスタマイズなどを行うグラフィカルな設定ツールを用意している。またGRUBのテキストインタフェースを利用すると、リモート・ターミナルからシリアルポート経由で接続できる[11]。
GRUBはネットワーク経由でのOSイメージのダウンロードも可能で、従ってディスクレスシステムもサポートしている。GRUBはローカルから起動するだけではなく、起動前の自動的なOSイメージの伸長もできる。
GRUBはスクロール可能なOSブート選択画面を表示する。GRUBは設定ファイル"menu.lst"(または"grub.cfg"など)にエントリーを追加することで150またはそれを超えるブート選択を容易に行うことが可能であり、矢印キーでブートするOSを選択する。
GRUBはマルチブートに対応しているが、チェーンロードを利用しマルチブート非対応のOSをもサポートしている。ブートOSの追加と同じく、2、3行のコマンドシーケンスを設定ファイルに書き込む、またはGRUBシェルでその場で適切なコマンドを実行することで、MS-DOS、Windows、Linux、BSD、または、Solarisオペレーティングシステムをいとも簡単に起動させることができる。これらUnix系OSやDOS、Windowsなどを起動するためのチェーンローダがGRUBに組み込まれている。
前述の通り、通常のブートメニューに加え、Bashライクなターミナルコマンドプロンプトが利用でき、ブートプロセスの一部または全部をチェックしたり変更することが可能な豊富なコマンドセットを持っている。これらの手法を活用することで、コンピュータにインストールされているOSの特別な知識が事前になくとも、インストールされているOSを起動する目的でフロッピーディスク、USB、またはCD-ROMデバイスからGRUBを利用し起動することもできる。
GRUBは一般的なUnix系OS上においてインストール可能であり、また特定の実装を用いてDOSやWindowsからのインストールも可能である。
- GNU GRUBのページへのリンク