Oracle Solaris ZFS 管理ガイド

起動できないシステムを修復する

ZFS は、エラーが発生した場合でも、堅牢で安定した状態であるように設計されています。それでも、ソフトウェアのバグや予期しない異常な操作のために、プールにアクセスするときにシステムでパニックが発生することがあります。各プールは起動処理のときに開く必要があるので、このような障害が発生すると、システムがパニックと再起動のループに入ってしまうことになります。この状況から回復するには、起動時にどのプールも探さないように ZFS を設定する必要があります。

ZFS では、利用できるプールとその構成の内部キャッシュを /etc/zfs/zpool.cache で管理しています。このファイルの場所と内容は非公開で、変更される可能性があります。システムを起動できなくなった場合は、-m milestone=none 起動オプションを使用して、マイルストーン none で起動します。システムが起動したら、ルートファイルシステムを書き込み可能として再マウントしてから、/etc/zfs/zpool.cache ファイルの名前を変更するかこのファイルを別の場所に移動します。これらの操作によって、システムに存在するすべてのプールがキャッシュから消去されるので、問題の原因となっている正常でないプールにアクセスしようとしなくなります。この状態になったら、svcadm milestone all コマンドを実行して、通常のシステムの状態に戻ることができます。代替ルートから起動して修復を行う場合にも、同じような工程を使用できます。

システムが起動したあとで、zpool import コマンドを使ってプールをインポートしてみることができます。ただし、このコマンドを実行すると、起動で発生したエラーと同じエラーが発生する可能性があります。これは、プールにアクセスするときに起動時と同じ方法が使用されているためです。複数のプールがシステムに存在する場合は、次の手順を実行します。