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

第 12 章 Oracle Solaris システムのブート (手順)

この章では、SPARC システムおよび x86 システムで Oracle Solaris リリースをブートするための手順について説明します。

この章の内容は次のとおりです。

ブートプロセスの概要については、第 9 章システムのシャットダウンとブート (概要)を参照してください。


注 –

Solaris 10 1/06 リリース以降では、オープンソースの GRand Unified Bootloader (GRUB) が x86 システム上で実装されています。GRUB は、カーネルモジュールおよび構成ファイルが含まれているブートアーカイブをシステムのメモリーに読み込む役割を果たします。


GRUB ベースのブートを実装していない Solaris リリースで x86 システムをブートする方法については、第 16 章x86: GRUB を実装しないシステムのブート (手順)を参照してください。

SPARC システムのブート (作業マップ)

作業 

説明 

参照先 

SPARC システムを実行レベル 3 でブートします。 

このブート方法は、システムのシャットダウン後またはシステムのハードウェア保守作業の実行後に使用します。  

「SPARC: システムを実行レベル 3 (マルチユーザーレベル) でブートする方法」

SPARC システムを実行レベル S でブートします。 

このブート方法は、ファイルシステムのバックアップなど、システムの保守作業の実行後にシステムをブートする場合に使用します。このレベルでは、一部のファイルシステムだけがマウントされ、ユーザーはシステムにログインできません。 

「SPARC: システムを実行レベル S (シングルユーザーレベル) でブートする方法」

SPARC システムを対話式でブートします。 

このブート方法は、テストのためにシステムファイルまたはカーネルを一時的に変更したあとで使用します。 

「SPARC: システムを対話式でブートする方法」

デフォルト以外の Solaris カーネルをブートします。 

この手順は、デフォルトのカーネル以外の Solaris カーネルをブートする場合に使用します。 

別の方法として、代替ブートファイルのコピーを取得し、デフォルトのカーネルを新しいカーネルに変更してから、新しいデフォルトのブートデバイスをブートするように boot-file パラメータを設定することもできます。

「SPARC: デフォルトのカーネル以外のカーネルをブートする方法」

SPARC システム上の使用可能な ZFS ブート可能データセットのリストを表示します。 

システム上の ZFS プール内の使用可能な BE のリストを表示する場合は、boot -L コマンドを使用します。


注 –

このオプションは、ZFS プールを含むブートデバイスでのみサポートされています。


「SPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法」

SPARC システムを ZFS ルートファイルシステムからブートします。 

指定の ZFS データセットをブートする場合は、boot -Z オプションを使用します。


注 –

このオプションは、ZFS プールを含むブートデバイスでのみサポートされています。


「SPARC: 指定した ZFS ルートファイルシステムからブートする方法」

SPARC システムでフェイルセーフアーカイブをブートします。 

この手順を使用して、SPARC システムをフェイルセーフモードでブートします。次に、bootadm コマンドを実行してブートアーカイブを更新します。

「SPARC システムをフェイルセーフモードでブートする方法」

SPARC システムをネットワークからブートします。 

このブート方法は、システムをネットワークからブートする場合に使用します。この方法は、ディスクレスクライアントのブートにも使用されます。 

「SPARC: システムをネットワークからブートする方法」

SPARC システムのブート

システムの電源を切ってから入れ直すと、マルチユーザーのブートシーケンスが開始されます。このあとに示す手順では、ok PROM プロンプトからさまざまな実行レベルでブートする方法を説明します。これらの手順では、特に指示がない限り、システムが正常な状態でシャットダウンしていることを前提とします。

who -r コマンドを使って、システムが指定した実行レベルになっていることを確認します。実行レベルについては、第 18 章サービスの管理 (概要)を参照してください。

ProcedureSPARC: システムを実行レベル 3 (マルチユーザーレベル) でブートする方法

次の手順に従って、現時点で実行レベル 0 になっているシステムを実行レベル 3 でブートします。

  1. システムを実行レベル 3 でブートします。


    ok boot
    

    自動ブート処理によって、一連の起動メッセージが表示され、システムが実行レベル 3 になります。詳細は、boot(1M) のマニュアルページを参照してください。

  2. システムが実行レベル 3 になっていることを確認します。

    ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。


    hostname console login:

例 12–1 SPARC: システムを実行レベル 3 (マルチユーザーレベル) でブートする

次の例は、システムを実行レベル 3 でブートしたときに表示されるメッセージを示しています。


ok boot
Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz)
OpenBoot 3.15, 128 MB memory installed, Serial #number.
Ethernet address number, Host ID: number.

Rebooting with command: boot
Boot device: /pci@1f,0/pci@1,1/ide@3/disk@0,0:a  File and args: kernel/sparcv9/unix
SunOS Release 5.10 Version s10_60 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
configuring IPv4 interfaces: hme0.
add net default: gateway 172.20.27.248
Hostname: starlite
The system is coming up.  Please wait.
NIS domain name is example.com
starting rpc services: rpcbind keyserv ypbind done.
Setting netmask of hme0 to 255.255.255.0
Setting default IPv4 interface for multicast: add net 224.0/4: gateway starlite
syslog service starting.The system is ready.
Starting Sun(TM) Web Console Version 2.1-dev..
volume management starting.
The system is ready.
starlite console login: 

前の例では、sparcv9 が例として使用されました。この文字列は、isainfo -k コマンドの出力と一致します。


ProcedureSPARC: システムを実行レベル S (シングルユーザーレベル) でブートする方法

次の手順に従って、現時点で実行レベル 0 になっているシステムを実行レベル S でブートします。この実行レベルは、ファイルシステムのバックアップなど、システムの保守作業に使用されます。

  1. システムを実行レベル S でブートします。


    ok boot -s
    
  2. 次のメッセージが表示されたら、スーパーユーザーのパスワードを入力します。


    SINGLE USER MODE
    
    Root password for system maintenance (control-d to bypass): xxxxxx
    
  3. システムが実行レベル S になっていることを確認します。


    # who -r
    
  4. 実行レベルを S に移行して行う必要がある保守作業を行います。

  5. システム保守作業が完了したら、Ctrl + D キーを押してシステムをマルチユーザー状態にします。


例 12–2 SPARC: システムを実行レベル S (シングルユーザーレベル) でブートする

次の例は、システムを実行レベル S でブートしたときに表示されるメッセージを示しています。


ok boot -s
.
.
.
Sun Microsystems Inc.   SunOS 5.10 Version Generic_120012-14 32-bit
Copyright 1983-2003 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
configuring IPv4 interfaces: hme0.
Hostname: starlite

SINGLE USER MODE

Root password for system maintenance (control-d to bypass): xxxxxx
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode
Oct 14 15:01:28 su: 'su root' succeeded for root on /dev/console
Sun Microsystems Inc.   SunOS 5.10
# who -r
   .       run-level S  Sep 19 08:49     S      0  ?
(Perform some maintenance task)
# ^D

ProcedureSPARC: システムを対話式でブートする方法

代替カーネルまたは /etc/system ファイルを指定する必要がある場合は、このブートオプションを使用します。

始める前に

boot -a コマンドを使用して、SPARC システムを対話式でブートするときに代替ファイル /etc/system を指定するには、システムをブートする前に次の手順を実行する必要があります。

  1. システムを対話式でブートします。


    ok boot -a
    
  2. 次のようにシステムプロンプトに応答します。

    1. プロンプトが表示されたら、ブートに使用するカーネルの名前を入力します。

      デフォルトのカーネルファイル名を使用する場合は、Enter キーを押します。そうでない場合は、代替カーネルの名前を入力して、Enter キーを押します。

    2. プロンプトが表示されたら、modules ディレクトリの代替パスを入力します。

      デフォルトのモジュールディレクトリを使用する場合は、Enter キーを押します。そうでない場合は、モジュールディレクトリへの代替パスを入力して、Enter キーを押します。

    3. プロンプトが表示されたら、代替システムファイルの名前を入力します。

      /etc/system ファイルが破損している場合、/dev/null を入力します。

    4. プロンプトが表示されたら、root ファイルシステムを入力します。

      ローカルディスクからのブートに UFS (デフォルト) を選択する場合は Enter キーを押し、ネットワークブートの場合は NFS と入力します。

    5. プロンプトが表示されたら、ルートデバイスの物理名を入力します。

      代替デバイス名を入力します。デフォルトを使用する場合は Return キーを押します。

  3. これらの質問に応答するためのプロンプトが表示されない場合は、boot -a コマンドを正しく入力しているかどうか確認してください。


