Où le fichier journal est-il généré par une start-up détaillée dans OS X Lion?

19

Après avoir démarré ma machine en mode verbeux (cmd + v au démarrage), je veux afficher les messages de journal générés, pour déboguer une erreur que je reçois ( l'erreur ). L'erreur ne s'affiche que brièvement à l'écran lors du démarrage, avant le redémarrage de la machine. En conséquence, nous n'avons pas le temps de le lire correctement.

OS X fournit-il un fichier journal distinct pour les messages de démarrage, ou est-ce qu'ils sont enfouis dans les fichiers kernel.log et system.log? S'ils sont enfouis dans ces fichiers, existe-t-il un moyen rapide de sauter au point où le système démarre, dans la visionneuse de console?

purplétonique
la source

Réponses:

3

À partir d'au moins Snow Leopard et peut-être Leopard, toute la journalisation sur le système passe par le mécanisme ASL (Apple System Log), qui est comme un démon central et une base de données pour tous les messages de journal. Le démon ASL s'assure également que les messages de journal appropriés qui répondent à certains critères traditionnels sont écrits dans des fichiers journaux de texte plat traditionnels comme system.loget kernel.log, mais tout va également dans la base de données ASL.

Pour plus d' informations, consultez les pages de manuel syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8), etc.

Vous pouvez utiliser syslog(1)pour émettre des requêtes sur la base de données ASL. En outre, /Utilities/Console.appfournit une interface graphique pour générer et sauvegarder des requêtes personnalisées pour la base de données de l' ASL.

Je suis à peu près sûr que le tampon de messages du noyau (traditionnellement visualisé avec dmesg(8)) est vidé dans la base de données ASL dès que le démarrage a suffisamment avancé pour syslogdêtre exécuté, vous ne devriez donc pas avoir besoin d'appeler dmesgdirectement, sauf par force d'habitude. Ou si votre système ne démarre pas assez loin pour syslogdfonctionner.

Spiff
la source
Est-ce que cela fonctionne pour les bottes précédentes? Le problème que je rencontrais lorsque j'ai écrit cette question (résolu maintenant, heureusement) ne se produisait que par intermittence. Alors disons, à chaque démarrage, c'était la panique du noyau sur moi, et ce que je voulais faire, c'était au prochain démarrage réussi, passer en revue le fichier journal, trouver le démarrage précédent et essayer de déboguer.
purplétonique
@purpletonic Oui, tout ce qui est envoyé à ASL est mis dans une base de données, où il reste pendant 7 jours par défaut (cela peut être ajusté avec asl.conf(5)). Donc, si vous déboguez des problèmes de démarrage et redémarrez plusieurs fois le même jour, ils seraient là par défaut. Et s'il s'agissait d'un problème à plus long terme, vous pouvez ajuster la période de rétention d'ASL pour conserver les éléments plus longtemps.
Spiff
Cependant, cette réponse ne dit pas comment j'obtiens la sortie du processus de démarrage "verbeux". Une fois démarré, dmesgn'affiche que quelques entrées récentes mais pas le journal de démarrage. Essayer ceci sur 10.12.6 - il n'y a plus de fichier "kernel.log" non plus.
SuperTempel
11

Ouvrez Terminal.app et exécutez

sudo dmesg

(on vous demandera votre mot de passe)

Cela affichera les messages système du dernier démarrage jusqu'à maintenant (vous trouverez les messages de démarrage en haut de la sortie). Vous pouvez essayer

sudo dmesg | plus

cela produira ces messages page par page.

trurl
la source
Agréable! J'utiliserais moins au lieu de plus, c'est beaucoup plus pratique et n'encombre pas le défilement de votre terminal.
SilverWolf
4

La réponse acceptée (par Spiff) ne m'a pas été utile, et il n'y a plus de kernel.log.

Ce qui fonctionne pour moi (sur macOS 10.12.6) est cette commande:

log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug

Il montre tous les msgs du noyau d'aujourd'hui, y compris le processus de démarrage. Il a besoin d'un peu de nettoyage, mais au moins il contient tout ce dont j'avais besoin pour trouver.

SuperTempel
la source
Cela fonctionne aussi pour moi. Je vous remercie. Les autres réponses montrent des choses qui ne sont pas nécessairement liées au démarrage, ou ne montrent PAS EXACTEMENT ce qui est imprimé pendant le démarrage. Votre réponse fait +1. Et c'est un code couleur aussi!
Max Coplan
2

Je me demande moi-même comment obtenir le journal le plus approprié au démarrage sans avoir accès à la console / au terminal. Il s'est écrasé au démarrage mais vous pouvez accéder au système de fichiers via le disque d'installation (j'avais un double démarrage linux disponible). Le fichier est:

/var/log/kernel.log

Si vous pouvez accéder à la console dans le système d'exploitation, il est préférable de suivre les autres suggestions et d'utiliser les commandes appropriées.

Warpspace
la source