Solaris のシステム管理 (基本編)

x86: GRUB ブートローダーの管理

オープンソースの GRUB (GRand Unified Bootloader) は、x86 システムのデフォルトのブートローダーです。GRUB は、ブートアーカイブをシステムのメモリーに読み込むソフトウェアです。ブートアーカイブは、システムの起動中にルートファイルシステムがマウントされる前に必要な、重要なファイルの集まりです。ブートアーカイブとは、Oracle Solaris OS のブートに使用されるインタフェースのことです。GRUB の詳細は、http://www.gnu.org/software/grub/grub.html を参照してください。grub(5) のマニュアルページも参照してください。

GRUB ベースのブートの動作

x86 システムの電源を入れると、BIOS (Basic Input/Output System) により、CPU、メモリー、およびプラットフォームハードウェアが初期化されます。初期化フェーズが完了すると、BIOS が構成済みブートデバイスからブートローダーをロードし、システムの制御をブートローダーに移します。「ブートローダー」は、システムの電源を投入したあとに最初に動作するソフトウェアプログラムです。このプログラムによってブートプロセスが開始されます。

GRUB は、menu.lst ファイルと呼ばれる構成ファイルに定義済みのブートオプションが含まれているメニューインタフェースを実装します。また、デフォルトのブート動作の変更など、さまざまなブート機能の実行に使用できる GUI メニューインタフェースからアクセス可能なコマンド行インタフェースも備えています。Solaris OS では、GRUB の実装はマルチブート仕様に準拠しています。マルチブート仕様の詳細は、http://www.gnu.org/software/grub/grub.html を参照してください。

Oracle Solaris カーネルはマルチブート仕様に完全に準拠しているため、GRUB を使用して x86 システムをブートできます。GRUB を使用すると、単一の x86 システムにインストールされている各種オペレーティングシステムをブートできます。たとえば、ブート時に GRUB メニューでブートエントリを選択するか、デフォルトで特定の OS をブートするように menu.lst ファイルを設定することで、Oracle Solaris、Linux、または Windows を個別にブートできます。

GRUB では、ファイルシステムとカーネル実行可能ファイルの形式が認識されるため、ディスク上のカーネルの物理的な位置を記録しておかなくても、オペレーティングシステムを読み込むことができます。GRUB ベースのブートでは、カーネルは、カーネルのファイル名、およびカーネルが存在するドライブとパーティションを指定することでロードされます。 詳細は、「GRUB の構成に使用される命名規則」を参照してください。

GRUB を使ってシステムをブートする手順については、「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。

また、次のマニュアルページも参照してください。

findroot コマンドの GRUB サポート

findroot コマンドは、以前に GRUB が使用していた root コマンドと同様に機能しますが、ブートデバイスに関係なく、目的のディスクを発見する機能が強化されました。findroot コマンドは、Oracle Solaris ZFS ルートファイルシステムからのブートもサポートします。

このコマンドの menu.lst エントリのもっとも一般的な形式は次のとおりです。


findroot (rootfs0,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix
module$ /platform/i86pc/$ISADIR/boot_archive

一部の Oracle Solaris リリースでは、このエントリは次のようになります。


title Solaris 10 10/08 s10x_u6wos_03 X86
findroot (pool_rpool,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

詳細は、「x86: findroot コマンドの実装」を参照してください。

GRUB の参照情報については、第 15 章x86: GRUB ベースのブート (参照情報)を参照してください。