例 12–3 SPARC: システムを対話式でブートする

次の例では、利用できるデフォルトの選択例 ([] で囲まれた部分) を示します。boot -a コマンドを使用して代替ファイルシステムをブートする方法と例については、「SPARC: システムを対話式でブートする方法」を参照してください。


ok boot -a
.
.
.
Rebooting with command: boot -a
Boot device: /pci@1f,0/pci@1,1/ide@3/disk@0,0:a  
File and args: -a
Enter filename [kernel/sparcv9/unix]: Press Return
Enter default directory for modules [/platform/SUNW,Ultra-5_10/kernel 
     /platform/sun4u/kernel /kernel /usr/kernel]: Press Return
Name of system file [etc/system]: Press Return
SunOS Release 5.10 Version S10_60 64-bit
Copyright (c) 1983-2004 by Sun Microsystems, Inc. All rights reserved
Use is subject to license terms.
root filesystem type [ufs]: Press Return
Enter physical name of root device
[/pci@1f,0/pci@1,1/ide@3/disk@0,0:a]: Press Return
configuring IPv4 interfaces: hme0.
Hostname: starlite
The system is coming up.  Please wait.
checking ufs filesystems
.
.
.
The system is ready.
starlite console login:

ProcedureSPARC: デフォルトのカーネル以外のカーネルをブートする方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 既存の Oracle Solaris カーネルのコピーを取得し、その名前を変更します。

  3. 手順 2 でコピーして名前を変更したカーネルを /etc/boot/solaris/filelist.ramdisk ファイルに追加します。


    # echo "kernel.name" >> /boot/solaris/filelist.ramdisk
    
  4. 代替カーネルが /etc/boot/solaris/filelist.ramdisk ファイルに追加されていることを確認します。


    # cat > /etc/boot/solaris/filelist.ramdisk
    
  5. bootadm コマンドを使用してブートアーカイブを更新します。


    # bootadm update-archive
    
  6. 実行レベル 0 に変更します。


    # init 0
    

    ok PROM プロンプトが表示されます。

  7. 代替カーネルをブートします。


    ok boot alternate-kernel
    

    次に例を示します。


    ok boot kernel.myname/sparcv9/unix
    
    • デフォルトで代替カーネルをブートするには、次の手順に従います。

      1. boot-file パラメータを新しいカーネルに設定します。


        ok setenv boot-file kernel.name/sparc9/unix
        
      2. boot-file プロパティーが変更されていることを確認します。


        ok printenv boot-file
        
      3. システムを再起動します。


        ok boot
        
  8. システムのブートが完了したら、代替カーネルがブートされたことを確認します。


    # prtconf -vp | grep whoami
    

例 12–4 デフォルトのブートファイルを変更して代替カーネルをブートする


# cp -r /platform/sun4v/kernel /platform/sun4vu/kernel.caiobella
# echo "kernel.caiobela" >> /boot/solaris/filelist.ramdisk

# cat > /etc/boot/solaris/filelist.ramdisk
/platform/sun4v/kernel.caiobella
^D (control D)

ok setenv boot-file kernel.caiobells/sparcv9/unix
ok printenv boot-file
boot-file = kernel.caiobella/sparcv9/unix

ok boot

SC Alert: Host System has Reset

SC Alert: Host system has shut down.


Sun Fire T200, No KeyboardCopyright 2006 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.25.0.build_01***PROTOTYPE BUILD***, 32760 MB memory available, Serial 
#69060038.
Ethernet address 0:x:4f:x:c5:c6, Host ID: 8xxc5c6.



Rebooting with command: boot
Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a  File and 
args: kernel.caiobella/sparcv9/unix
SunOS Release 5.10
Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
misc/forthdebug (176650 bytes) loaded
Hostname: seasonz
NIS domain name is lab.domain.sun.com
Reading ZFS config: done.

seasonz console login:
Password:
Last login: Mon Nov 12 18:02:00 on console
Sun Microsystems Inc.   SunOS 5.10
.
.
.
You have new mail.
#
#
# prtconf -vp | grep whoami
        whoami:  '/platform/sun4v/kernel.caiobella/sparcv9/unix'

SPARC システムで指定した ZFS ルートファイルシステムからブートする

SPARC プラットフォームでの Oracle Solaris ZFS からのブートをサポートするために、2 つの新しいブートオプションが追加されました。

-L

ZFS プール内の使用可能なブート可能データセットのリストを表示します。


注 –

boot -L コマンドは、コマンド行からではなく OBP から実行されます。


-Z dataset

指定の ZFS ブート可能データセットのルートファイルシステムをブートします。

ZFS ルートファイルシステムからシステムをブートする場合は、最初に OBP から -L オプションを指定して boot コマンドを実行して、システム上の使用可能な BE のリストを表示します。次に、-Z オプションを使用して指定の BE をブートします。

詳細は、boot(1M) のマニュアルページを参照してください。

ProcedureSPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法

SPARC システムでは、menu.lst ファイルに次の 2 つの GRUB コマンドが含まれています。

ZFS プール内のブート可能データセットのリストを表示するには、次のどちらかの方法を選択します。

次の手順は、boot -L コマンドを使用してシステム上の使用可能な BE のリストを表示する方法を示しています。このコマンドの実行後に指定の BE をブートするには、画面に表示された指示に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. システムを ok PROM プロンプトにします。


    # init 0
    
  3. ZFS プール内の使用可能な BE のリストを表示します。


    ok boot device-specifier -L
    
  4. 表示されているいずれかのエントリをブートするには、そのエントリに対応する番号を入力します。

  5. 画面に出力される指示に従って、指定した BE からブートします。

    方法については、「SPARC: 指定した ZFS ルートファイルシステムからブートする方法」を参照してください。


例 12–5 SPARC: boot -L を使用してシステム上の使用可能な BE のリストを表示する


# init 0
# svc.startd: The system is coming down. Please wait.
svc.startd: 94 system services are now being stopped.
svc.startd: The system is down.
syncing file systems... done
Program terminated
ok boot -L
.
.
.
Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -L
zfs-file-system
Loading: /platformsun4u/bootlst
1.s10s_nbu6wos
2 zfs2BE
Select environment to boot: [ 1 - 2 ]: 2

to boot the selected entry, invoke:
boot [<root-device] -Z rpool/ROOT/zfs2BE

参照

詳細は、『Oracle Solaris ZFS 管理ガイド』の第 5 章「Oracle Solaris ZFS ルートファイルシステムのインストールと起動」を参照してください。

ProcedureSPARC: 指定した ZFS ルートファイルシステムからブートする方法

Oracle Solaris ZFS からブートする方法は、UFS からブートする方法とは異なります。 ZFS からブートするときは、デバイス識別子によって単一のルートファイルシステムではなく、ストレージプールが識別されます。ストレージプールには、複数のブート可能データセット (ルートファイルシステム) が含まれていることがあります。そのため、ZFS からブートするときは、ブートデバイスによってデフォルトと見なされるプール内のルートファイルシステムも識別する必要があります。デフォルトでは、デフォルトのブートデバイスはプールの bootfs プロパティーによって識別されます。この手順では、ZFS ブート可能データセットを指定してシステムをブートする方法を示します。使用可能なすべてのブートオプションの詳細は、boot(1M) のマニュアルページを参照してください。


注 –

bootfs プロパティーを以前に正しく設定した場合 (luactivate コマンドを使用して BE をアクティブにした場合など)、システムは自動的に ZFS ルートをブートします。


