Y a-t-il un moyen de savoir avec quels paramètres le noyau a démarré ?
Par exemple si je spécifie noexec=off à la ligne de commande Grub ? Puis-je voir ce genre d'informations après que le système ait fini de démarrer ?
Y a-t-il un moyen de savoir avec quels paramètres le noyau a démarré ?
Par exemple si je spécifie noexec=off à la ligne de commande Grub ? Puis-je voir ce genre d'informations après que le système ait fini de démarrer ?
Une autre méthode consiste à vérifier la sortie de dmesg
(ligne 5 ici) :
$ dmesg | grep "Command line"
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.19.0-33-generic root=UUID=81dba11f-f76e-4ed4-8120-e6da6328b1ee ro
Mais notez que cela peut ne pas fonctionner si beaucoup de choses ont été enregistrées (par exemple si la machine tourne depuis longtemps) car les lignes de démarrage initiales peuvent avoir été poussées hors du ringbuffer.
En fait, le paramètre est situé entre __setup_start
y __setup_end
dans le noyau. Dans le code suivant, le p->str
est le nom du paramètre
Le code suivant du noyau a été trouvé dans linux-3.4.5/init/main.c:388
/* Check for early params. */
static int __init do_early_param(char *param, char *val)
{
const struct obs_kernel_param *p;
for (p = __setup_start; p < __setup_end; p++) {
if ((p->early && parameq(param, p->str)) ||
(strcmp(param, "console") == 0 &&
strcmp(p->str, "earlycon") == 0)
) {
if (p->setup_func(val) != 0)
printk(KERN_WARNING
"Malformed early option '%s'\n", param);
}
}
/* We accept everything at this stage. */
return 0;
}
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.