Oracle® Solaris 11.2 での ZFS ファイルシステムの管理

印刷ビューの終了

更新: 2014 年 12 月
 
 

ZFS ルート環境での回復のためのブート

失われたルートパスワードやそれに似た問題から回復するためにシステムをブートする必要がある場合は、次の手順を使用します。

復旧を目的としてシステムをブートする方法

破損したブートローダーの問題やルートパスワードの問題を解決するには、次の手順を使用します。ルートプールのディスクを交換する必要がある場合は、ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)を参照してください。完全なシステム (ベアメタル) 回復を実行する必要がある場合は、Oracle Solaris 11.2 でのシステム復旧とクローン を参照してください。

  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 ファイルのシェルエントリを修正することによって、不正な root シェルを解決します。

      x86 システムでは、選択したブートエントリを編集して –s オプションを追加します。

      たとえば、SPARC システムでは、システムをシャットダウンしてシングルモードでブートします。root としてログインしたら、/etc/passwd ファイルを編集してルートシェルエントリを修正します。

      # 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: tardis.central
      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): xxxx
      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@tardis.central:~# TERM =vt100; export TERM
      root@tardis.central:~# vi /etc/passwd
      root@tardis.central:~# <Press control-d>
      logout
      svc.startd: Returning to milestone all.
    • 破損したブートローダーの問題を解決します。

      最初に、手順 1 に示したいずれかのブート方法を使用してメディアまたはネットワークからブートする必要があります。次に、たとえば、ルートプールをインポートして GRUB エントリを修正します。

      x86# zpool import -f rpool

      ブートローダーを再インストールします。

      x86# bootadm install-bootloader -f -P rpool

      ここで、–f オプションは、システム上のブートローダーのバージョンをダウングレードしないよう、ブートローダーのインストールを強制し、バージョンチェックをバイパスします。–P オプションは、ルートプールの指定に使用されます。

      bootadm list-menu コマンドを使用すると、GRUB2 エントリを一覧表示して変更できます。詳細は、bootadm(1M) を参照してください。

      終了してシステムをリブートします。

      x86# 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

      システムが正常にブートすることを確認します。

    • システムにログインできない原因となっている不明なルートパスワードを解決します。

      最初に、手順 1 に示したいずれかのブート方法を使用してメディアまたはネットワークからブートする必要があります。次に、ルートプール (rpool) をインポートし、BE をマウントしてルートパスワードエントリを削除します。このプロセスは、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   -      -          46.95M static 2012-07-20 10:25
      solaris-2 R      -          3.81G  static 2012-07-19 13:44
      # 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. シングルユーザーモードでブートしてパスワードを設定することで、ルートパスワードを設定します。

    この手順は、前の手順で不明なルートパスワードが削除されていることを前提としています。

    x86 ベースシステムでは、選択したブートエントリを編集して –s オプションを追加します。

    SPARC ベースシステムでは、システムをシングルユーザーモードでブートし、root としてログインして、root パスワードを設定します。例:

    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".
    
    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
    
    Jul 20 14:09:59 su: 'su root' succeeded for root on /dev/console
    Oracle Corporation      SunOS 5.11      11.2    July 2013
    root@tardis.central:~# passwd -r files root
    New Password: xxxxxx
    Re-enter new Password: xxxxxx
    passwd: password successfully changed for root
    root@tardis.central:~# <Press control-d>
    logout
    svc.startd: Returning to milestone all.