詳細は、zpool(1M) のマニュアルページを参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. システムを ok PROM プロンプトにします。


    # init 0
    
  3. (省略可能) 使用可能な BE のリストを表示するには、-L オプションを指定して boot コマンドを実行します。

    方法については、「SPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法」を参照してください。

  4. 指定のエントリをブートするには、そのエントリの番号を入力し、Return キーを押します。


    Select environment to boot: [1 - 2]:
  5. システムをブートするには、画面に表示された指示に従います。

    To boot the selected entry, invoke:
    boot [<root-device>] -Z rpool/ROOT/dataset
    

    ok boot -Z rpool/ROOT/dataset
    

    次に例を示します。


    # boot -Z rpool/ROOT/zfs2BE
    
  6. システムのブートが完了したら、次のコマンドを入力してアクティブな BE を確認します。


    # prtconf -vp | grep whoami
    
    • アクティブな BE のブートパスを表示するには、次のコマンドを入力します。


      # prtconf -vp | grep bootpath
      
    • 別の方法として、df -lk コマンドを使用して、正しい BE がブートされたかどうかを確認することもできます。


例 12–6 SPARC: 指定した ZFS ルートファイルシステムからブートする

次の例は、boot -Z コマンドを使用して SPARC システムで ZFS データセットをブートする方法を示しています。


# init 0
# svc.startd: The system is coming down. Please wait.
svc.startd: 79 system services are now being stopped.
svc.startd: The system is down.
syncing file systems... done
Program terminated
ok boot -Z rpool/ROOT/zfs2BEe
Resetting
LOM event: =44d+21h38m12s host reset
g ...

rProcessor Speed = 648 MHz
Baud rate is 9600
8 Data bits, 1 stop bits, no parity (configured from lom)

