GRUB (Grand Unified Bootloader)とは、高機能なブートローダで、GNUプロジェクトが開発している。
GRUBフォルダを見つけられなかったり、GRUBフォルダ内のコンテンツが見つからないか壊れていた場合、GRUBはレスキューモードとなり、次のようなプロンプトが表示される。
grub rescue>なお、GRUBがrescue modeになった場合は、キーボードが日本語配列になっていない。記号の入力のしかたを次に示す。
| 文字 | キー | 
|---|---|
| ( | Shift + 9 | 
| ) | Shift + 0 | 
| = | ^ | 
GRUBがrescue modeになった場合、まずどのようなパーティションが存在するのかを確認する。
error: no such devie: xxx
Entering rescue mode...
grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos4)
grub rescue>次に、bootディレクトリがどのパーティションに存在するのかを確認する。
grub rescue> ls (hd0)/
error: unknown filesystem.
grub rescue> ls (hd0,msdos5)/
./ ../ bin/ boot/ etc/ dev/ var/ home/
grub rescue> ls (hd0,msdos4)/
error: unknown filesystem.
grub rescue>bootディレクトリ下にnormal.modファイルが存在すること確認する。
prefix変数を設定する。
grub rescue> set prefix=(hd0,msdos5)/boot/grub
grub rescue>モジュールを読み込む。
grub rescue> insmod (hd0,msdos5)/boot/grub/i386-pc/normal.mod
grub rescue>ノーマルモジュールをアクティブにする。
grub rescue> normal
grub rescue>以上でGRUBが起動される。GRUBによりOSが起動されたら、GRUBを再インストールする。
$ sudo grub-install /dev/sda
[sudo] password for marina
Installation finished. No error reported.
$GRUB rescue モードでは、次のコマンドを使用できる。
| コマンド | 説明 | 
|---|---|
| boot | ブートを初期化する。 | 
| cat | テキストファイルの中身を表示する。 | 
| configfile | grub.cfgのようなGRUB設定ファイルを読み込む。 | 
| initrd | ブートに必要なinitrd.imgを読み込む。 | 
| insmod | モジュールを読み込む。 | 
| linux | カーネルを読み込む。 | 
| loop | ファイルをループバックデバイスとしてマウントする。 | 
| ls | パーティション又はディレクトリのコンテンツ一覧を表示する。 | 
| lsmod | 読み込んだモジュールの一覧を表示する。 | 
| normal | ノーマルモジュールが読み込まれていれば、アクティブにする。 | 
| search | デバイスを探す。 | 
| set | 変数の一覧を表示する。または、変数に値を設定する。 | 
| vbeinfo | GRUBで使用可能な画面解像度を表示する。 | 
動的な GRUB モジュールを挿入する。
insmod moduleデバイスまたはファイルを一覧表示する。
ls [arg...]引数がない場合、GRUB が知っているすべてのデバイスを表示する。
grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos4)引数が括弧で囲まれたデバイス名である場合、そのデバイスのファイルシステムの名前を表示する。
grub rescue> ls (hd0,msdos5)/
./ ../ bin/ boot/ etc/ dev/ var/ home/引数が絶対ファイル名として与えられたディレクトリの場合、そのディレクトリの内容をリストアップする。
grub rescue の ls コマンドは、ファイル名を引数に指定すると「ディレクトリではない」と表示される。
grub rescue> ls (hd0,msdos5)/boot/grub/i386-pc/normal.mod
error: not a directory
grub rescue>通常モードに移行して、GRUB メニューを表示する。
normal [file]ノーマルモードでは、コマンド、ファイルシステムモジュール、暗号化モジュールが自動的にロードされ、完全な GRUB スクリプトパーサが利用可能になる。その他のモジュールは insmod を使って明示的にロードすることができる。
ファイルが指定された場合、コマンドはそのファイルから読み込まれる。それ以外の場合は、$prefix/grub.cfg があれば、そこから読み込まれる。
normal は通常モードの中から呼び出すことができ、ネストした環境を作ることができる。この場合、configfile を使用するのがより一般的である。
環境変数 envar に値を設定する。引数なしで起動された場合、すべての環境変数とその値を表示する。
set [envvar=value]GNU (2018) GRUB Documentation