Oracle® Solaris 10 から Oracle Solaris 11.2 への移行

印刷ビューの終了

更新: 2014 年 12 月
 
 

復旧のためのシステムのブート

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 パスワードを回復したりします。


    注 -  SPARC ベースのシステムでは、boot net:dhcp コマンドは、Oracle Solaris 10 リリースで使用される boot net コマンドに代わるものです。
  • シングルユーザーモードでシステムをブートして、/etc/passwd ファイルの root シェルエントリの修正や、NIS サーバーの変更などの軽微な問題を解決します。

  • ブート構成の問題の解決では、一般に、ルートプールをインポートし、BE をマウントし、破損した x86 ブートローダーの再インストールなど、問題を修正します。

復旧のためにバックアップ BE からブートする方法

フェイルセーフアーカイブのブートは、SPARC および x86 プラットフォームでサポートされなくなりました。可能な場合は常に、復旧には最新のバックアップ BE を使用します。BE は、Oracle Solaris イメージのブート可能なインスタンスに、そのイメージにインストールされているその他のアプリケーションソフトウェアパッケージを加えたものです。バックアップ BE は元の BE を維持するため、ソフトウェアを更新するときに複数の BE があるとリスクが軽減されます。

アクティブまたは非アクティブのブート環境に基づいて新しい BE を作成できます。または、元の BE のクローンに基づいて新しい BE を作成できます。クローンは、ルートデータセットと、元の BE のメインルートデータセットの下にあるすべてのものを階層的にコピーします。Oracle Solaris 11.2 ブート環境の作成と管理 を参照してください。

システムがアクティブな BE からブートしない場合は、ブート元となるバックアップ BE を選択します。

  • 次のようにバックアップ BE からブートします。
    • SPARC: 代替またはバックアップ BE を選択できるよう、システムをブートします。
      1. boot –L コマンドでブートします。
        ok boot -L
      2. 代替またはバックアップ BE を選択します。
        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 を表しています。

      3. バックアップ 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

        システムがブートしない場合は、復旧のためにシステムをブートする方法の追加のブート復旧段階を確認してください。

    • x86: システムをブートして、GRUB メニューから代替またはバックアップ BE を識別します。
      1. GRUB メニューが表示されたら、バックアップ BE を識別します。
      2. バックアップ BE を選択し、Return キーを押してそのエントリをブートします。

        システムがバックアップ BE からブートしない場合は、復旧のためにシステムをブートする方法の追加のブート復旧段階を確認してください。

復旧のためにシステムをブートする方法

  1. 適切なブート方法を選択します。
    • 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
    #
  2. 次のブート復旧の問題から選択します。
    • システムをシングルユーザーモードでブートし、/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

      注 -  確実にブートローダーをメディア上にあるバージョンで上書きするのでないかぎり、–f オプションを使用しないでください。Oracle Solaris 11.2 システムのブートとシャットダウン のbootadm install-bootloader コマンドを使用して GRUB 2 をインストールするを参照してください。

      その後、次のようにブートローダーを再インストールします。

      # 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
  3. シングルユーザーモードでブートしてパスワードを設定することで、ルートパスワードを設定します。

    このステップは、前のステップで不明な root パスワードを削除したことを前提としています。

    • x86 ベースのシステムでは、GRUB メニューで選択したブートエントリを編集してから、$kernel 行に –s オプションを追加します。
    • SPARC ベースシステムでは、システムをシングルユーザーモードでブートし、root としてログインして、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.