リポジトリデータベース(/etc/svc/repository.db)は、ディスク
障害やハードウェア/ソフトウェア等のバグが原因で破壊される可能性
があるので、バックアップを自動保存しています。
リポジトリデーモン(svc.configd)は、システム起動時にリポジトリ
データベースの整合性をチェックしますが、このチェックに失敗すると、
コンソールに次のようなメッセージを出力します。
----------------
svc.configd: smf(5) database integrity check of:
/etc/svc/repository.db
failed. The database might be damaged or a media error might have
prevented it from being verified. Additional information useful to
your service provider is in:
/etc/svc/volatile/db_errors
(以下省略...)
----------------
メッセージが出力された後、svc.configd デーモンは終了し、sulogind が
起動して保守作業が行えるようになります。
保守手順としては以下を実施します。
1.sulogin プロンプトで root パスワードを入力
(→suloginではroot ユーザはシステム保守モードに入って、システムを修復できます。)
2.次のスクリプトを実行します。
# /lib/svc/bin/restore_repository
3.リポジトリデータベースのバックアップファイルが古い順にリスト表示
されるので、戻したいファイルの番号を指定し、実行します。
例)バックアップファイルのリスト表示
manifest_import-20100209_011049
boot-20100625_061704
boot-20100625_231955
boot-20100628_001933
boot-20100704_050149
下記の表示が出力されたら、適切な番号を指定し、実行する。
----------------
Please enter one of:
1) boot, for the most recent post-boot backup
2) manifest_import, for the most recent manifest_import backup.
3) a specific backup repository from the above list
4) -seed-, the initial starting repository. (All customizations
will be lost.)
5) -quit-, to cancel.
Enter response [boot]:
----------------
通常は、最も新しい日付のファイルを指定するので、1のbootを選択するか、
または、何も入力せずに、Enter を入力すればデフォルトで、[boot]が選択
されます。
(4の -seed- を選択すると、初期インストール時のリポジトリデータベース
が復元され、これまでの変更が全て失われるので、注意が必要です。)
4.修復するバックアップファイルを選択すると、妥当性の検査が実行され、
整合性に問題なければ、再起動を要求されます。
修復が完了すると、以下が表示されます。
----------------
Proceed [yes/no]?
----------------
(yesを入力すると、システムが再起動します)