Firmware CORE Sun Microsystems, Inc.
@(#) core 1.0.12 2002/01/08 13:00
software Power ON
Verifying nVRAM...Done
Bootmode is 0
[New I2C DIMM address]
.
.
.
Environment monitoring: disabled
Executng last command: boot -Z rpool/ROOT/zfs2BE
Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -Z rpool/ROOT/zfs2Be
zfs-file-system
Loading: /platform/SUNW,UltraAX-i2/boot_archive
Loading: /platform/sun4u/boot_archive
ramdisk-root hsfs-file-system
Loading: /platform/SUNW,UltraAX-i2/kernel/sparcv9/unix
Loading: /platform/sun4u/kernel/sparcv9/unix
.
.
.
Hostname: mallory
NIS domainname is boulder.Central.Sun.COM
Reading ZFS config: done.
Mounting ZFS filesytems: (6/6)

mallory console login:

参照

指定の ZFS ブート可能データセットのフェイルセーフアーカイブをブートする方法については、「SPARC システムをフェイルセーフモードでブートする方法」を参照してください。

SPARC システムをフェイルセーフモードでブートする

ブートアーカイブであるルートファイルシステムイメージからシステムをブートし、そのあとでこのファイルシステムを実際のルートデバイスに再マウントすると、ブートアーカイブとルートファイルシステムが一致しなかったり、「矛盾」していたりすることがあります。 このような状況では、システムの適切な処理や完全性が損なわれます。システムでは、ルート (/) ファイルシステムがマウントされると、メモリー内のファイルシステムを放棄する前に、2 つのファイルシステムを照合して整合性検査を行います。不一致が検出されると、通常のブートシーケンスが中断され、システムは「フェイルセーフモード」に戻ります。

カーネルファイルの更新の直後に、システム障害、電源障害、またはカーネルパニックが発生した場合も、ブートアーカイブとルートファイルシステムが同期していない可能性があります。矛盾したブートアーカイブを使用してシステムが引き続きブートする場合でも、フェイルセーフアーカイブをブートしてブートアーカイブを更新することをお勧めします。bootadm コマンドを使用してブートアーカイブを手動で更新することもできます。詳細は、bootadm コマンドを使用してブートアーカイブを管理する」を参照してください。

復旧やブートアーカイブの更新を行う目的で、フェイルセーフアーカイブをブートできます。

SPARC プラットフォームでは、フェイルセーフアーカイブは次のとおりです。

/platform/`uname -m`/failsafe

次の構文を使用してフェイルセーフアーカイブをブートします。


ok boot  -F failsafe

フェイルセーフブートは、Oracle Solaris ZFS からブートされるシステムでもサポートされます。ZFS をルートとした BE からブートするときは、各 BE に独自のフェイルセーフアーカイブが用意されています。フェイルセーフアーカイブは、UFS をルートとした BE と同様に、ルートファイルシステムが置かれている場所にあります。デフォルトのフェイルセーフアーカイブは、デフォルトのブート可能ファイルシステムにあるアーカイブです。デフォルトのブート可能ファイルシステム (データセット) は、プールの bootfs プロパティーの値で示されます。

x86 ベースのフェイルセーフアーカイブのブートについては、「x86 システムをフェイルセーフモードでブートする」を参照してください。

自動ブートアーカイブ障害の消去方法については、「x86: auto-reboot-safe プロパティーを使用して自動ブートアーカイブ更新障害を消去する方法」を参照してください。

ProcedureSPARC システムをフェイルセーフモードでブートする方法

次の手順は、ブートアーカイブを更新するために SPARC システムをフェイルセーフモードでブートする方法を示しています。ブートアーカイブが更新されたあとでシステムがブートしない場合は、シングルユーザーモードでシステムをブートする必要がある場合があります。詳細は、「SPARC: システムを実行レベル S (シングルユーザーレベル) でブートする方法」を参照してください。


注 –

次の手順では、特定の ZFS データセットをフェイルセーフモードでブートする方法も示します


  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. システムを ok プロンプトにします。


    # init 0
    
  3. フェイルセーフアーカイブをブートします。

    • デフォルトのフェイルセーフアーカイブをブートするには、次のように入力します。


      ok boot -F failsafe
      
    • 特定の ZFS データセットのフェイルセーフアーカイブをブートするには、次のように入力します。


      ok boot -F failsafe -Z dataset
      

      次に例を示します。


      ok  boot -F failsafe -Z rpool/ROOT/zfsBE2
      

      注 –

      ブートするデータセットの名前を調べるには、最初に boot -L コマンドを使用して、システム上の使用可能な BE のリストを表示します。詳細は、「SPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法」を参照してください。


    矛盾したブートアーカイブが検出されると、メッセージが表示されます。

  4. ブートアーカイブを更新するには、y と入力して Return キーを押します。


    An out of sync boot archive was detected on rpool.
    The boot archive is a cache of files used during boot
    and should be kept in sync to ensure proper system operation.
    
    Do you wish to automatically update this boot archive? [y,n,?] y
    

    アーカイブが正常に更新されると、メッセージが表示されます。


    The boot archive on rpool was updated successfully.

例 12–7 SPARC: システムをフェイルセーフモードでブートする

次の例は、SPARC システムをフェイルセーフモードでブートする方法を示しています。デバイスを指定しない場合は、デフォルトのブートデバイスのフェイルセーフアーカイブがブートされます。


ok boot -F failsafe
Resetting ...
screen not found.
Can't open input device. Keyboard not present.  Using ttya for input and output.

Sun Enterprise 220R (2 X UltraSPARC-II 450MHz), No Keyboard
OpenBoot 3.23, 1024 MB memory installed, Serial #13116682.
Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a.

Rebooting with command: boot -F failsafe
Boot device: /pci@1f,4000/scsi@3/disk@1,0:a  File and args: -F failsafe
SunOS Release 5.10t
Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Configuring /dev Searching for installed OS instances...

An out of sync boot archive was detected on /dev/dsk/c0t1d0s0.
The boot archive is a cache of files used during boot and
should be kept in syncto ensure proper system operation.

Do you wish to automatically update this boot archive? [y,n,?] y 
Updating boot archive on /dev/dsk/c0t1d0s0.
The boot archive on /dev/dsk/c0t1d0s0 was updated successfully.

Solaris 5.10 was found on /dev/dsk/c0t1d0s0.
Do you wish to have it mounted read-write on /a? [y,n,?] n
Starting shell.
#


例 12–8 SPARC: 指定した ZFS データセットをフェイルセーフモードでブートする

この例は、ZFS データセットをフェイルセーフモードでブートする方法を示しています。最初に boot -L コマンドを使用して、使用可能なブート環境のリストを表示します。このコマンドは、ok プロンプトで実行する必要があります。


ok boot -L
Rebooting with command: boot -L                                       
Boot device: /pci@1f,4000/scsi@3/disk@1,0  File and args: -L
1 zfsBE2
Select environment to boot: [ 1 - 1 ]: 1

To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfsBE2

Program terminated
{0} ok 





Resetting ... 

screen not found.
Can't open input device.
Keyboard not present.  Using ttya for input and output.

Sun Enterprise 220R (2 X UltraSPARC-II 450MHz), No Keyboard
OpenBoot 3.23, 1024 MB memory installed, Serial #13116682.
Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a.



                                                                      
{0} ok  boot -F failsafe -Z rpool/ROOT/zfsBE2
Boot device: /pci@1f,4000/scsi@3/disk@1,0  File and args: -F failsafe -Z 
rpool/ROOT/zfsBE2
SunOS Release 5.10
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Configuring /dev
Searching for installed OS instances...

ROOT/zfsBE2 was found on rpool.
Do you wish to have it mounted read-write on /a? [y,n,?] y
mounting rpool on /a

Starting shell.
# 
# 
# 
# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rpool  16.8G  6.26G  10.5G    37%  ONLINE  /a
# 
# zpool status
  pool: rpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c0t1d0s0  ONLINE       0     0     0

errors: No known data errors
# 
# df -h
Filesystem             size   used  avail capacity  Mounted on
/ramdisk-root:a        163M   153M     0K   100%    /
/devices                 0K     0K     0K     0%    /devices
/dev                     0K     0K     0K     0%    /dev
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   601M   344K   601M     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
swap                   602M   1.4M   601M     1%    /tmp
/tmp/root/etc          602M   1.4M   601M     1%    /.tmp_proto/root/etc
fd                       0K     0K     0K     0%    /dev/fd
rpool/ROOT/zfsBE2       16G   5.7G   9.8G    37%    /a
rpool/export            16G    20K   9.8G     1%    /a/export
rpool/export/home       16G    18K   9.8G     1%    /a/export/home
rpool                   16G    63K   9.8G     1%    /a/rpool

SPARC システムをネットワークからブートする

次のような場合に、システムをネットワークからブートする必要があります。

次の 2 つのネットワーク構成ブート方法が利用できます。

ネットワークデバイスの場合、ローカルエリアネットワーク (LAN) 上でブートするプロセスと広域ネットワーク (WAN) 上でブートするプロセスは多少異なっています。どちらのネットワークブートシナリオでも、PROM によってブーター (この場合 inetboot) がブートサーバーまたはインストールサーバーからダウンロードされます。

LAN 上でブートするときは、ファームウェアは RARP と BOOTP または DHCP を使用して、ブートサーバーまたはインストールサーバーを検出します。そして、ブーター (この場合は inetboot) のダウンロードには TFTP が使用されます。

WAN 上でブートするときは、ファームウェアは DHCP または NVRAM プロパティーを使用して、システムをネットワークからブートするために必要なインストールサーバー、ルーター、およびプロキシを検出します。ブーターのダウンロードに使用されるプロトコルは HTTP です。さらに、定義済みの非公開鍵を使ってブーターの署名が確認される場合もあります。

ProcedureSPARC: システムをネットワークからブートする方法

ブートサーバーが利用できれば、どのようなシステムもネットワークからブートできます。たとえば、スタンドアロンシステムがローカルディスクからブートできない場合は、そのシステムをネットワークからブートしてみてください。デフォルトのブートデバイスを変更または再設定する方法については、「SPARC: ブート PROM を使用してデフォルトのブートデバイスを変更する方法」を参照してください。

sun–4u システムでは、次の 2 つのネットワーク構成ブート方法を使用できます。

デフォルトのネットワークブート方法は RARP に設定されています。ネットワークで利用できるブートサーバーによって、RARP または DHCP を選択できます。


注 –

Sun Ultra システムで DHCP ネットワークブート方法を使用するには、PROM のバージョンが 3.25.nn 以上でなければなりません。PROM のバージョンの確認方法については、「SPARC: システムの PROM リビジョン番号を確認する方法」を参照してください。


RARP と DHCP の両方のプロトコルを使用できる場合、どちらのプロトコルを使用するかを boot コマンドに一時的に指定できます。あるいは、NVRAM 別名を設定すれば、システムをリブートしても有効に PROM レベルでネットワークブート方法を永続的に保存することができます。次の nvalias コマンドの例では、Sun Ultra 10 システムにおいてデフォルトで DHCP を使ってブートするように、ネットワークデバイスの別名を設定します。


ok nvalias net	/pci@1f,4000/network@1,1:dhcp

結果として、boot net と入力するだけで、システムは DHCP を使用してブートします。


注 –

nvalias コマンドと nvunalias コマンドの構文を十分理解するまで、nvalias コマンドで NVRAMRC ファイルを変更しないでください。これらのコマンドの使用方法については、『OpenBoot 3.x コマンド・リファレンスマニュアル』を参照してください。


始める前に

どちらのプロトコルでブートする場合でも、RARP または DHCP のブートサーバーがネットワークに設定済みである必要があります。

  1. 必要に応じてシステムをシャットダウンします。

  2. ネットワークからブートする方法を決定してから、次のどちらかを選択します。

    1. DHCP を使用してシステムをネットワークからブートするには、次のように入力します。


      ok boot net[:dhcp]

      上記 nvalias の例のように、デフォルトで DHCP を使ってブートするように PROM 設定を変更してある場合は、boot net と指定するだけで、システムは DHCP でブートします。

    2. RARP を使用してシステムをネットワークからブートするには、次のように入力します。


      ok boot net[:rarp]

      RARP はデフォルトのネットワークブート方法です。このため、デフォルトで DHCP でブートするように PROM 値を変更してある場合にだけ、boot net:rarp と指定しなければなりません。

GRUB を使用して x86 システムをブートする (作業マップ)

作業 

説明 

参照先 

x86 システムを実行レベル 3 (マルチユーザーレベル) でブートします。 

このブート方法は、システムのシャットダウン後またはシステムのハードウェア保守作業の実行後にシステムをマルチユーザーレベルに戻す場合に使用します。 

「x86: システムを実行レベル 3 (マルチユーザーレベル) でブートする方法」

x86 システムをシングルユーザーモードでブートします。 

このブート方法は、ファイルシステムのバックアップなど、システムの保守作業を実行する場合に使用します。 

「x86: システムを実行レベル S (シングルユーザーレベル) でブートする方法」

x86 システムを対話式でブートします。 

このブート方法は、テストのためにシステムファイルまたはカーネルを一時的に変更したあとで使用します。 

「x86: システムを対話式でブートする方法」

x86 システム上のブート可能な ZFS データセットのリストを表示します。 

ZFS ルートファイルシステムを含む x86 システム上の使用可能な BE を表示する場合は、次のどちらかの方法を使用します。

  • lustatus

  • bootadm list-menu

「x86: 使用可能な ZFS ブート環境のリストを表示する方法」

x86 システムを ZFS ルートファイルシステムからブートします。 

ZFS ブートローダーをサポートする Oracle Solaris リリースをシステムにインストールするか、そのリリースにシステムをアップグレードする場合は、デフォルトの ZFS BE の GRUB メニューエントリに、デフォルトで -B $ZFS-BOOTFS ブート引数が含まれます。システムは ZFS から自動的にブートします。


注 –

このオプションは、ZFS プールを含むブートデバイスでのみサポートされています。


「x86: 指定した ZFS ルートファイルシステムからブートする方法」

x86 システムをフェイルセーフモードでブートします。 

この手順を使用して、x86 システムでフェイルセーフアーカイブをブートします。次に、bootadm コマンドを実行してブートアーカイブを更新します。

「x86 システムをフェイルセーフモードでブートする方法」

x86 システムをフェイルセーフモードでブートして、破壊されたブートアーカイブを強制的に更新します。 

この手順は、ブートアーカイブが破壊されていて、システムが正常にブートすることを拒否する場合、または矛盾したブートアーカイブを更新するように要求されない場合に使用します。 

「x86: フェイルセーフモードでブートして、破壊されたブートアーカイブを強制的に更新する方法」

GRUB を使用して x86 システムをネットワークからブートします。 

この方法は、PXE または非 PXE デバイスをデフォルトのネットワーク構成方法でネットワークからブートする場合に使用します。この方法は、ディスクレスクライアントをブートする場合にも使用します。 

「x86: GRUB ベースのブートをネットワークから実行する方法」

Procedurex86: システムを実行レベル 3 (マルチユーザーレベル) でブートする方法

次の手順に従って、現時点で実行レベル 0 になっているシステムを実行レベル 3 でブートします。

  1. システムを再起動します。


    # reboot
    

    Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。システムが停止している場合は、電源スイッチを押してシステムを起動します。

    ブートシーケンスが始まると、GRUB メニューが表示されます。

  2. GRUB メニューが表示されたら、Enter キーを押してデフォルトの OS インスタンスをブートします。

    エントリを 10 秒以内に選択しない場合、システムは自動的に実行レベル 3 でブートします。

    ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。

  3. システムにログインします。


    hostname console login:
  4. システムが実行レベル 3 になっていることを確認します。


    # who -r
    system% who -r
       .       run-level 3  Mar  2 09:44     3      0  S

例 12–9 x86: システムを実行レベル 3 (マルチユーザーレベル) でブートする


# reboot

Jul 24 11:29:52 bearskin reboot: rebooted by root
syncing file systems... done
rebooting...

Adaptec AIC-7899 SCSI BIOS v2.57S4
(c) 2000 Adaptec, Inc. All Rights Reserved.

 Press <Ctrl><A> for SCSISelect(TM) Utility! 

Ch B,  SCSI ID: 0 SEAGATE  ST336607LSUN36G   160

GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)
==============================================================
Solaris 10 10/08 s10x_u6wos_03 X86
Solaris failsafe

