JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 の管理: ZFS ファイルシステム     Oracle Solaris 11.1 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris ZFS ファイルシステム (概要)

2.  Oracle Solaris ZFS 入門

3.  Oracle Solaris ZFS ストレージプールの管理

4.  ZFS ルートプールのコンポーネントの管理

ZFS ルートプールのコンポーネントの管理 (概要)

ZFS ルートプールの一般的な要件

ZFS ルートプールの容量要件

ZFS ルートプールの構成要件

ZFS ルートプールを管理する

ZFS ルートプールをインストールする

ZFS ブート環境を更新する方法

代替 BE をマウントする方法

ミラー化ルートプールを構成する方法 (SPARC または x86/VTOC)

ミラー化ルートプールを構成する方法 (x86/EFI (GPT))

ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)

ZFS ルートプールのディスクを交換する方法 (SPARC または x86/EFI (GPT))

別のルートプール内で BE を作成する方法 (SPARC または x86/VTOC)

別のルートプール内で BE を作成する方法 (SPARC または x86/EFI (GPT))

ZFS スワップデバイスおよびダンプデバイスを管理する

ZFS スワップデバイスおよびダンプデバイスのサイズを調整する

ZFS ダンプデバイスの問題のトラブルシューティング

ZFS ルートファイルシステムからのブート

ミラー化された ZFS ルートプールの代替ディスクからブートする

SPARC システムで ZFS ルートファイルシステムからブートする

x86 システムで ZFS ルートファイルシステムからブートする

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

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

5.  Oracle Solaris ZFS ファイルシステムの管理

6.  Oracle Solaris ZFS のスナップショットとクローンの操作

7.  ACL および属性を使用した Oracle Solaris ZFS ファイルの保護

8.  Oracle Solaris ZFS 委任管理

9.  Oracle Solaris ZFS の高度なトピック

10.  Oracle Solaris ZFS のトラブルシューティングとプールの回復

11.  スナップショットのアーカイブとルートプールの回復

12.  推奨の Oracle Solaris ZFS プラクティス

A.  Oracle Solaris ZFS バージョンの説明

索引

ZFS ルートファイルシステムからのブート

SPARC システムと x86 システムの両方は、ブートアーカイブを使用してブートします。ブートアーカイブは、ブートに必要なファイルを含んだファイルシステムイメージです。ZFS ルートファイルシステムからのブート時には、ブートアーカイブとカーネルファイルの両方のパス名が、ブート用に選択されたルートファイルシステム内で解決されます。

ZFS では、単一のルートファイルシステムではなくストレージプールがデバイス指定子で指定されるため、ZFS ファイルシステムからのブートは UFS ファイルシステムからのブートとは異なります。ストレージプールには、複数のブート可能 ZFS ルートファイルシステムが含まれていることがあります。ZFS からブートする場合は、ブートデバイスと、ブートデバイスによって指定されたプール内のルートファイルシステムを指定する必要があります。

デフォルトでは、プールの bootfs プロパティーで指定されているファイルシステムが、ブート用に選択されます。このデフォルト選択は、SPARC システムで boot -Z コマンドに代替のブート可能ファイルシステムを指定するか、x86 システムで BIOS から代替のブートデバイスを選択することによって上書きできます。

ミラー化された ZFS ルートプールの代替ディスクからブートする

インストール後にディスクを追加して、ミラー化された ZFS ルートプールを作成することができます。ミラー化ルートプールの作成の詳細は、「ミラー化ルートプールを構成する方法 (SPARC または x86/VTOC)」を参照してください。

ミラー化された ZFS ルートプールに関して、次に示す既知の問題を確認してください。

SPARC システムで ZFS ルートファイルシステムからブートする

複数の ZFS BE が存在する SPARC システムでは、beadm activate コマンドを使用することによって、任意の BE からブートできます。

インストールおよび beadm アクティブ化処理中に、ZFS ルートファイルシステムが bootfs プロパティーで自動的に指定されます。

ブート可能なファイルシステムがプール内に複数存在する場合があります。デフォルトでは、/pool-name/boot/menu.lst ファイルのブート可能ファイルシステムのエントリは、プールの bootfs プロパティーで指定されます。ただし、menu.lst のエントリに bootfs コマンドを含めて、プールの代替ファイルシステムを指定することもできます。このように、menu.lst ファイルには、プール内の複数のルートファイルシステムに対応するエントリが含まれている場合があります。

システムに ZFS ルートファイルシステムがインストールされると、次のようなエントリが menu.lst ファイルに追加されます。

title Oracle Solaris 11.1 SPARC
bootfs rpool/ROOT/solaris

新しい BE を作成すると、menu.lst ファイルが自動的に更新されます。

title Oracle Solaris 11.1 SPARC
bootfs rpool/ROOT/solaris
title solaris
bootfs rpool/ROOT/solaris2

