在处理系统故障转储信息时,请记住以下几点重要内容:
只有成为超级用户或同等角色的用户,才能访问和管理系统故障转储信息。
不要禁用保存系统故障转储的选项。系统故障转储文件提供了用于确定系统崩溃原因的非常有价值的方法。
在将重要的系统故障转储信息发送给客户服务代表之前,不要删除这些信息。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
显示当前的故障转储配置。
# dumpadm Dump content: kernel pages Dump device: /dev/dsk/c0t3d0s1 (swap) Savecore directory: /var/crash/venus Savecore enabled: yes Saved compressed: on |
前面的示例输出表明:
转储内容是内核内存页面。
内核内存将在交换设备 /dev/dsk/c0t3d0s1 中转储。使用 swap -l 命令可以确定所有交换区域。
系统故障转储文件将写入 /var/crash/venus 目录。
已启用故障转储文件的保存。
以压缩格式保存故障转储。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
确定当前的故障转储配置。
# dumpadm Dump content: kernel pages Dump device: /dev/dsk/c0t3d0s1 (swap) Savecore directory: /var/crash/pluto Savecore enabled: yes Save commpressed: on |
此输出标识了运行 Oracle Solaris 10 发行版的系统的缺省转储配置。
修改故障转储配置。
# /usr/sbin/dumpadm [-nuy] [-c content-type] [-d dump-device] [-m mink | minm | min%] [-s savecore-dir] [-r root-dir] [-z on | off] |
指定要转储的数据类型。使用 kernel 转储所有内核内存,使用 all 转储所有内存,或使用 curproc 转储内核内存以及在发生崩溃时其线程正在执行的进程的内存页面。缺省转储内容是内核内存。
指定在系统崩溃时临时存储转储数据的设备。主交换设备是缺省转储设备。
通过在当前的 savecore 目录中创建 minfree 文件,指定用于保存故障转储文件的最小空闲磁盘空间。可以 KB (nnnk)、MB (nnnm) 或文件系统大小百分比 (nnn%) 的形式指定此参数。savecore 命令会在写入故障转储文件之前访问此文件。如果写入故障转储文件(根据大小)会减少空闲空间量并使其低于 minfree 阈值,则不写入转储文件,并记录一条错误消息。有关从此情况中恢复的信息,请参见如何从完整的故障转储目录中恢复(可选)。
指定重新引导系统时不应运行 savecore。不推荐使用此转储配置。如果已将系统故障转储信息写入交换设备并且未启用 savecore,则系统开始交换时将覆写故障转储信息。
指定用于存储故障转储文件的备用目录。缺省目录为 /var/crash/hostname,其中 hostname 是 uname -n 命令的输出。
强制更新基于 /etc/dumpadm.conf 文件内容的内核转储配置。
修改转储配置以在重新引导时自动执行 savecore 命令,即此转储设置的缺省值。
修改转储配置以控制重新引导时 savecore 命令的操作。on 设置允许以压缩格式保存核心转储文件。off 设置会自动解压缩故障转储文件。由于故障转储文件可能非常大,而以压缩格式保存需要的文件系统空间较少,因此默认值为 on。
在此示例中,所有内存都会转储到专用转储设备 /dev/dsk/c0t1d0s1 中,并且在保存故障转储文件后必须可用的最小空闲空间为文件系统空间的 10%。
# dumpadm Dump content: kernel pages Dump device: /dev/dsk/c0t3d0s1 (swap) Savecore directory: /var/crash/pluto Savecore enabled: yes Save compressed: on # dumpadm -c all -d /dev/dsk/c0t1d0s1 -m 10% Dump content: all pages Dump device: /dev/dsk/c0t1d0s1 (dedicated) Savecore directory: /var/crash/pluto (minfree = 77071KB) Savecore enabled: yes Save compressed: on |
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
# /usr/bin/mdb [-k] crashdump-file |
通过假定文件为操作系统故障转储文件来指定内核调试模式。
指定操作系统故障转储文件。
显示崩溃状态信息。
# /usr/bin/mdb file-name > ::status . . . > ::system . . . |
以下示例显示 mdb 实用程序的样例输出,其中包括系统信息,并列出在此系统的 /etc/system 文件中设置的可调参数。
# /usr/bin/mdb -k unix.0 Loading modules: [ unix krtld genunix ip nfs ipc ptm ] > ::status debugging crash dump /dev/mem (64-bit) from ozlo operating system: 5.10 Generic (sun4u) > ::system set ufs_ninode=0x9c40 [0t40000] set ncsize=0x4e20 [0t20000] set pt_cnt=0x400 [0t1024] |
在此情况下,系统崩溃,但 savecore 目录中没有任何可用空间,并且您要保存一些关键的系统故障转储信息。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
在系统中禁用或启用故障转储的保存。
# dumpadm -n | -y |
此示例说明如何在系统中禁用故障转储的保存。
# dumpadm -n Dump content: all pages Dump device: /dev/dsk/c0t1d0s1 (dedicated) Savecore directory: /var/crash/pluto (minfree = 77071KB) Savecore enabled: no Save Compressed: on |
此示例说明如何在系统中启用故障转储的保存。
# dumpadm -y Dump content: all pages Dump device: /dev/dsk/c0t1d0s1 (dedicated) Savecore directory: /var/crash/pluto (minfree = 77071KB) Savecore enabled: yes Save compressed: on |