==============================================================
		Use the  and  keys to select which entry is highlighted.
		Press enter to boot the selected OS, 'e' to edit the
		commands before booting, or 'c' for a command-line.


SunOS Release 5.10 Version Generic_137138-04 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: pups
NIS domain name is ....sfbay.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)

pups console login:

# who -r
   .       run-level 3  Jul 24 11:31     3      0  S

Procedurex86: システムを実行レベル S (シングルユーザーレベル) でブートする方法

次の手順に従って、実行レベル 0 になっているシステムを実行レベル S でブートします。シングルユーザーレベルは、システムを保守する場合に使用します。


注 –

この手順は、すべての GRUB 実装で使用できます。ただし、GRUB メインメニューに表示されるブートエントリは、実行している Oracle Solaris リリースに応じて異なります。


ブート時に指定できるすべてのカーネルオプションについては、「x86: ブート時に GRUB メニューを編集してブート動作を変更する」を参照してください。

  1. システムを再起動します。


    # reboot
    

    Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。システムが停止している場合は、電源スイッチを押してシステムを起動します。

    ブートシーケンスが始まると、GRUB メニューが表示されます。

  2. GRUB メインメニューが表示されたら、e と入力して GRUB メニューを編集します。

  3. 実行しているリリースによっては、矢印キーを使用して kernel または kernel$ 行を選択します。

    矢印キーを使用できない場合は、キャレットキー (^) を使って上方へスクロールしたり、英字キー v を使って下方へスクロールしたりします。

  4. e と再度入力してブートエントリを編集します。

    ここから、kernel 行または kernel$ 行にオプションと引数を追加できます。

  5. システムをシングルユーザーモードでブートするには、ブートエントリ行の末尾に -s を入力してから、Return キーを押して前の画面に戻ります。

    • 他のブート動作を指定するには、-s オプションを適切なブートオプションに置き換えます。

      この方法で、次の代替ブート動作を指定できます。

      • 再構成用ブートを実行する

      • 64 ビット対応のシステムを 32 ビットモードでブートする

      • カーネルデバッガを使ってシステムをブートする

      • コンソールをリダイレクトする

      詳細は、boot(1M) のマニュアルページを参照してください。

  6. システムをシングルユーザーモードでブートするには、b と入力します。

  7. プロンプトが表示されたら、ルートパスワードを入力します。

  8. システムが実行レベル S になっていることを確認します。


    # who -r
    .       run-level S  Jun 13 11:07     S      0  0
  9. 実行レベルを S に移行して行う必要があるシステム保守作業を行います。

  10. システムの保守作業が完了したら、システムをリブートします。


例 12–10 x86: システムをシングルユーザーモードでブートする


# reboot
Jul  2 14:30:01 pups reboot: initiated by root on /dev/console
syncing files...

Press <Ctrl><A> forPSCSISelect(TM) Utility!


GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

===================================================
Solaris 10 10/08 s10x_u6wos_03 X86 
Solaris failsafe

=====================================================
		Use the  and  keys to select which entry is highlighted.
		Press enter to boot the selected OS, 'e' to edit the
		commands before booting, or 'c' for a command-line.
=====================================================

GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

=====================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS 
module /platform/i86pc/boot_archive
================================================
		Use the  and  keys to select which entry is highlighted.
		Press 'b' to boot, 'e' to edit the selected command in the
		boot sequence, 'c' for a command-line, 'o' to open a new line
		after ('O' for before) the selected line, 'd' to remove the
		selected line, or escape to go back to the main menu.

[ Minimal BASH-like line editing is supported.  For the first word, TAB
lists possible command completions.  Anywhere else TAB lists the possible
completions of a device/filename.  ESC at any time exits. ]

grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s

 GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

=======================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s 
module /platform/i86pc/boot_archive
======================================
		Use the  and  keys to select which entry is highlighted.
		Press 'b' to boot, 'e' to edit the selected command in the
 	boot sequence, 'c' for a command-line, 'o' to open a new line
		after ('O' for before) the selected line, 'd' to remove the
   selected line, or escape to go back to the main menu.
.
.
.
SunOS Release 5.10
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Booting to milestone "milestone/single-user:default".
Hostname: pups Requesting System Maintenance Mode SINGLE USER MODE
Root password for system maintenance (control-d to bypass):
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode
Jul  2 14:41:48 su: 'su root' succeeded for root on /dev/console Sun Microsystems Inc.
# who -r
who -r    .       run-level S  Jul  2 14:39     S      0  0 # 

Procedurex86: システムを対話式でブートする方法

代替のカーネルまたは代替の /etc/system ファイルを指定する必要がある場合は、次の手順に従ってシステムをブートします。

始める前に

boot a コマンドを使用して x86 システムを対話式でブートするときに、代替の -/etc/system ファイルを指定するには、次の手順を実行します。

  1. システムを再起動します。


    # reboot
    

    Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。システムが停止している場合は、電源スイッチを押してシステムを起動します。

    ブートシーケンスが始まると、GRUB メインメニューが表示されます。

  2. GRUB 編集メニューにアクセスするには、e と入力します。

  3. 矢印キーを使用して、kernel 行または kernel$ 行を選択します。

  4. e と入力してブートエントリ行を編集します。

  5. -a と入力して、システムを対話式でブートします。次に、Enter キーを押して前のメニューに戻ります。

  6. システムを対話式でブートするために、b と入力します。

  7. モジュールのデフォルトディレクトリを入力するか、Enter キーを押してデフォルトを受け入れます。


    Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
  8. 代替システムファイル名 alternate-file を入力します。


    Name of system file [etc/system]: /etc/system.bak
    

    代替ファイルを入力しないで Enter キーを押すと、デフォルトが受け入れられます。

    破損した /etc/system ファイルを修復します。

  9. システムを実行レベル 3 でリブートします。


例 12–11 x86: システムを対話式でブートする


# reboot
syncing file systems... done
rebooting...

 
GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)
===================================================
Solaris 10 10/08 s10x_u6wos_03 X86 
Solaris failsafe
=====================================================
		Use the  and  keys to select which entry is highlighted.
		Press enter to boot the selected OS, 'e' to edit the
		commands before booting, or 'c' for a command-line.
=====================================================


GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)
=====================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS 
module /platform/i86pc/boot_archive
======================================================
		Use the  and  keys to select which entry is highlighted.
		Press 'b' to boot, 'e' to edit the selected command in the
		boot sequence, 'c' for a command-line, 'o' to open a new line
		after ('O' for before) the selected line, 'd' to remove the
		selected line, or escape to go back to the main menu.

[ Minimal BASH-like line editing is supported.  For the first word, TAB
lists possible command completions.  Anywhere else TAB lists the possible
completions of a device/filename.  ESC at any time exits. ]

grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a
GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

