Oracle Solaris 11 システムをブートできなくなった場合は、おそらく復旧ブートの実行が必要になります。インストールメディアからブートするか、バックアップ BE をブートできます。
全面的なシステム (ベアメタル) 復旧を実行する必要がある場合は、Oracle Solaris 11.2 でのシステム復旧とクローン の復旧用アーカイブを作成する方法を参照してください。
次のエラーおよび復旧シナリオは以前のリリースと同様です。
boot –a コマンドを使用して、/etc/system ファイル内の問題をバイパスできます。プロンプトが表示されたら、次のような構文を使用します。
Name of system file [/etc/system]: /dev/null
必要に応じて、他のプロンプトで Return キーを押します。
バックアップ BE は、ほとんどの pkg update 操作中に自動的に作成されます。この機能を使用すると、イメージ更新プロセス中にエラーが発生した場合に、以前の BE をブートできます。システム構成を変更する前に、バックアップ BE の作成を検討してください。
# beadm create solaris-backup # beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris R - 4.01G static 2013-02-08 16:53 solaris-backup N / 47.95M static 2013-02-11 10:48
バックアップ BE からブートする手順については、復旧のためにバックアップ BE からブートする方法を参照してください。
インストールメディアから、またはネットワーク経由でインストールサーバーからブートして、システムのブートを妨げている問題から回復したり、失われた root パスワードを回復したりします。
シングルユーザーモードでシステムをブートして、/etc/passwd ファイルの root シェルエントリの修正や、NIS サーバーの変更などの軽微な問題を解決します。
ブート構成の問題の解決では、一般に、ルートプールをインポートし、BE をマウントし、破損した x86 ブートローダーの再インストールなど、問題を修正します。
フェイルセーフアーカイブのブートは、SPARC および x86 プラットフォームでサポートされなくなりました。可能な場合は常に、復旧には最新のバックアップ BE を使用します。BE は、Oracle Solaris イメージのブート可能なインスタンスに、そのイメージにインストールされているその他のアプリケーションソフトウェアパッケージを加えたものです。バックアップ BE は元の BE を維持するため、ソフトウェアを更新するときに複数の BE があるとリスクが軽減されます。
アクティブまたは非アクティブのブート環境に基づいて新しい BE を作成できます。または、元の BE のクローンに基づいて新しい BE を作成できます。クローンは、ルートデータセットと、元の BE のメインルートデータセットの下にあるすべてのものを階層的にコピーします。Oracle Solaris 11.2 ブート環境の作成と管理 を参照してください。
システムがアクティブな BE からブートしない場合は、ブート元となるバックアップ BE を選択します。
ok boot -L
Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a File and args: -L 1 Oracle Solaris 11.2 SPARC 2 solaris-backup Select environment to boot: [ 1 - 2 ]: 2
前述の出力で、アクティブな BE は Oracle Solaris 11.2 SPARC です。おそらく実際の BE 名と一致しませんが、現在の BE を表しています。
ブート元の BE を選択したあと、画面上のブートパスを識別し、その情報をプロンプトに入力します。
To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/solaris-backup Program terminated {0} ok boot -Z rpool/ROOT/solaris-backup
システムがブートしない場合は、復旧のためにシステムをブートする方法の追加のブート復旧段階を確認してください。
システムがバックアップ BE からブートしない場合は、復旧のためにシステムをブートする方法の追加のブート復旧段階を確認してください。
x86: Live Media – インストールメディアからブートし、回復手順のために GNOME 端末を使用します。
SPARC: テキストインストール – インストールメディアまたはネットワークからブートし、テキストインストール画面からオプション「3 Shell」を選択します。
x86: テキストインストール – GRUB メニューから「Text Installer and command line」ブートエントリを選択し、次にテキストインストール画面からオプション「3 Shell」を選択します。
SPARC: 自動インストール – 次のコマンドを使用して、シェルに出られるインストールメニューから直接ブートします。
ok boot net:dhcp
x86: 自動インストール – ネットワーク上のインストールサーバーからのブートには PXE ブートが必要です。GRUB メニューから「Text Installer and command line」エントリを選択します。次に、テキストインストール画面からオプション「3 Shell」を選択します。
たとえば、システムがブートしたあとで、オプション「3 Shell」を選択します。
1 Install Oracle Solaris 2 Install Additional Drivers 3 Shell 4 Terminal type (currently xterm) 5 Reboot Please enter a number [1]: 3 To return to the main menu, exit the shell #
システムをシングルユーザーモードでブートし、/etc/passwd ファイルのシェルエントリを修正して、不正なルートシェルを解決します。
x86 ベースのシステムでは、GRUB メニューで選択したブートエントリを編集してから、$kernel 行の最後にカーネル引数 –s を追加します。
SPARC ベースのシステムでは、システムをシャットダウンし、シングルユーザーモードでブートします。root ユーザーとしてログインしたあとに、/etc/passwd ファイルを編集し、root シェルエントリを修正します。
# init 0 ok boot -s Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a ... SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: systema.domain Requesting System Maintenance Mode SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): xxxxxxx single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Aug 3 15:46:21 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.2 July 2013 su: No shell /usr/bin/mybash. Trying fallback shell /sbin/sh. root@systema.domain:~# TERM =vt100; export TERM root@systema.domain:~# vi /etc/passwd root@systema.domian:~# <Press control-d> logout svc.startd: Returning to milestone all.
破損したブートローダーの問題を解決します。
まず、段階 1 に示したブート方法のいずれかを使用して、メディアまたはネットワークからブートします。次に、ルートプールをインポートします。
# zpool import -f rpool
その後、次のようにブートローダーを再インストールします。
# bootadm install-bootloader -f -P rpool
ここで、–f は、システム上のブートローダーのバージョンをダウングレードしないよう、ブートローダーのインストールを強制し、関連するチェックをバイパスします。–P オプションはルートプールを指定します。
システムを終了してリブートします。
# exit 1 Install Oracle Solaris 2 Install Additional Drivers 3 Shell 4 Terminal type (currently sun-color) 5 Reboot Please enter a number [1]: 5
システムが正常にブートすることを確認します。
システムにログインできない原因となっている不明な root パスワードを解決します。
まず、ステップ 1 に示したブート方法のいずれかを使用して、メディアまたはネットワークからブートする必要があります。次に、ルートプール (rpool) をインポートし、BE をマウントして root パスワードエントリを削除します。この処理は、SPARC プラットフォームと x86 プラットフォームで同一です。
# zpool import -f rpool # beadm list be_find_current_be: failed to find current BE name be_find_current_be: failed to find current BE name BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 11.45M static 2011-10-22 00:30 solaris-2 R - 12.69G static 2011-10-21 21:04 # mkdir /a # beadm mount solaris-2 /a # TERM=vt100 # export TERM # cd /a/etc # vi shadow <Carefully remove the unknown password> # cd / # beadm umount solaris-2 # halt
このステップは、前のステップで不明な root パスワードを削除したことを前提としています。
ok boot -s Boot device: /pci@780/pci@0/pci@9/scsi@0/disk@0,0:a File and args: -s SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: systema.domain Requesting System Maintenance Mode SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): <Press return> single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode . . . root@sysadma.domain:~# passwd -r files root New Password: xxxxxx Re-enter new Password: xxxxxx passwd: password successfully changed for root root@systema.central:~# <Press control-d> logout svc.startd: Returning to milestone all.