SPARC ベースシステムでは、次のようにしてブート元の BE を選択できます。

このブート方法では、BE は自動的にアクティブ化されません。boot -L および -Z 構文で BE をブートしたあと、この BE をアクティブ化して、そこから自動的にブートし続けるようにする必要があります。

例 4-1 特定の ZFS ブート環境からブートする

システムのブートデバイス上の ZFS ストレージプールに複数の ZFS BE が存在する場合は、beadm activate コマンドを使用してデフォルトの BE を指定できます。

たとえば、次の ZFS BE が beadm の出力のとおり使用可能であるとします。

# beadm list
BE        Active Mountpoint Space Policy Created          
--        ------ ---------- ----- ------ -------          
solaris   NR     /          3.80G static 2012-07-20 10:25 
solaris-2 -      -          7.68M static 2012-07-19 13:44 

SPARC システムに複数の ZFS BE が存在する場合は、boot -L コマンドを使用できます。例:

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.1 SPARC
2 solaris
Select environment to boot: [ 1 - 2 ]: 1

To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/solaris-2

Program terminated
ok boot -Z rpool/ROOT/solaris-2

上記のコマンドでブートした BE は、次回のリブートにはアクティブになっていないことに留意してください。boot -Z 操作中に選択した BE から自動的にブートし続けるようにする場合は、この BE をアクティブにする必要があります。

x86 システムで ZFS ルートファイルシステムからブートする

Oracle Solaris 11 では、x86 システムにレガシー GRUB がインストールされ、インストールプロセス中または beadm activate 操作中に、ZFS を自動的にブートするための次のようなエントリが /pool-name/boot/grub/menu.lst ファイルに追加されます。

title solaris
bootfs rpool/ROOT/solaris
kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/amd64/boot_archive
title solaris-1
bootfs rpool/ROOT/solaris-1
kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/amd64/boot_archive

GRUB によってブートデバイスとして識別されたデバイスに ZFS ストレージプールが含まれている場合、menu.lst ファイルを使用して GRUB メニューが作成されます。

複数の ZFS BE が存在する x86 システムでは、BE を GRUB メニューから選択できます。このメニューエントリに対応するルートファイルシステムが ZFS ファイルシステムである場合は、次のオプションが追加されます。

-B $ZFS-BOOTFS

Oracle Solaris 11.1 では、x86 ベースシステムに GRUB2 がインストールされます。menu.lst ファイルは /rpool/boot/grub/grub.cfg ファイルに置き換えられますが、このファイルを手動で編集しないようにしてください。bootadm サブコマンドを使用して、メニューエントリを追加、変更、および削除します。

GRUB メニュー項目の変更の詳細は、『Oracle Solaris 11.1 システムのブートおよびシャットダウン』を参照してください。

例 4-2 x86: ZFS ファイルシステムをブートする

GRUB2 システムで ZFS ルートファイルシステムからブートするとき、ブートデバイスは次のように指定されます。

# bootadm list-menu
the location of the boot loader configuration files is: /rpool/boot/grub
default 0
console text
timeout 30
0 Oracle Solaris 11.1

レガシー GRUB システムで ZFS ルートファイルシステムからブートするとき、ルートデバイスはブート用の -B $ZFS-BOOTFS パラメータによって指定されます。例:

title solaris
bootfs rpool/ROOT/solaris
kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/amd64/boot_archive
title solaris-1
bootfs rpool/ROOT/solaris-1
kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/amd64/boot_archive

例 4-3 x86: ZFS ルートファイルシステムの高速リブート

高速リブート機能は、x86 システム上で数秒間のうちにリブートする機能を提供します。高速リブート機能により、BIOS およびブートローダーによって発生する可能性のある長い遅延を回避して、新しいカーネルにリブートすることができます。システムを高速にリブートするこの機能により、大幅にダウンタイムが短縮され、効率が向上します。

beadm activate コマンドで BE 間を移行するときは、引き続き init 6 コマンドを使用する必要があります。reboot コマンドが適切となるほかのシステム操作については、reboot -f コマンドを使用できます。例:

# reboot -f

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

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

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

menu.lst の問題やルートパスワードの問題を伴う問題を解決するには、次の手順を使用します。ルートプールのディスクを交換する必要がある場合は、「ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)」を参照してください。完全なシステム (ベアメタル) 回復を実行する必要がある場合は、第 11 章スナップショットのアーカイブとルートプールの回復を参照してください。

  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 システムでは、選択したブートエントリを編集して -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.1 64-bit
      Copyright (c) 1983, 2012, 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.1    October 2012
      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.
    • x86 ベースシステムのブートを妨げている問題を解決します。

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

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

      x86# zpool import -f rpool
      x86# bootadm list-menu
      x86# bootadm set-menu default=1
      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.1 64-bit
    Copyright (c) 1983, 2012, 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.1    October 2012
    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.