===================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a 
module /platform/i86pc/boot_archive
====================================================
.
.
.
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
Name of system file [/etc/system]:  /etc/system.bak
SunOS Release 5.10 Version Generic_137138-04 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: pups
NIS domain name is ....sfbay.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)
pups console login:

x86: x86 システムで指定した ZFS ルートファイルシステムからブートする

x86 プラットフォームで Oracle Solaris ZFS ルートファイルシステムのブートをサポートするために、新しい GRUB キーワード $ZFS-BOOTFS が導入されました。ルートデバイスに ZFS プールが含まれている場合は、このキーワードに値が割り当てられ、その値が -B オプションを使ってカーネルに渡されます。このオプションにより、ブートするデータセットが識別されます。ZFS ブートローダーをサポートする Oracle Solaris リリースをシステムにインストールするか、そのリリースにアップグレードする場合は、GRUB menu.lst ファイルおよび GRUB ブートメニューにデフォルトでこの情報が含まれます。

Procedurex86: 使用可能な ZFS ブート環境のリストを表示する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. システム上の使用可能な BE のリストを表示するには、次のコマンドを入力します。


    ~# bootadm list-menu
    

    # lustatus
    

    lustatus コマンドは、SPARC システムでも使用できます。


    注 –

    lustatus コマンドの実行時に次のエラーが表示される場合は、インストールを新たに実行したときに Solaris Live Upgrade が使用されなかったことを示しています。BE が lustatus の出力で認識されるようにするには、最初にシステムで BE を新しく作成する必要があります。


    # lustatus
    ERROR: No boot environments are configured on this system
    ERROR: cannot determine list of all boot environment names

    Solaris Live Upgrade を使用して UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法の詳細は、『Oracle Solaris ZFS 管理ガイド』「UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (Oracle Solaris Live Upgrade)」を参照してください。


例 12–12 lustatus コマンドを使って使用可能な ZFS ブート可能データセットのリストを表示する

次の例では、lustatus コマンドの出力は 3 つの ZFS ブート可能データセットの状態を示しています。デフォルトのブート環境は be1 であるため、これを削除することはできません。


# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                       Complete Now    On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
s10s_nbu6wos               yes      no     no        yes    -
zfs2BE                     yes      yes    yes       no     -
zfsbe3                     no       no     no        yes    -
#

BE が作成され、ブート可能になっている場合は、Is Complete 列に「yes」が表示されます。BE が作成され、まだアクティブになっていない場合は、この列に「no」が表示されます。 BE をアクティブにするには、luactivate コマンドを使用します。そのあとで lustatus コマンドを実行して、BE が正常にアクティブ化されたことを確認します。

詳細は、lustatus(1M) および luactivate(1m) のマニュアルページを参照してください。


Procedurex86: 指定した ZFS ルートファイルシステムからブートする方法

次の手順では、ZFS ブートローダーをサポートする x86 システムで ZFS ルートファイルシステムからブートする方法について説明します。

ZFS ブートローダーをサポートする Oracle Solaris リリースをシステムにインストールするか、そのリリースにアップグレードする場合は、GRUB メニューエントリに、デフォルトで -B $ZFS-BOOTFS ブート引数が含まれます。そのため、追加のブート引数を指定しなくてもシステムは ZFS からブートします。

  1. システムを再起動します。


    # reboot
    

    Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。システムが停止している場合は、電源スイッチを押してシステムを起動します。

    ブートシーケンスが始まると、GRUB メインメニューが表示されます。デフォルトのブートエントリが ZFS ファイルシステムの場合は、次のようなメニューが表示されます。


    GNU GRUB  version 0.95  (637K lower / 3144640K upper memory)
     +----------------------------------------------------------------+
    | be1
    | be1 failsafe
    | be3
    | be3 failsafe
    | be2
    | be2 failfafe
      +---------------------------------------------------------------+
          Use the ^ and v keys to select which entry is highlighted.
          Press enter to boot the selected OS, 'e' to edit the
          commands before booting, or 'c' for a command-line.
  2. GRUB メニューが表示されたら、Enter キーを押してデフォルトの OS インスタンスをブートします。

    エントリを 10 秒以内に選択しない場合、システムは自動的に実行レベル 3 でブートします。

  3. 別の BE をブートするには、矢印キーを使用して指定のブートエントリを強調表示します。

  4. このエントリをブートする場合は b と入力し、このエントリを編集する場合は e と入力します。

    ブート時の GRUB メニューエントリの詳細は、「x86: ブート時に GRUB メニューを編集してブート動作を変更する方法」を参照してください。


例 12–13 x86: x86 システムで新しいブート環境をアクティブにする

次の例は、システム上でブート環境 be10 をアクティブにするために従う手順を示しています。最初に lustatus コマンドを実行して、システム上のどの BE がアクティブになっているか、またどの BE をアクティブにする必要があるかを確認します。


# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                      Complete Now    On Reboot Delete Status
-----------------------------------------------------------------
be1                        yes      yes    yes       no     
be10                       yes      no     no        yes



# luactivate be10
System has findroot enabled GRUB Generating boot-sign, partition and slice
information for PBE <be1>
WARNING: The following file s have change on both the current boot environment
<be1> zone <global> and the boot environment to be activitate <be10>
		/etc/zfs/zpool.cache
INFORMATION: The files listed above are in conflict between the current
boot environment <be1> zone <global> and the boot environment to be
activated <be10>. These files will not be automatically synchronized from
the current boot environment <be1> when boot environment <be10> is activated.

Setting failsafe console to <ttyb>
Generating boot-sign for ABE <be10>
Generating partition and slice information for ABE <be10>
Copied boot menu from top level dataset.
Generating direct boot menu entries for PBE.
Generating direct boot menu entries for ABE.
Disabling splashimage
Current GRUB menu default setting is not valid
title Solaris bootenv rc
No more bootadm entries. Deletion of bootadm entries is complete.
GRUB menu default setting is unchanged
Done eliding bootadm entries.
**************************************************************
The target boot environment has been activated. It will be used when you
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.
***************************************************************
,,,


# reboot
May 30 09:52:32 pups reboot: initiated by root on /dev/console
syncing file systems... done
rebooting...

CE SDRAM BIOS P/N GR-xlint.007-4.330
*

BIOS Lan-Console 2.0
Copyright (C) 1999-2001 Intel Corporation
.
.
.
GNU GRUB  version 0.95  (637K lower / 3144640K upper memory)
 +-------------------------------------------------------------------+
| be1
| be1 failsafe
| be10
| be10 failsafe
+------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, 'e' to edit the
      commands before booting, or 'c' for a command-line.

SunOS Release 5.10 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.

Hostname: pups
NIS domain name is sunsoft.eng.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (8/8)

pups console login:
# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                      Complete Now    On Reboot Delete Status
-----------------------------------------------------------------
be1                        yes      yes    yes       no     
be10                       yes      yes    yes       no
# 

x86 システムをフェイルセーフモードでブートする

x86 システムをフェイルセーフモードでブートするには、システムのブート時に GRUB メニューが表示されたら、フェイルセーフブートエントリを選択します。フェイルセーフブートの手順で、一次ブートアーカイブを更新するかどうかを確認されたら、y と入力します。

フェイルセーフブートは、ZFS からブートされるシステムでもサポートされます。UFS をルートとした BE からブートするときは、各 BE に独自のフェイルセーフアーカイブが用意されています。フェイルセーフアーカイブは、ZFS をルートとした BE と同様に、ルートファイルシステムが置かれている場所にあります。x86 システムでは、プール全体の GRUB メニューに各フェイルセーフアーカイブのエントリが 1 つあります。デフォルトのフェイルセーフアーカイブは、デフォルトのブート可能ファイルシステムにあるアーカイブです。デフォルトのブート可能ファイルシステム (データセット) は、プールの bootfs プロパティーの値で示されます。

ブートアーカイブ復旧の詳細は、第 13 章Oracle Solaris ブートアーカイブの管理 (手順)を参照してください。

Procedurex86 システムをフェイルセーフモードでブートする方法


注 –

