この章では、SPARC システムおよび x86 システムで Oracle Solaris をブートする手順について説明します。
この章の内容は次のとおりです。
作業 |
説明 |
参照先 |
---|---|---|
復旧を目的としてシステムを停止します。 |
破損したファイルによってシステムのブートが正常に行えない場合は、最初にシステムを停止して復旧を試みます。 | |
強制的にシステムのクラッシュダンプを実行し、システムをリブートします。 |
トラブルシューティング手段としてシステムのクラッシュダンプとリブートを強制的に実行できます。 | |
復旧を目的として SPARC システムをブートします。 |
システムをブートして、システムの正常なブートを妨げている重要なシステムファイルを修復します。 | |
Oracle Solaris ZFS ルートの存在する SPARC システムを、復旧目的でブートします。 |
システムをブートして、Oracle Solaris ZFS ルート環境への正常なログインを妨げている root パスワードまたは類似の問題から復旧します。エラーの重大度に応じて、フェイルセーフモードでブートするか、代替メディアからブートする必要があります。 | |
カーネルデバッガを使ってシステムをブートします。 |
カーネルデバッガを使ってシステムをブートして、ブート問題のトラブルシューティングを実行できます。システムのブートには kmdb コマンドを使用します。 |
システムの正常なブートを妨げている問題のトラブルシューティングには、次の方法が 1 つ以上必要になることがあります。
システムのブート時にエラーメッセージのトラブルシューティングを行います。
システムを停止して復旧を試みます。
復旧を目的としてシステムをブートします。
強制的にクラッシュダンプを実行し、システムをリブートします。
kmdb コマンドを使用してカーネルデバッガでシステムをブートします。
モニターに、ok PROM プロンプトが表示されます。
ok |
アボートキーシーケンスは、キーボードのタイプによって異なります。たとえば、Stop + A または L1 + A キーを押します。端末では、Break キーを押します。
ファイルシステムを同期させます。
ok sync |
syncing file systems... というメッセージが表示されたら、アボートキーシーケンスをもう一度入力します。
該当する boot コマンドを入力して、ブートプロセスを起動します。
詳細は、boot(1M) のマニュアルページを参照してください。
システムが指定した実行レベルになっていることを確認します。
# who -r . run-level s May 2 07:39 3 0 S |
Press Stop-A ok sync syncing file systems... Press Stop-A ok boot |
場合によっては、トラブルシューティングの目的でクラッシュダンプを強制実行し、システムをリブートする必要があります。デフォルトでは、savecore 機能を使用できます。
システムのクラッシュダンプについては、『Solaris のシステム管理 (上級編)』の第 17 章「システムクラッシュ情報の管理 (手順)」を参照してください。
システムのクラッシュダンプを強制実行するには、次の手順を実行します。この手順のあとに紹介する例は、halt -d コマンドを使用してシステムのクラッシュダンプを強制実行する方法を示しています。このコマンドの実行後は、手動でシステムをリブートする必要があります。
システムのアボートキーシーケンスを入力します。
アボートキーシーケンスは、キーボードのタイプによって異なります。たとえば、Stop + A または L1 + A キーを押します。端末では、Break キーを押します。
ok PROM プロンプトが表示されます。
ファイルシステムを同期させ、クラッシュダンプを書き出します。
> n ok sync |
クラッシュダンプがディスクに書き出されると、システムはそのままリブートします。
システムが実行レベル 3 になっていることを確認します。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
hostname console login: |
次の例は、halt -d と boot の各コマンドを使用して、システム jupiter のクラッシュダンプとリブートを強制実行する方法を示しています。システムのクラッシュダンプとリブートを強制実行する場合は、この方法を使用してください。
# halt -d Jul 21 14:13:37 jupiter halt: halted by root panic[cpu0]/thread=30001193b20: forced crash dump initiated at user request 000002a1008f7860 genunix:kadmin+438 (b4, 0, 0, 0, 5, 0) %l0-3: 0000000000000000 0000000000000000 0000000000000004 0000000000000004 %l4-7: 00000000000003cc 0000000000000010 0000000000000004 0000000000000004 000002a1008f7920 genunix:uadmin+110 (5, 0, 0, 6d7000, ff00, 4) %l0-3: 0000030002216938 0000000000000000 0000000000000001 0000004237922872 %l4-7: 000000423791e770 0000000000004102 0000030000449308 0000000000000005 syncing file systems... 1 1 done dumping to /dev/dsk/c0t0d0s1, offset 107413504, content: kernel 100% done: 5339 pages dumped, compression ratio 2.68, dump succeeded Program terminated ok boot Resetting ... Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz), No Keyboard OpenBoot 3.15, 128 MB memory installed, Serial #10933339. Ethernet address 8:0:20:a6:d4:5b, Host ID: 80a6d45b. 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: jupiter The system is coming up. Please wait. NIS domain name is example.com . . . System dump time: Wed Jul 21 14:13:41 2004 Jul 21 14:15:23 jupiter savecore: saving system crash dump in /var/crash/jupiter/*.0 Constructing namelist /var/crash/jupiter/unix.0 Constructing corefile /var/crash/jupiter/vmcore.0 100% done: 5339 of 5339 pages saved Starting Sun(TM) Web Console Version 2.1-dev... . . . |
次の手順は、/etc/passwd などの重要なファイルに、無効なエントリがあり正常にブートできない場合に使用します。
root パスワードがわからない場合やシステムにログインできない場合は、この手順で示すアボートキーシーケンスを使用します。詳細は、「SPARC: 復旧を目的としてシステムを停止する方法」を参照してください。
次の手順で使用されている変数 device-name は、修復するファイルシステムのデバイス名に置き換えてください。システムのデバイス名を調べる場合は、『Solaris のシステム管理 (デバイスとファイルシステム)』の「デバイス構成情報の表示」を参照してください。
システムのアボートキーシーケンスを使用して、システムを停止します。
システムをシングルユーザーモードでブートします。
ファイル内に無効なエントリがあるファイルシステムをマウントします。
# mount /dev/dsk/device-name /a |
新しくマウントしたファイルシステムに移動します。
# cd /a/file-system |
端末タイプを設定します。
# TERM=sun # export TERM |
エディタを使って、ファイルから無効なエントリを削除します。
# vi filename |
ルート (/) ディレクトリに変更します。
# cd / |
/a ディレクトリのマウントを解除します。
# umount /a |
システムを再起動します。
# init 6 |
システムが実行レベル 3 になっていることを確認します。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
hostname console login: |
次の例は、ローカルの CD-ROM からブートしたあとで重要なシステムファイル (この場合は /etc/passwd) を修復する方法を示しています。
ok boot cdrom -s # mount /dev/dsk/c0t3d0s0 /a # cd /a/etc # TERM=vt100 # export TERM # vi passwd (Remove invalid entry) # cd / # umount /a # init 6 |
次の例は、root パスワードを忘れた場合にネットワークからシステムをブートする方法を示しています。この例では、ネットワークのブートサーバーが利用可能になっていることを前提とします。システムをリブートしたあとで必ず新しい root パスワードを適用してください。
ok boot net -s # mount /dev/dsk/c0t3d0s0 /a # cd /a/etc # TERM=vt100 # export TERM # vi shadow (Remove root's encrypted password string) # cd / # umount /a # init 6 |
システムをフェイルセーフモードでブートします。
ok boot -F failsafe |
プロンプトが表示されたら、ZFS BE を /a にマウントします。
. . ROOT/zfsBE was found on rpool. Do you wish to have it mounted read-write on /a? [y,n,?] y mounting rpool on /a Starting shell. |
スーパーユーザーになります。
/a/etc ディレクトリに移動します。
# cd /a/etc |
passwd または shadow ファイルを修正します。
# vi passwd |
システムを再起動します。
# init 6 |
この手順では、カーネルデバッガ (kmdb) を読み込むための基本的な操作を示します。詳細は、『Oracle Solaris モジューラデバッガ』を参照してください。
システムを対話式でデバッグする時間がない場合は、-d オプションを指定して reboot コマンドと halt コマンドを使用します。-d オプションを指定して halt コマンドを実行するには、実行後にシステムを手動でリブートする必要があります。これに対し、reboot コマンドを使用した場合、システムは自動的にブートします。詳細は、reboot(1m) のマニュアルページを参照してください。
システムを停止します。これにより、ok プロンプトが表示されます。
システムを正常に停止するには、/usr/sbin/halt コマンドを使用します。
boot kmdb または boot -k のどちらかを入力して、カーネルデバッガの読み込みを要求します。Return キーを押します。
カーネルデバッガを入力します。
デバッガを入力するための方法は、システムのアクセスに使用するコンソールのタイプによって異なります。
ローカル接続されたキーボードを使用している場合は、キーボードのタイプに応じて Stop + A または L1 + A キーを押してください。
シリアルコンソールを使用している場合は、使用中のシリアルコンソールのタイプに適した方法でブレークを送信します。
カーネルデバッガを初めて入力したときに、ウェルカムメッセージが表示されます。
Rebooting with command: kadb Boot device: /iommu/sbus/espdma@4,800000/esp@4,8800000/sd@3,0 . . . |
ok boot kmdb Resetting... Executing last command: boot kmdb -d Boot device: /pci@1f,0/ide@d/disk@0,0:a File and args: kmdb -d Loading kmdb... |
作業 |
説明 |
参照先 |
---|---|---|
復旧を目的としてシステムを停止します。 |
破損したファイルによってシステムのブートが正常に行えない場合は、最初にシステムを停止して復旧を試みます。 | |
強制的にシステムのクラッシュダンプを実行し、システムをリブートします。 |
トラブルシューティング手段としてシステムのクラッシュダンプとリブートを強制的に実行できます。 | |
カーネルデバッガを使ってシステムをブートします。 |
カーネルデバッガを使ってシステムをブートして、ブート問題のトラブルシューティングを実行できます。システムのブートには kmdb コマンドを使用します。 |
可能であれば、次のいずれかのコマンドを使用してシステムを停止します。
キーボードとマウスを使用できる場合は、スーパーユーザーになります。次に、init 0 と入力してシステムを停止します。Press any key to reboot プロンプトが表示されたら、任意のキーを押してシステムをリブートします。
キーボードやマウスが動作する場合は、スーパーユーザーになり、init 6 と入力してシステムをリブートします。
マウスまたはキーボードからの入力にシステムが応答しない場合、リセットキーがあればそのキーを押してシステムをリブートします。
あるいは、電源スイッチを使用してシステムをリブートします。
場合によっては、トラブルシューティングの目的でクラッシュダンプを強制実行し、システムをリブートする必要があります。デフォルトでは、savecore 機能を使用できます。
システムのクラッシュダンプについては、『Solaris のシステム管理 (上級編)』の第 17 章「システムクラッシュ情報の管理 (手順)」を参照してください。
reboot -d コマンドまたは halt -d コマンドを使用できない場合は、カーネルデバッガ kmdb を使用してクラッシュダンプを強制的に実行できます。次の手順を実行するには、ブート時または mdb -k コマンド経由でカーネルデバッガが読み込まれている必要があります。
カーネルデバッガ (kmdb) にアクセスするにはテキストモードでなければなりません。したがって、まずウィンドウシステムを終了してください。
カーネルデバッガにアクセスします。
デバッガにアクセスするための方法は、システムへのアクセスに使用するコンソールのタイプによって異なります。
ローカル接続されているキーボードを使用している場合は、F1–A を押します。
シリアルコンソールを使用している場合は、そのシリアルコンソールタイプに適した方法で ブレークを送信します。
kmdb プロンプトが表示されます。
クラッシュを強制実行するために、systemdump マクロを使用します。
[0]> $<systemdump |
パニックメッセージが表示され、クラッシュダンプが保存され、システムがリブートします。
コンソールログインプロンプトでログインして、システムがリブートされていることを確認します。
この例は、halt -d コマンドと boot コマンドを使って、x86 システム neptune のクラッシュダンプとリブートを強制実行する方法を示しています。システムのクラッシュダンプを強制するには、この方法を使用してください。このあとに、システムを手動でリブートします。
# halt -d 4ay 30 15:35:15 wacked.Central.Sun.COM halt: halted by user panic[cpu0]/thread=ffffffff83246ec0: forced crash dump initiated at user request fffffe80006bbd60 genunix:kadmin+4c1 () fffffe80006bbec0 genunix:uadmin+93 () fffffe80006bbf10 unix:sys_syscall32+101 () syncing file systems... done dumping to /dev/dsk/c1t0d0s1, offset 107675648, content: kernel NOTICE: adpu320: bus reset 100% done: 38438 pages dumped, compression ratio 4.29, dump succeeded Welcome to kmdb Loaded modules: [ audiosup crypto ufs unix krtld s1394 sppp nca uhci lofs genunix ip usba specfs nfs md random sctp ] [0]> kmdb: Do you really want to reboot? (y/n) y |
この手順では、カーネルデバッガ ( kmdb) を読み込むための基本的な操作を示します。デフォルトでは、savecore 機能を使用できます。カーネルデバッガの使用方法の詳細については、『Solaris モジューラデバッガ』を参照してください。
システムをブートします。
システムがブートすると、GRUB メニューが表示されます。
GRUB メニューが表示されたら、e と入力して GRUB 編集メニューにアクセスします。
矢印キーを使用して、kernel$ 行を選択します。
矢印キーを使用できない場合は、^ キーを使って上方へスクロールしたり、v キーを使って下方へスクロールしたりします。
e と入力して、その行を編集します。
ブートエントリメニューが表示されます。このメニューで、kernel$ 行の末尾に追加のブート引数を指定して、ブート動作を変更できます。
行の終わりに -k と入力します。
Enter キーを押して、GRUB メインメニューに戻ります。
カーネルデバッガが使用可能な状態でシステムをブートするために、b と入力します。
カーネルデバッガにアクセスします。
デバッガにアクセスするための方法は、システムへのアクセスに使用するコンソールのタイプによって異なります。
ローカル接続されているキーボードを使用している場合は、F1–A を押します。
シリアルコンソールを使用している場合は、そのシリアルコンソールタイプに適した方法で ブレークを送信します。
カーネルデバッガに初めてアクセスした場合、ウェルカムメッセージが表示されます。
次の例は、64 ビット対応 x86 システムをカーネルデバッガが使用可能な状態で手動でブートする方法を示しています。
kernel$ /platform/i86pc/multiboot kernel/amd64/unix -k -B $ZFS-BOOTFS |
次の例は、64 ビット対応 x86 システムをカーネルデバッガ使用可能な状態で 32 ビットモードでブートする方法を示しています。
kernel$ /platform/i86pc/multiboot kernel/unix -k -B $ZFS-BOOTFS |