savecore - オペレーティングシステムのクラッシュダンプの保存
savecore [-dNrvV] [-D dirname] [-s secname] [-f dumpfile] [suffix] savecore -L [-v] [-D dirname] savecore -u [-dv] [-D dirname] [-f dumpfile] savecore -l [-H] [-f dumpfile] savecore -r [-v]
savecore ユーティリティーは、カーネルのクラッシュダンプを (作成されたことを前提として) 保存し、システムログにリブートメッセージを書き込みます。システムがブートするたびに、dumpadm サービスによって呼び出されます。
dumpadm(8) によって、圧縮形式または非圧縮形式でクラッシュダンプデータを保存するように savecore を構成できます。dumpadm(8) 構成に応じて、クラッシュダンプデータはダンプデバイスでセクションに分割されます。圧縮形式の場合、savecore は vmdump-<section>.N というファイルにクラッシュダンプデータを保存します。ここで、section は実際のセクションの名前です。生成されるファイルの実際の数は、dumpadm(8) 構成と savecore の実行方法によって異なります。パス名の N は、クラッシュダンプをダンプデバイスからコピーするために savecore が実行されて、新しいクラッシュダンプがダンプデバイスに見つかるたびに増分される数値で置き換えられます。クラッシュダンプのセクションの一部がすでにコピーされている場合、数値は増分されません。ファイルは、–D オプションで指定されたディレクトリの下に作成されたサブディレクトリまたは dumpadm(8) によって構成されたクラッシュダンプディレクトリに保存されます。サブディレクトリの形式は data/<uuid> で、uuid はこの特定のパニックイベントの一意の FMA 識別子と一致します。
suffix 引数は数値の接尾辞を指定します。savecore は、接尾辞引数を指定して実行された場合、vmdump-<section>.N という名前のファイルをすべて圧縮解除しようとします。ここで、N は接尾辞引数と等しくなります。この接尾辞引数は、–f オプションと一緒に使用した場合は無効です。
圧縮ファイルはすべて、接尾辞引数を使用して別の手順で圧縮解除することも、–f dumpfile オプションを使用して個別に圧縮解除することもできます。圧縮解除形式の場合、savecore は、クラッシュダンプデータをファイルディレクトリ /vmcore-<section>.N のファイルと、ディレクトリ /unix.N 内のカーネルの名前リストに保存します。
vmcore-*.N ファイルに対して抽出を実行すると、リモートシステムから vmdump-*.N ファイルの整合性検証が行われます。これは、–V オプションを使用して抽出なしで別個に実行できます。検証が失敗した場合、savecore はそのファイルを不完全としてマークします。
savecore は、クラッシュダンプを書き出す前に directory/minfree ファイルから数値を読み取ります。これは、directory を含むファイルシステム上で空けておく必要がある最大キロバイト数です。クラッシュダンプの保存後に directory を含むファイルシステムの空き領域が minfree で指定されたキロバイト数を下回ると、クラッシュダンプは保存されません。minfree ファイルが存在しない場合、savecore は minfree の値を 1M バイトと見なします。
savecore ユーティリティーは、LOG_AUTH (syslog(3C) を参照) 機能を使用してリブートメッセージも記録します。システムがパニックの発生によってクラッシュした場合、savecore はパニック文字列も記録します。
また、パニック後にシステムがリブートした場合でも、savecore ユーティリティーは fma(3M) を生成します。
サポートしているオプションは、次のとおりです。
クラッシュダンプファイルを指定されたディレクトリに保存します。directory オプションが指定されていない場合、savecore は、dumpadm(8) によって構成されたディレクトリから派生したデフォルトの savecore ディレクトリにクラッシュダンプファイルを保存します。
ダンプヘッダー有効フラグを無視します。ダンプデバイスに格納されているヘッダー情報に、ダンプがすでに保存されていることが示されている場合でも、savecore は強制的にクラッシュダンプを保存しようとします。
システムの現在のダンプデバイスではなく、指定されたファイルからクラッシュダンプを保存します。directory/vmdump-<section>.N が指定された場合は、そのファイルを vmcore-<section>.N と unix.N に圧縮解除します。ここで、N は圧縮形式の名前と同じ数値です。
このオプションは、ダンプデバイスに格納された情報が dd(8) コマンドによってディスク上のファイルにコピーされている場合にも役立つことがあります。
列ヘッダーを省略します。
システムを実際にはリブートしたり変更したりせずに、実行中の Solaris システムのクラッシュダンプを保存します。このオプションを使用すると、 savecore はシステムの実行中のスナップショットをダンプデバイスに強制的に保存し、ただちにデータを取り出して、それを指定されたディレクトリ内の新しいクラッシュダンプファイルのセットに書き出します。稼働中のシステムのクラッシュダンプは、dumpadm(8) を使用して専用のダンプデバイスを備えたシステムを構成した場合にのみ実行できます。
savecore –L を使用してもシステムは中断されないため、ダンプの保存中もメモリーの内容は変化し続けます。つまり、実行中のクラッシュダンプに自己矛盾がまったくないとはいえません。
dumpfile が指定されていない場合、ダンプデバイスにダンプされていてもまだ抽出されていないセクションを一覧表示します。–d が指定されている場合、すでに抽出されたものも含め、ダンプデバイスにダンプされたすべてのセクションを一覧表示します。
–f オプションを使用して dumpfile が指定されている場合、ダンプファイル内に存在するセクションを一覧表示します。–f が指定されている場合、–d との違いはありません。
ダンプデバイスからのセクションの選択抽出。使用可能なセクションのリストは、–l オプションを使用して取得できます。デフォルトでは、使用可能なすべてのセクションが抽出されます。リストの個々のメンバーはコンマ文字で区切られています。
考えられるセクション名のリスト:
カーネルページ。
プロセスアドレス空間にマップされたページ。
ZFS メタデータを含むページ。
空きページ、または ZFS データに使用されるページ。-c all 設定を使用して生成されるクラッシュダンプにのみ有効です。
vmcore.N から unix.N バイナリを抽出します。
ダンプファイルに保存されたダイジェストをその内容と照合して確認し、終了します。このオプションは、–f オプションとともに実行する必要があります。
冗長。savecore の詳細なエラーメッセージを有効にします。
次のコマンドは、ダンプデバイスから proc セクションのみを手動で抽出します。
# savecore -v -s proc
次のコマンドは、抽出されたすべての vmdump-*.3 ファイルを対応する vmcore-*.3 ファイルに圧縮解除します。
# savecore 3
<directory>/data/< uuid>/vmdump.N (圧縮されたカーネルイメージ)
<directory>/data/< uuid>/vmcore.N
<directory>/data/< uuid>/vmdump-zfs.N (圧縮された ZFS メタデータ)
<directory>/data/< uuid>/vmcore-zfs.N
<directory>/data/< uuid>/vmdump-proc.N (圧縮されたプロセスページ)
<directory>/data/< uuid>/vmcore-proc.N
<directory>/data/< uuid>/vmdump-other.N (圧縮されたその他のページ)
<directory>/data/< uuid>/vmcore-other.N
<directory>/data/< uuid>/unix.N (カーネルバイナリ)
<directory>/N (<directory>//data/< uuid> のシンボリックリンク)
<directory>/bounds
<directory>/minfree
/var/crash/ (デフォルトのクラッシュダンプディレクトリ)
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
adb(1)、mdb(1)、svcs(1)、syslog(3C)、fma(3M)、attributes(7)、smf(7)、dd(8)、dumpadm(8)、svcadm(8)
システムクラッシュダンプサービスは、サービス管理機構 smf(7) によって、次のサービス識別子の下で管理されます。
svc:/system/dumpadm:default
再起動の有効化、無効化、要求などのこのサービスでの管理アクションは、svcadm(8) を使用して実行できます。サービスステータスを照会するには、svcs(1) コマンドを使用します。
ダンプデバイスがスワップデバイスとしても使用されている場合は、クラッシュダンプを含むスワップ領域が現在実行されているプログラムによって上書きされないように、ブート後すぐに savecore を実行する必要があります。
savecore は、ファイルを作成すると、その末尾に接尾辞 .partial を追加します。ファイルが完成すると、この接尾辞が付かないファイル名に変更されます。この接尾辞が付いたファイルがダンプディレクトリに見つかった場合は、savecore がまだビジー状態であるか、またはファイルの書き込みが完了する前に処理が中断されたことを意味します。前者の場合は、ps(1) を使用して実行中の savecore プロセスの PID を見つけ、それが完了するまで待機します。後者の場合は、不完全なファイルを削除し、savecore –d を実行してファイルを再作成します。