この章では、SPARC システムおよび x86 システムで Oracle Solaris リリースをブートするための手順について説明します。
この章の内容は次のとおりです。
ブートプロセスの概要については、第 9 章システムのシャットダウンとブート (概要)を参照してください。
Solaris 10 1/06 リリース以降では、オープンソースの GRand Unified Bootloader (GRUB) が x86 システム上で実装されています。GRUB は、カーネルモジュールおよび構成ファイルが含まれているブートアーカイブをシステムのメモリーに読み込む役割を果たします。
GRUB ベースのブートを実装していない Solaris リリースで x86 システムをブートする方法については、第 16 章x86: GRUB を実装しないシステムのブート (手順)を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
SPARC システムを実行レベル 3 でブートします。 |
このブート方法は、システムのシャットダウン後またはシステムのハードウェア保守作業の実行後に使用します。 | |
SPARC システムを実行レベル S でブートします。 |
このブート方法は、ファイルシステムのバックアップなど、システムの保守作業の実行後にシステムをブートする場合に使用します。このレベルでは、一部のファイルシステムだけがマウントされ、ユーザーはシステムにログインできません。 | |
SPARC システムを対話式でブートします。 |
このブート方法は、テストのためにシステムファイルまたはカーネルを一時的に変更したあとで使用します。 | |
デフォルト以外の Solaris カーネルをブートします。 |
この手順は、デフォルトのカーネル以外の Solaris カーネルをブートする場合に使用します。 別の方法として、代替ブートファイルのコピーを取得し、デフォルトのカーネルを新しいカーネルに変更してから、新しいデフォルトのブートデバイスをブートするように boot-file パラメータを設定することもできます。 | |
SPARC システム上の使用可能な ZFS ブート可能データセットのリストを表示します。 |
システム上の ZFS プール内の使用可能な BE のリストを表示する場合は、boot -L コマンドを使用します。 注 – このオプションは、ZFS プールを含むブートデバイスでのみサポートされています。 | |
SPARC システムを ZFS ルートファイルシステムからブートします。 |
指定の ZFS データセットをブートする場合は、boot -Z オプションを使用します。 注 – このオプションは、ZFS プールを含むブートデバイスでのみサポートされています。 | |
SPARC システムでフェイルセーフアーカイブをブートします。 |
この手順を使用して、SPARC システムをフェイルセーフモードでブートします。次に、bootadm コマンドを実行してブートアーカイブを更新します。 | |
SPARC システムをネットワークからブートします。 |
このブート方法は、システムをネットワークからブートする場合に使用します。この方法は、ディスクレスクライアントのブートにも使用されます。 |
システムの電源を切ってから入れ直すと、マルチユーザーのブートシーケンスが開始されます。このあとに示す手順では、ok PROM プロンプトからさまざまな実行レベルでブートする方法を説明します。これらの手順では、特に指示がない限り、システムが正常な状態でシャットダウンしていることを前提とします。
who -r コマンドを使って、システムが指定した実行レベルになっていることを確認します。実行レベルについては、第 18 章サービスの管理 (概要)を参照してください。
次の手順に従って、現時点で実行レベル 0 になっているシステムを実行レベル 3 でブートします。
ok boot |
自動ブート処理によって、一連の起動メッセージが表示され、システムが実行レベル 3 になります。詳細は、boot(1M) のマニュアルページを参照してください。
システムが実行レベル 3 になっていることを確認します。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
hostname console login: |
次の例は、システムを実行レベル 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 コマンドの出力と一致します。
次の手順に従って、現時点で実行レベル 0 になっているシステムを実行レベル S でブートします。この実行レベルは、ファイルシステムのバックアップなど、システムの保守作業に使用されます。
ok boot -s |
次のメッセージが表示されたら、スーパーユーザーのパスワードを入力します。
SINGLE USER MODE Root password for system maintenance (control-d to bypass): xxxxxx |
システムが実行レベル S になっていることを確認します。
# who -r |
実行レベルを S に移行して行う必要がある保守作業を行います。
システム保守作業が完了したら、Ctrl + D キーを押してシステムをマルチユーザー状態にします。
次の例は、システムを実行レベル 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 |
代替カーネルまたは /etc/system ファイルを指定する必要がある場合は、このブートオプションを使用します。
boot -a コマンドを使用して、SPARC システムを対話式でブートするときに代替ファイル /etc/system を指定するには、システムをブートする前に次の手順を実行する必要があります。
1. /etc/system ファイルと boot/solaris/filelist.ramdisk ファイルのバックアップコピーを作成します。
# cp /etc/system /etc/system.bak # cp /boot/solaris/filelist.ramdisk /boot/solaris/filelist.ramdisk.orig |
2. etc/system.bak ファイル名を /boot/solaris/filelist.ramdisk ファイルに追加します。
# echo "etc/system.bak" >> /boot/solaris/filelist.ramdisk |
ブートアーカイブを更新します。
# bootadm update-archive -v |
ok boot -a |
次のようにシステムプロンプトに応答します。
プロンプトが表示されたら、ブートに使用するカーネルの名前を入力します。
デフォルトのカーネルファイル名を使用する場合は、Enter キーを押します。そうでない場合は、代替カーネルの名前を入力して、Enter キーを押します。
プロンプトが表示されたら、modules ディレクトリの代替パスを入力します。
デフォルトのモジュールディレクトリを使用する場合は、Enter キーを押します。そうでない場合は、モジュールディレクトリへの代替パスを入力して、Enter キーを押します。
プロンプトが表示されたら、代替システムファイルの名前を入力します。
/etc/system ファイルが破損している場合、/dev/null を入力します。
プロンプトが表示されたら、root ファイルシステムを入力します。
ローカルディスクからのブートに UFS (デフォルト) を選択する場合は Enter キーを押し、ネットワークブートの場合は NFS と入力します。
プロンプトが表示されたら、ルートデバイスの物理名を入力します。
代替デバイス名を入力します。デフォルトを使用する場合は Return キーを押します。
これらの質問に応答するためのプロンプトが表示されない場合は、boot -a コマンドを正しく入力しているかどうか確認してください。
次の例では、利用できるデフォルトの選択例 ([] で囲まれた部分) を示します。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: |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
既存の Oracle Solaris カーネルのコピーを取得し、その名前を変更します。
手順 2 でコピーして名前を変更したカーネルを /etc/boot/solaris/filelist.ramdisk ファイルに追加します。
# echo "kernel.name" >> /boot/solaris/filelist.ramdisk |
代替カーネルが /etc/boot/solaris/filelist.ramdisk ファイルに追加されていることを確認します。
# cat > /etc/boot/solaris/filelist.ramdisk |
bootadm コマンドを使用してブートアーカイブを更新します。
# bootadm update-archive |
実行レベル 0 に変更します。
# init 0 |
ok PROM プロンプトが表示されます。
代替カーネルをブートします。
ok boot alternate-kernel |
次に例を示します。
ok boot kernel.myname/sparcv9/unix |
システムのブートが完了したら、代替カーネルがブートされたことを確認します。
# prtconf -vp | grep whoami |
# 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 プラットフォームでの Oracle Solaris ZFS からのブートをサポートするために、2 つの新しいブートオプションが追加されました。
ZFS プール内の使用可能なブート可能データセットのリストを表示します。
boot -L コマンドは、コマンド行からではなく OBP から実行されます。
指定の ZFS ブート可能データセットのルートファイルシステムをブートします。
ZFS ルートファイルシステムからシステムをブートする場合は、最初に OBP から -L オプションを指定して boot コマンドを実行して、システム上の使用可能な BE のリストを表示します。次に、-Z オプションを使用して指定の BE をブートします。
詳細は、boot(1M) のマニュアルページを参照してください。
SPARC システムでは、menu.lst ファイルに次の 2 つの GRUB コマンドが含まれています。
title – ブート環境 (BE) のタイトルを指定する
bootfs – ブート可能データセットのフルネームを指定する
ZFS プール内のブート可能データセットのリストを表示するには、次のどちらかの方法を選択します。
lustatus コマンドを使用する。このコマンドを実行すると、指定の ZFS プール内のすべての BE のリストが表示されます。
lustatus コマンドは x86 システムでも使用できます。
boot -L コマンドを使用する。このコマンドを実行すると、指定の ZFS プール内の使用可能な BE のリストが表示され、システムをブートするための方法も示されます。
次の手順は、boot -L コマンドを使用してシステム上の使用可能な BE のリストを表示する方法を示しています。このコマンドの実行後に指定の BE をブートするには、画面に表示された指示に従います。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システムを ok PROM プロンプトにします。
# init 0 |
ZFS プール内の使用可能な BE のリストを表示します。
ok boot device-specifier -L |
表示されているいずれかのエントリをブートするには、そのエントリに対応する番号を入力します。
画面に出力される指示に従って、指定した BE からブートします。
方法については、「SPARC: 指定した ZFS ルートファイルシステムからブートする方法」を参照してください。
# 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 ルートファイルシステムのインストールと起動」を参照してください。
Oracle Solaris ZFS からブートする方法は、UFS からブートする方法とは異なります。 ZFS からブートするときは、デバイス識別子によって単一のルートファイルシステムではなく、ストレージプールが識別されます。ストレージプールには、複数のブート可能データセット (ルートファイルシステム) が含まれていることがあります。そのため、ZFS からブートするときは、ブートデバイスによってデフォルトと見なされるプール内のルートファイルシステムも識別する必要があります。デフォルトでは、デフォルトのブートデバイスはプールの bootfs プロパティーによって識別されます。この手順では、ZFS ブート可能データセットを指定してシステムをブートする方法を示します。使用可能なすべてのブートオプションの詳細は、boot(1M) のマニュアルページを参照してください。
bootfs プロパティーを以前に正しく設定した場合 (luactivate コマンドを使用して BE をアクティブにした場合など)、システムは自動的に ZFS ルートをブートします。
詳細は、zpool(1M) のマニュアルページを参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システムを ok PROM プロンプトにします。
# init 0 |
(省略可能) 使用可能な BE のリストを表示するには、-L オプションを指定して boot コマンドを実行します。
方法については、「SPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法」を参照してください。
指定のエントリをブートするには、そのエントリの番号を入力し、Return キーを押します。
Select environment to boot: [1 - 2]: |
システムをブートするには、画面に表示された指示に従います。
To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/dataset
ok boot -Z rpool/ROOT/dataset |
次に例を示します。
# boot -Z rpool/ROOT/zfs2BE |
システムのブートが完了したら、次のコマンドを入力してアクティブな BE を確認します。
# prtconf -vp | grep whoami |
次の例は、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 システムをフェイルセーフモードでブートする方法」を参照してください。
ブートアーカイブであるルートファイルシステムイメージからシステムをブートし、そのあとでこのファイルシステムを実際のルートデバイスに再マウントすると、ブートアーカイブとルートファイルシステムが一致しなかったり、「矛盾」していたりすることがあります。 このような状況では、システムの適切な処理や完全性が損なわれます。システムでは、ルート (/) ファイルシステムがマウントされると、メモリー内のファイルシステムを放棄する前に、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 プロパティーを使用して自動ブートアーカイブ更新障害を消去する方法」を参照してください。
次の手順は、ブートアーカイブを更新するために SPARC システムをフェイルセーフモードでブートする方法を示しています。ブートアーカイブが更新されたあとでシステムがブートしない場合は、シングルユーザーモードでシステムをブートする必要がある場合があります。詳細は、「SPARC: システムを実行レベル S (シングルユーザーレベル) でブートする方法」を参照してください。
次の手順では、特定の ZFS データセットをフェイルセーフモードでブートする方法も示します
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システムを ok プロンプトにします。
# init 0 |
フェイルセーフアーカイブをブートします。
デフォルトのフェイルセーフアーカイブをブートするには、次のように入力します。
ok boot -F failsafe |
特定の ZFS データセットのフェイルセーフアーカイブをブートするには、次のように入力します。
ok boot -F failsafe -Z dataset |
次に例を示します。
ok boot -F failsafe -Z rpool/ROOT/zfsBE2 |
ブートするデータセットの名前を調べるには、最初に boot -L コマンドを使用して、システム上の使用可能な BE のリストを表示します。詳細は、「SPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法」を参照してください。
矛盾したブートアーカイブが検出されると、メッセージが表示されます。
ブートアーカイブを更新するには、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. |
次の例は、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. # |
この例は、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 |
次のような場合に、システムをネットワークからブートする必要があります。
システムを最初にインストールする場合
システムをローカルディスクからブートできない場合
システムがディスクレスクライアントである場合
次の 2 つのネットワーク構成ブート方法が利用できます。
逆アドレス解決プロトコル (RARP) および ONC+ RPC Bootparams プロトコル
動的ホスト構成プロトコル (DHCP)
ネットワークデバイスの場合、ローカルエリアネットワーク (LAN) 上でブートするプロセスと広域ネットワーク (WAN) 上でブートするプロセスは多少異なっています。どちらのネットワークブートシナリオでも、PROM によってブーター (この場合 inetboot) がブートサーバーまたはインストールサーバーからダウンロードされます。
LAN 上でブートするときは、ファームウェアは RARP と BOOTP または DHCP を使用して、ブートサーバーまたはインストールサーバーを検出します。そして、ブーター (この場合は inetboot) のダウンロードには TFTP が使用されます。
WAN 上でブートするときは、ファームウェアは DHCP または NVRAM プロパティーを使用して、システムをネットワークからブートするために必要なインストールサーバー、ルーター、およびプロキシを検出します。ブーターのダウンロードに使用されるプロトコルは HTTP です。さらに、定義済みの非公開鍵を使ってブーターの署名が確認される場合もあります。
ブートサーバーが利用できれば、どのようなシステムもネットワークからブートできます。たとえば、スタンドアロンシステムがローカルディスクからブートできない場合は、そのシステムをネットワークからブートしてみてください。デフォルトのブートデバイスを変更または再設定する方法については、「SPARC: ブート PROM を使用してデフォルトのブートデバイスを変更する方法」を参照してください。
sun–4u システムでは、次の 2 つのネットワーク構成ブート方法を使用できます。
RARP – Reverse Address Resolution Protocol and ONC+ RPC Bootparams Protocol
DHCP – Dynamic Host Configuration Protocol
デフォルトのネットワークブート方法は 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 のブートサーバーがネットワークに設定済みである必要があります。
必要に応じてシステムをシャットダウンします。
ネットワークからブートする方法を決定してから、次のどちらかを選択します。
DHCP を使用してシステムをネットワークからブートするには、次のように入力します。
ok boot net[:dhcp] |
上記 nvalias の例のように、デフォルトで DHCP を使ってブートするように PROM 設定を変更してある場合は、boot net と指定するだけで、システムは DHCP でブートします。
RARP を使用してシステムをネットワークからブートするには、次のように入力します。
ok boot net[:rarp] |
RARP はデフォルトのネットワークブート方法です。このため、デフォルトで DHCP でブートするように PROM 値を変更してある場合にだけ、boot net:rarp と指定しなければなりません。
次の手順に従って、現時点で実行レベル 0 になっているシステムを実行レベル 3 でブートします。
システムを再起動します。
# reboot |
Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。
あるいは、リセットボタンを使用することもできます。システムが停止している場合は、電源スイッチを押してシステムを起動します。
ブートシーケンスが始まると、GRUB メニューが表示されます。
GRUB メニューが表示されたら、Enter キーを押してデフォルトの OS インスタンスをブートします。
エントリを 10 秒以内に選択しない場合、システムは自動的に実行レベル 3 でブートします。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
システムにログインします。
hostname console login: |
システムが実行レベル 3 になっていることを確認します。
# who -r system% who -r . run-level 3 Mar 2 09:44 3 0 S |
# 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 |
次の手順に従って、実行レベル 0 になっているシステムを実行レベル S でブートします。シングルユーザーレベルは、システムを保守する場合に使用します。
この手順は、すべての GRUB 実装で使用できます。ただし、GRUB メインメニューに表示されるブートエントリは、実行している Oracle Solaris リリースに応じて異なります。
ブート時に指定できるすべてのカーネルオプションについては、「x86: ブート時に GRUB メニューを編集してブート動作を変更する」を参照してください。
システムを再起動します。
# reboot |
Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。
あるいは、リセットボタンを使用することもできます。システムが停止している場合は、電源スイッチを押してシステムを起動します。
ブートシーケンスが始まると、GRUB メニューが表示されます。
GRUB メインメニューが表示されたら、e と入力して GRUB メニューを編集します。
実行しているリリースによっては、矢印キーを使用して kernel または kernel$ 行を選択します。
矢印キーを使用できない場合は、キャレットキー (^) を使って上方へスクロールしたり、英字キー v を使って下方へスクロールしたりします。
e と再度入力してブートエントリを編集します。
ここから、kernel 行または kernel$ 行にオプションと引数を追加できます。
システムをシングルユーザーモードでブートするには、ブートエントリ行の末尾に -s を入力してから、Return キーを押して前の画面に戻ります。
他のブート動作を指定するには、-s オプションを適切なブートオプションに置き換えます。
この方法で、次の代替ブート動作を指定できます。
再構成用ブートを実行する
64 ビット対応のシステムを 32 ビットモードでブートする
カーネルデバッガを使ってシステムをブートする
コンソールをリダイレクトする
詳細は、boot(1M) のマニュアルページを参照してください。
システムをシングルユーザーモードでブートするには、b と入力します。
プロンプトが表示されたら、ルートパスワードを入力します。
システムが実行レベル S になっていることを確認します。
# who -r . run-level S Jun 13 11:07 S 0 0 |
実行レベルを S に移行して行う必要があるシステム保守作業を行います。
システムの保守作業が完了したら、システムをリブートします。
# 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 # |
代替のカーネルまたは代替の /etc/system ファイルを指定する必要がある場合は、次の手順に従ってシステムをブートします。
boot a コマンドを使用して x86 システムを対話式でブートするときに、代替の -/etc/system ファイルを指定するには、次の手順を実行します。
1. /etc/system ファイルと boot/solaris/filelist.ramdisk ファイルのバックアップコピーを作成します。
# cp /etc/system /etc/system.bak # cp /boot/solaris/filelist.ramdisk /boot/solaris/filelist.ramdisk.orig |
2. /etc/system.bak ファイル名を /boot/solaris/filelist.ramdisk ファイルに追加します。
# echo "etc/system.bak" >> /boot/solaris/filelist.ramdisk |
ブートアーカイブを更新します。
# bootadm update-archive -v |
システムを再起動します。
# reboot |
Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。
あるいは、リセットボタンを使用することもできます。システムが停止している場合は、電源スイッチを押してシステムを起動します。
ブートシーケンスが始まると、GRUB メインメニューが表示されます。
GRUB 編集メニューにアクセスするには、e と入力します。
矢印キーを使用して、kernel 行または kernel$ 行を選択します。
e と入力してブートエントリ行を編集します。
-a と入力して、システムを対話式でブートします。次に、Enter キーを押して前のメニューに戻ります。
システムを対話式でブートするために、b と入力します。
モジュールのデフォルトディレクトリを入力するか、Enter キーを押してデフォルトを受け入れます。
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]: |
代替システムファイル名 alternate-file を入力します。
Name of system file [etc/system]: /etc/system.bak |
代替ファイルを入力しないで Enter キーを押すと、デフォルトが受け入れられます。
破損した /etc/system ファイルを修復します。
システムを実行レベル 3 でリブートします。
# 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 プラットフォームで Oracle Solaris ZFS ルートファイルシステムのブートをサポートするために、新しい GRUB キーワード $ZFS-BOOTFS が導入されました。ルートデバイスに ZFS プールが含まれている場合は、このキーワードに値が割り当てられ、その値が -B オプションを使ってカーネルに渡されます。このオプションにより、ブートするデータセットが識別されます。ZFS ブートローダーをサポートする Oracle Solaris リリースをシステムにインストールするか、そのリリースにアップグレードする場合は、GRUB menu.lst ファイルおよび GRUB ブートメニューにデフォルトでこの情報が含まれます。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システム上の使用可能な 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)」を参照してください。
次の例では、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) のマニュアルページを参照してください。
次の手順では、ZFS ブートローダーをサポートする x86 システムで ZFS ルートファイルシステムからブートする方法について説明します。
ZFS ブートローダーをサポートする Oracle Solaris リリースをシステムにインストールするか、そのリリースにアップグレードする場合は、GRUB メニューエントリに、デフォルトで -B $ZFS-BOOTFS ブート引数が含まれます。そのため、追加のブート引数を指定しなくてもシステムは ZFS からブートします。
システムを再起動します。
# 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. |
GRUB メニューが表示されたら、Enter キーを押してデフォルトの OS インスタンスをブートします。
エントリを 10 秒以内に選択しない場合、システムは自動的に実行レベル 3 でブートします。
別の BE をブートするには、矢印キーを使用して指定のブートエントリを強調表示します。
このエントリをブートする場合は b と入力し、このエントリを編集する場合は e と入力します。
ブート時の GRUB メニューエントリの詳細は、「x86: ブート時に GRUB メニューを編集してブート動作を変更する方法」を参照してください。
次の例は、システム上でブート環境 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 システムをフェイルセーフモードでブートするには、システムのブート時に GRUB メニューが表示されたら、フェイルセーフブートエントリを選択します。フェイルセーフブートの手順で、一次ブートアーカイブを更新するかどうかを確認されたら、y と入力します。
フェイルセーフブートは、ZFS からブートされるシステムでもサポートされます。UFS をルートとした BE からブートするときは、各 BE に独自のフェイルセーフアーカイブが用意されています。フェイルセーフアーカイブは、ZFS をルートとした BE と同様に、ルートファイルシステムが置かれている場所にあります。x86 システムでは、プール全体の GRUB メニューに各フェイルセーフアーカイブのエントリが 1 つあります。デフォルトのフェイルセーフアーカイブは、デフォルトのブート可能ファイルシステムにあるアーカイブです。デフォルトのブート可能ファイルシステム (データセット) は、プールの bootfs プロパティーの値で示されます。
ブートアーカイブ復旧の詳細は、第 13 章Oracle Solaris ブートアーカイブの管理 (手順)を参照してください。
一部の Oracle Solaris·では、GRUB·フェイルセーフの対話操作により、矛盾したブートアーカイブが検出されるかどうかに関係なく、ブートアーカイブを更新するように要求されます。このリリースでは、矛盾したブートアーカイブが検出された場合にだけ、ブートアーカイブの更新を要求されます。
「x86: 復旧を目的としてシステムを停止する方法」の手順で説明されている方法のいずれかを使用してシステムを停止します。
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 リリースに応じて異なります。
矢印キーを使用して GRUB メニューをナビゲートし、 failsafe エントリを選択します。
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,?] |
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]: |
次の手順では、ブートアーカイブの更新を要求されない場合、またはシステムのハングアップやループシーケンスが発生した場合に、矛盾したブートアーカイブまたは破壊されたブートアーカイブを再構築する方法を示します。
「x86: 復旧を目的としてシステムを停止する方法」の手順で説明されている方法のいずれかを使用してシステムを停止します。
システムを再起動します。
# 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 リリースに応じて異なります。
矢印キーを使用して GRUB メニューをナビゲートし、failsafe エントリを選択します。
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,?] |
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,?] |
このメッセージは、矛盾したブートアーカイブの更新に成功した場合にも表示されます。
ブートアーカイブが破壊されているデバイスを /a にマウントします。デバイスに対応する番号を入力してから、Enter キーを押します。
前の手順で矛盾したアーカイブを更新した場合は、デバイスはすでに /a にマウントされています。
破壊されたブートアーカイブを強制的に更新する場合は、次のように入力します。
# bootadm update-archive -f -R /a |
デバイスをマウント解除します。
# umount /a |
システムを再起動します。
# reboot |
次の例では、フェイルセーフアーカイブをブートして、破壊されたブートアーカイブを強制的に更新する方法を示します。
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... . . . |
この節では、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 に次の情報を返せるように設定されている必要があります。
ファイルサーバーの IP アドレス
ブートファイルの名前 (pxegrub)
Oracle Solaris OS の PXE ネットワークブートは、次の順序で実行されます。
BIOS が、ネットワークインタフェースからブートするように構成されます。
BIOS が DHCP 要求を送信します。
DHCP サーバーが、サーバーのアドレスとブートファイルの名前を返します。
BIOS が、tftp を使用して pxegrub をダウンロードし、pxegrub を実行します。
tftp を使用して GRUB メニューファイルがダウンロードされます。
このファイルによって、利用可能なブートメニューエントリが表示されます。
メニューエントリを選択すると、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 ベースのブートをネットワークから実行する方法」を参照してください。
add_install_client - d スクリプトを使用してインストールサーバーにクライアントを追加すると、このスクリプトから DHCP 設定情報が標準出力に報告されます。この情報は、ネットワークインストール情報をクライアントに伝えるために必要なオプションとマクロを作成する際に使用できます。
DHCP サーバーを使用して DHCP クライアントをネットワークインストールする場合は、DHCP オプションを作成する必要があります。この情報は、Oracle Solaris OS をインストールするときに必要になります。
クライアントから DHCP 要求を送信するときには、サーバーに次のようなクライアント情報を渡す必要があります。
クライアントの ID。通常は Ethernet アドレス
クライアント要求のクラス
クライアントの存在するサブネット
DHCP サーバーは、応答を作成します。この応答は、クライアント要求に対応する次の「マクロ」に基づいて作成されます。
クラスマクロは、DHCP 要求に含まれる「クラス文字列」に基づいて作成されます。x86 システムでは、クラス PXEClient:Arch:00000:UNDI:002001 を含む DHCP 要求が、BIOS によってすでに作成されています。この名前のマクロが DHCP サーバー構成に定義されている場合には、そのマクロの内容が x86 クライアントに送信されます。
ネットワークマクロの名前は、クライアントが存在するサブネットの IP アドレスになっています。マクロ 129.146.87.0 が DHCP サーバーに定義されている場合には、そのマクロの内容がそのサブネット上のすべてのクライアントに送信されます。送信されるマクロの内容は、DHCP 要求に含まれるクラスに関係ありません。クラスマクロとネットワークマクロの両方に DHCP オプションが定義されている場合は、ネットワークマクロが優先されます。
クライアントマクロの名前は、クライアントの種類 (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 サービスによるシステム構成情報の事前設定 (作業)」を参照してください。
GRUB ベースのネットワークブートを実行するには、PXE クライアント用に構成されている DHCP サーバーが必要です。また、tftp サービスを提供するブートサーバーも必要です。この DHCP サーバーは、ファイルサーバーの IP アドレスとブートファイル (pxegrub) を取得するために、DHCP クラスの PXEClient と GRUBClient に応答できるように設定されている必要があります。デフォルトでは、メニューファイルは /tftpboot/menu.lst.01ethernet-address です。このファイルが存在しないときには、 pxegrub は、DHCP オプション 150 が指定されている場合はそのオプションに戻り、指定されていない場合は /tftpboot/boot/grub/menu.lst ファイルに戻ります。
システムを Solaris ソフトウェアメディアからブートする場合、システムは自動的にブートします。
GRUB を使用して x86 システム上でネットワークブートを実行する前に、次の準備を行います。
システムをネットワークからブートするために必要なコマンドをインストールサーバー上で実行します。
クライアントシステムをインストールクライアントとして追加します。
詳細は、『Oracle Solaris 10 9/10 インストールガイド (ネットワークインストール)』の第 4 章「ネットワークからのインストール (概要)」を参照してください。
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:" |
システムを再起動します。
ネットワークからブートするように BIOS に指示します。
GRUB メニューが表示されたら、インストールするネットワークインストールイメージを選択します。