一部の Oracle Solaris·では、GRUB·フェイルセーフの対話操作により、矛盾したブートアーカイブが検出されるかどうかに関係なく、ブートアーカイブを更新するように要求されます。このリリースでは、矛盾したブートアーカイブが検出された場合にだけ、ブートアーカイブの更新を要求されます。


  1. 「x86: 復旧を目的としてシステムを停止する方法」の手順で説明されている方法のいずれかを使用してシステムを停止します。

  2. Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。あるいは、電源スイッチを使用してシステムをリブートします。

    ブートシーケンスが始まると、GRUB メニューが表示されます。


    GNU GRUB  version 0.95  (637K lower / 3144640K upper memory)
     +-------------------------------------------------------------------+
    | be1
    | be1 failsafe
    | be3
    | be3 failsafe
    | be2
    | be2 failfafe
      +------------------------------------------------------------------+
          Use the ^ and v keys to select which entry is highlighted.
          Press enter to boot the selected OS, 'e' to edit the
          commands before booting, or 'c' for a command-line.

    注 –

    表示される GRUB メニューは、実行している Oracle Solaris リリースに応じて異なります。


  3. 矢印キーを使用して GRUB メニューをナビゲートし、 failsafe エントリを選択します。

  4. Return キーを押してフェイルセーフアーカイブをブートします。

    インストール済みの OS インスタンスが検索されます。矛盾したブートアーカイブが検出されると、次のようなメッセージが表示されます。


    Searching for installed OS instances...
    	
    	An out of sync boot archive was detected on /dev/dsk/c0t0d0s0.
    	The boot archive is a cache of files used during boot and
    	should be kept in sync to ensure proper system operation.
    	
    	Do you wish to automatically update this boot archive? [y,n,?]
  5. y と入力して、ブートアーカイブを更新します。

    矛盾したブートアーカイブが複数検出された場合は、矛盾したブートアーカイブごとに y と入力してアーカイブを更新するように要求されます。

    アーカイブが正常に更新されるごとに、次のメッセージが表示されます。


    Updating boot archive on /dev/dsk/c0t0d0s0.
    	The boot archive on /dev/dsk/c0t0d0s0 was updated successfully.

    ブートアーカイブの更新が完了すると、インストール済みのすべての OS インスタンスが再度検索され、/a にマウントするデバイスの選択を要求されます。矛盾したブートアーカイブが検出されない場合にシステムが最初にブートすると、これと同じメッセージが表示されます。


    Searching for installed OS instances...
    
    Multiple OS instances were found. To check and mount one of them
    read-write under /a, select it from the following list. To not mount
    any, select 'q'.
    
      1  pool10:13292304648356142148     ROOT/be10
      2  rpool:14465159259155950256      ROOT/be01
    
    Please select a device to be mounted (q for none) [?,??,q]:
    • デバイスをマウントしないことを選択する場合は、q と入力してブートプロセスを続行します。

    • デバイスをマウントすることを選択する場合は、次の手順を実行します。

      1. デバイスの番号を入力して Return キーを押します。

        デバイスが /a にマウントされ、シェルプロンプトに戻ります。

      2. クリティカルなシステムリソースを修復します。

      3. クリティカルなシステムリソースの修復が完了したら、デバイスのマウントを解除します。


        # umount /a
        
      4. システムを再起動します。


        # reboot
        

Procedurex86: フェイルセーフモードでブートして、破壊されたブートアーカイブを強制的に更新する方法

次の手順では、ブートアーカイブの更新を要求されない場合、またはシステムのハングアップやループシーケンスが発生した場合に、矛盾したブートアーカイブまたは破壊されたブートアーカイブを再構築する方法を示します。

  1. 「x86: 復旧を目的としてシステムを停止する方法」の手順で説明されている方法のいずれかを使用してシステムを停止します。

  2. システムを再起動します。


    # reboot
    

    Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。

    ブートシーケンスが始まると、GRUB メニューが表示されます。


    +---------------------------------------------------------------------+
     | Solaris 10.1... X86                                                     |
     | Solaris failsafe                                                        |
     |                                                                         |
     |                                                                         |
     +-------------------------------------------------------------------------+
          Use the  and  keys to select which entry is highlighted.
          Press enter to boot the selected OS, 'e' to edit the
          commands before booting, or 'c' for a command-line.

    注 –

    GRUB メニューの内容は、実行している Solaris リリースに応じて異なります。


  3. 矢印キーを使用して GRUB メニューをナビゲートし、failsafe エントリを選択します。

  4. Return キーを押してフェイルセーフアーカイブをブートします。

    期限切れのブートアーカイブが存在する場合は、次のようなメッセージが表示されます。


    Searching for installed OS instances...
    	
    	An out of sync boot archive was detected on /dev/dsk/c0t0d0s0.
    	The boot archive is a cache of files used during boot and
    	should be kept in sync to ensure proper system operation.
    	
    	Do you wish to automatically update this boot archive? [y,n,?]
    		
  5. y と入力してから Enter キーを押して、矛盾したブートアーカイブを更新します。

    次のメッセージが表示されます。


    Updating boot archive on /dev/dsk/c0t0d0s0.
    	The boot archive on /dev/dsk/c0t0d0s0 was updated successfully.

    矛盾したブートアーカイブが見つからない場合は、次のようなメッセージが表示されます。


    Searching for installed OS instances...
    	
    	Solaris 10.1... X86 was found on /dev/dsk/c0t0d0s0.
    	Do you wish to have it mounted read-write on /a? [y,n,?]

    このメッセージは、矛盾したブートアーカイブの更新に成功した場合にも表示されます。

  6. ブートアーカイブが破壊されているデバイスを /a にマウントします。デバイスに対応する番号を入力してから、Enter キーを押します。


    注 –

    前の手順で矛盾したアーカイブを更新した場合は、デバイスはすでに /a にマウントされています。


  7. 破壊されたブートアーカイブを強制的に更新する場合は、次のように入力します。


    # bootadm update-archive -f -R /a
    
  8. デバイスをマウント解除します。


    # umount /a
    
  9. システムを再起動します。


    # reboot
    

例 12–14 x86: フェイルセーフモードでブートして、破壊されたブートアーカイブを強制的に更新する

次の例では、フェイルセーフアーカイブをブートして、破壊されたブートアーカイブを強制的に更新する方法を示します。


GNU GRUB  version 0.95  (635K lower / 523200K upper memory)               
                                                                                
 +-------------------------------------------------------------------------+    
 | Solaris 10 1/06 s10x_u1wos_19a X86                                      |    
 | >Solaris failsafe<                                                      |    
 |                                                                         |    
 |                                                                         |    
  +-------------------------------------------------------------------------+   
      Use the  and  keys to select which entry is highlighted.                  
      Press enter to boot the selected OS, 'e' to edit the                      
      commands before booting, or 'c' for a command-line.                       
                                                                                
SunOS Release 5.10
Copyright 1983-2006 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Booting to milestone "milestone/single-user:default".
Configuring devices.
Searching for installed OS instances...

Multiple OS instances were found. To check and mount one of them
read-write under /a, select it from the following list. To not mount
any, select 'q'.

  1  /dev/dsk/c0t0d0s0     Solaris 10 1/06 s10x_u1wos_19a X86
  2  /dev/dsk/c0t1d0s0     Solaris 10 5/08 X86

Please select a device to be mounted (q for none) [?,??,q]: 1
mounting /dev/dsk/c0t0d0s0 on /a

Starting shell.
# rm /a/platform/i86pc/boot_archive
# bootadm update-archive -f -R /a
Creating boot_archive for /a
updating /a/platform/i86pc/amd64/boot_archive
updating /a/platform/i86pc/boot_archive
# umount /a
# reboot
syncing file systems... done
rebooting...
.
.
.

x86 システムをネットワークからブートする

この節では、GRUB ベースのブートをネットワークから実行するときの要件と注意事項について説明します。

ブートサーバーが利用できれば、どのようなシステムもネットワークからブートできます。スタンドアロンのシステムがローカルディスクからブートできない場合、そのシステムを復旧目的でネットワークからブートしなければならないことがあります。x86 システムは、PXE ネットワークブートプロトコルをサポートするネットワークから直接ブートすることができます。


注 –

PXE ネットワークブートは、Intel の PXE 仕様を実装しているデバイスでのみ動作します。


