查明系统何时发生故障?

查明系统何时发生故障?

我有一台 Mac OS X 10.5 服务器,里面设置了 RAID,由于周四停电而瘫痪,现在机器无法正常启动*。

在不从内部驱动器启动的情况下,可以查明机器何时发生故障吗?(我从外部驱动器启动,等待 RAID 集初始化。)

通常情况下,我会运行last。手册页没有表明我可以针对不同的启动卷运行它。看起来可以解析 /var/log/utmpx,但我认为对于这个一次性问题,尝试从头开始这样做是不值得的。


更新: 在重新阅读手册页时,我看到概要显示:

last [-n] [-f file] [-h host] [-t tty] [user ...]

其他地方都没有-f file提到这个参数。当我尝试时,last -f /var/run/utmpx我得到了一点信息,然后出现了分段错误。

我谷歌搜索了“man last”,找到了 OS X 10.6 的手册页,但它甚至没有-f flag在概要部分显示。由此我推测 -f 标志中有一个已知错误。


*** 我仍在试图弄清楚它为什么不正常,可能会问一个后续问题。现在我可以看到 UserNotificationCenter 在周四凌晨多次崩溃,并且 securityd、mdworker 和 ARDAgent 在启动后不久崩溃 [我想——我想验证盒子何时启动和关闭]。登录窗口无法正确显示(我认为它正在崩溃或无法应对死掉的 securityd)。盒子应该设置为在 UPS 指示断电时关闭;目前,我想知道它是否关闭了,然后多次重新打开!我当然希望不是。

答案1

这只是猜测,因为我是 Linux 用户,但-- MARK --计算机开启时我通常会每 20 分钟在 /var/log/messages 中收到一条消息。只需查找系统日志文件中是否有间隙?

答案2

我并不特别想接受这个作为答案,因为它回避了原始问题,但是:

  • 最后,在 RAID 初始化完成后,我以单用户模式启动服务器,运行last并记录结果。

  • 我确实与 /var/log/system.log 进行了比较,看来每次启动时,它都会输出一行包含 fsck 的内容 - 要么表示日志已打开且不需要检查,要么表示已强制进行检查。(我没有看到与计算机关闭时间有任何特别的关联。)

  • 当我检查 /var/log/secure.log 时,我发现它在读取 /etc/authorization 时遇到了麻烦。我查看了该文件(应该是 XML 文件),发现它乱七八糟。我运行了plutil /etc/authorization,以防它是一个二进制 plist,但它却抱怨了这一点。因此,我从另一台服务器复制了 /etc/authorization,重新启动后,我的服务器启动并运行,看起来一切正常。


更新:我只是从我的日志中添加了一些信息,以帮助遇到此问题的人找到解决方案。

在 中/var/log/system.log,我看到了类似这样的内容:

Apr 29 06:11:41 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[59]: ERROR | main | session setup failed (status = 226), launched by init = 1
Apr 29 06:11:41 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[59]: ERROR | main | loginwindow argument passed = console
Apr 29 06:11:41 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[59]: SessionGetInfo(0xffffffff) -> Mach 1102
...
Apr 29 06:11:42 servername loginwindow[59]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 29 06:11:42 servername /System/Library/CoreServices/coreservicesd[93]: Client must provide a valid sessionID but passed 0, 0x0/0x0 version=10500000 uid=0 euid=0. cf Radar 5123589.
Apr 29 06:11:42 servername loginwindow[59]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.
...
Apr 29 06:11:47 servername ReportCrash[88]: Formulating crash report for process loginwindow[59]
Apr 29 06:11:48 servername com.apple.launchd[1] (com.apple.UserEventAgent-LoginWindow[195]): Exited: Terminated
Apr 29 06:11:48 servername com.apple.launchd[1] (com.apple.loginwindow[59]): Exited abnormally: Abort trap
Apr 29 06:11:48 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[220]: Login Window Application Started -- Threaded auth
Apr 29 06:11:48 servername ReportCrash[88]: Saved crashreport to /Library/Logs/CrashReporter/loginwindow_2010-04-29-061142_servername.crash using uid: 0 gid: 0, euid: 0 egid: 0

并且/var/log/secure.log

Apr 29 06:15:46 servername loginwindow[772]: SessionGetInfo(0xffffffff) -> Mach 1102
Apr 29 06:15:46 servername loginwindow[772]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 29 06:15:46 servername loginwindow[772]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.
Apr 29 06:15:56: --- last message repeated 4 times ---
...
Apr 29 06:37:23 servername loginwindow[554]: SessionGetInfo(0xffffffff) -> Mach 1102
Apr 29 06:37:23 servername loginwindow[554]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 29 06:37:23 servername loginwindow[554]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.
Apr 30 08:04:28 localhost com.apple.SecurityServer[36]: Entering service
Apr 30 08:04:33 servername com.apple.SecurityServer[36]: Parsing rules file "/etc/authorization": XML parser error:\n   Unexpected character  at line 1\nOld-style plist parser error:\n    Unexpected character '0x0' at line 1
Apr 30 08:04:33 servername com.apple.SecurityServer[36]: Parsing rules file "/etc/authorization": XML parser error:\n   Unexpected character  at line 1\nOld-style plist parser error:\n    Unexpected character '0x0' at line 1
Apr 30 08:05:20 servername loginwindow[60]: SessionGetInfo(0xffffffff) -> Mach 1102
Apr 30 08:05:20 servername loginwindow[60]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 30 08:05:20 servername loginwindow[60]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.

日志中的关键信息是没有任何东西可以与 coreservicesd 通信(登录窗口因此崩溃),并且 SecurityServer 无法解析 /etc/authorization。我应该注意到服务器正在运行 10.5(可能是 10.5.8)。

相关内容