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

x86: findroot コマンドの実装

Oracle Solaris Live Upgrade など、すべてのインストール方法では、ブート対象の x86 システム上のディスクスライスを指定する際に findroot コマンドを使用するようになりました。 この拡張機能は、UFS ルートだけでなく Oracle Solaris ZFS ルートを含むシステムのブートもサポートします。この情報は、GRUB が使用する menu.lst ファイル内に格納されます。以前は、root コマンド root ( hd0.0.a) を使ってブート対象のディスクスライスを明示的に指定していました。

インストール方法には、Oracle Solaris Live Upgrade、Oracle Solaris JumpStart、インストール GUI プログラムなどがあります。

findroot コマンドのほかに、スライス (mysign, 0, a) 上の署名ファイルも使用されます。この場合の mysign/boot/grub/bootsign ディレクトリにある署名ファイルの名前です。ZFS ルートからシステムをブートすると、ZFS GRUB プラグインが ZFS ファイルシステムを探して、fdisk パーティション 0 のスライス a にマウントしようとします。

署名ファイルの名前は、使用したインストール方式に応じて異なります。findroot コマンドで使用される命名規則の詳細は、findroot コマンドで使用される命名規則」を参照してください。

インストールまたはアップグレードが完了したら、findroot コマンドを使用するそのほかのメニューエントリを GRUB メニューに追加できます。方法については、「x86: findroot コマンドを使用する GRUB メニューエントリを追加する方法」を参照してください。


注意 – 注意 –

ブートの署名は一意にする必要があります。Oracle Solaris ソフトウェアの複数のインスタンス間で複製される、システム生成の署名またはユーザーの署名を使用したり削除したりしないでください。そのようにすると、正しくない OS インスタンスがブートされたり、システムがブートできなくなる場合があります。


root コマンドは、Windows のブートなどの特定の場合に menu.lst ファイルで引き続き使用できます。ただし、findroot コマンドが優先される場合は、root コマンドは使用しないでください。


例 11–8 x86: UFS ブートローダーをサポートするシステムのデフォルトの menu.lst ファイル

次の例は、findroot コマンドを使用する menu.lst ファイルエントリの形式を示しています。


title Solaris 10 s10x_nbu6wos_nightly 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


例 11–9 x86: Oracle Solaris ZFS ブートローダーをサポートするデフォルトの menu.lst ファイル

次の例は、Oracle Solaris ZFS ブートローダーをサポートするシステムの menu.lst ファイルを示しています。Oracle Solaris Live Upgrade を実行すると、ZFS ルートファイルシステムからブートするための情報がこのファイルに自動的に追加されます。


title be1
findroot (BE_be1,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

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