GRUB ベースで PXE ネットワークブートを実行するときには、デフォルトでは DHCP が使用されます。PXE 以外のデバイスの場合には、DHCP または RARP を使用してブートできます。使用するブート方法は、ネットワークで使用できるブートサーバーの種類によって異なります。PXE または DHCP サーバーを使用できない場合は、GRUB をフロッピーディスク、CD-ROM、またはローカルディスクから読み込むことができます。

GRUB ベースのネットワークブートを実行するには、PXE クライアント用に構成されている DHCP サーバーが必要です。また、tftp サービスを提供するブートサーバーも必要です。クライアントのネットワークインタフェースの構成に必要な情報は、DHCP サーバーから提供されます。

DHCP サーバーは、DHCP クラス PXEClient および GRUBClient に次の情報を返せるように設定されている必要があります。

    Oracle Solaris OS の PXE ネットワークブートは、次の順序で実行されます。

  1. BIOS が、ネットワークインタフェースからブートするように構成されます。

  2. BIOS が DHCP 要求を送信します。

  3. DHCP サーバーが、サーバーのアドレスとブートファイルの名前を返します。

  4. BIOS が、tftp を使用して pxegrub をダウンロードし、pxegrub を実行します。

  5. tftp を使用して GRUB メニューファイルがダウンロードされます。

    このファイルによって、利用可能なブートメニューエントリが表示されます。

  6. メニューエントリを選択すると、Oracle Solaris OS のロードが開始されます。

詳細は、『Solaris のシステム管理 (IP サービス)』「ネットワーク構成サーバーの設定方法」を参照してください。

add_install_client コマンドを実行すると、/tftpboot_01ethernet-address ファイルが作成されます。このファイルは、pxegrub および /tftpboot/menu.lst.01ethernet-address ファイルにリンクされています。/tftpboot/menu.lst.01 ethernet-address ファイルは、GRUB メニューファイルです。このファイルが存在しないときには、pxegrub は、DHCP オプション 150 が指定されている場合はそのオプションを使用する状態に戻り、指定されていない場合は /tftpboot/boot/grub/menu.lst ファイルに戻ります。通常は、1 つのシステムで両方の機能を提供できるように設定します。このようなシステムでは、add_install_client コマンドを実行すると、/tftpboot ファイルと一緒に、適切に設定された pxegrub メニューファイルと Oracle Solaris ファイルが設定されます。DHCP サービスは、add_install_client コマンドを使用して、別の手順として設定します。設定は、クライアントごとに 1 回行うだけで完了します。詳細は、「x86: DHCP マクロについて」および 「x86: GRUB ベースのブートをネットワークから実行する方法」を参照してください。

x86: DHCP マクロについて

add_install_client - d スクリプトを使用してインストールサーバーにクライアントを追加すると、このスクリプトから DHCP 設定情報が標準出力に報告されます。この情報は、ネットワークインストール情報をクライアントに伝えるために必要なオプションとマクロを作成する際に使用できます。

DHCP サーバーを使用して DHCP クライアントをネットワークインストールする場合は、DHCP オプションを作成する必要があります。この情報は、Oracle Solaris OS をインストールするときに必要になります。

クライアントから DHCP 要求を送信するときには、サーバーに次のようなクライアント情報を渡す必要があります。

DHCP サーバーは、応答を作成します。この応答は、クライアント要求に対応する次の「マクロ」に基づいて作成されます。

クラスマクロ

クラスマクロは、DHCP 要求に含まれる「クラス文字列」に基づいて作成されます。x86 システムでは、クラス PXEClient:Arch:00000:UNDI:002001 を含む DHCP 要求が、BIOS によってすでに作成されています。この名前のマクロが DHCP サーバー構成に定義されている場合には、そのマクロの内容が x86 クライアントに送信されます。

ネットワークマクロ

ネットワークマクロの名前は、クライアントが存在するサブネットの IP アドレスになっています。マクロ 129.146.87.0 が DHCP サーバーに定義されている場合には、そのマクロの内容がそのサブネット上のすべてのクライアントに送信されます。送信されるマクロの内容は、DHCP 要求に含まれるクラスに関係ありません。クラスマクロとネットワークマクロの両方に DHCP オプションが定義されている場合は、ネットワークマクロが優先されます。

IP マクロ

IP マクロの名前は、IP アドレスになっています。このマクロはほとんど使用されません。

クライアントマクロ

クライアントマクロの名前は、クライアントの種類 (Ethernet の場合は 01) およびクライアントの MAC アドレスに基づいて、大文字の名前が付けられます。Ethernet アドレスが 0:0:39:fc:f2:ef のクライアントの場合には、対応するマクロの名前は 01000039FCEF になります。クライアントマクロにはコロンが付きません。

たとえば、サブネット 192.168.100.0 に存在し、Ethernet アドレスとして 0:0:39:fc:f2:ef が割り当てられ、クラス PXEClient の DHCP 要求を作成するクライアントの場合には、DHCP サーバー上に次のような対応するマクロが存在します。


PXEClient
	BootSrvA:  192.168.100.0
	BootFile:  pxegrub
  129.146.87.0
	Router:    129.146.87.1
	NISdmain:  sunsoft.eng.sun.com
  01000039FCEF
	BootFile:  01000039FCEF
The actual DHCP response will be
	BootSrvA:  192.168.100.0
	BootFile:  01000039FCEF
	Router:    129.146.87.1
	NISdmain:  sunsoft.eng.sun.com

クライアントマクロの BootFile は、クラスマクロの BootFile より優先されます。

詳細については、『Oracle Solaris 10 9/10 インストールガイド (ネットワークインストール)』「DHCP サービスによるシステム構成情報の事前設定 (作業)」を参照してください。

Procedurex86: GRUB ベースのブートをネットワークから実行する方法

GRUB ベースのネットワークブートを実行するには、PXE クライアント用に構成されている DHCP サーバーが必要です。また、tftp サービスを提供するブートサーバーも必要です。この DHCP サーバーは、ファイルサーバーの IP アドレスとブートファイル (pxegrub) を取得するために、DHCP クラスの PXEClientGRUBClient に応答できるように設定されている必要があります。デフォルトでは、メニューファイルは /tftpboot/menu.lst.01ethernet-address です。このファイルが存在しないときには、 pxegrub は、DHCP オプション 150 が指定されている場合はそのオプションに戻り、指定されていない場合は /tftpboot/boot/grub/menu.lst ファイルに戻ります。

システムを Solaris ソフトウェアメディアからブートする場合、システムは自動的にブートします。

始める前に

GRUB を使用して x86 システム上でネットワークブートを実行する前に、次の準備を行います。

詳細は、『Oracle Solaris 10 9/10 インストールガイド (ネットワークインストール)』の第 4 章「ネットワークからのインストール (概要)」を参照してください。

  1. DHCP サーバー上で、次の 2 つのオプションを使用して、DHCP サービスのクライアントマクロを作成します。

    • BootSrvA: svr-addr

    • BootFile: client-macro

      dhtadm コマンドを実行するには、DHCP サーバー上のスーパーユーザー特権が必要です。

      svr-addr はサーバーの IP アドレスです。client-macro は、クライアントの Ethernet タイプ (01) とクライアントの MAC アドレスに基づいて作成された、大文字の名前です。この番号は、インストールサーバーの /tftpboot ディレクトリで使用されるファイルの名前としても使われます。


      注 –

      client-macro には、コロンを含めてはいけません。


      クライアントマクロは、DHCP GUI またはコマンド行インタフェースから作成できます。

      クライアントマクロをコマンド行から作成するには、次のように入力します。


      # dhtadm -[MA] -m client macro -d
      ":BootFile=client-macro:BootSrvA=svr-addr:"
      
  2. システムを再起動します。

  3. ネットワークからブートするように BIOS に指示します。

    • 特定のキーストロークシーケンスを使用してネットワークブートするように設定されている場合は、BIOS 画面が表示されたときにそのキーストロークを入力します。

    • ネットワークブートのために BIOS 設定を手動で変更する必要がある場合は、BIOS 設定ユーティリティーにアクセスするためのキーストロークシーケンスを入力します。その画面で、ネットワークブートのブート優先順位を変更します。

  4. GRUB メニューが表示されたら、インストールするネットワークインストールイメージを選択します。