Ligne de commande du noyau
Ligne de commande du noyau (en anglais kernel command line) : chaîne de mots séparés par des espaces que le chargeur d'amorçage transmet au noyau au démarrage. Le noyau en consomme une partie (root=, ro, console=, quiet, panic=, init=), transmet à un module les paramètres de la forme module.paramètre=valeur, et laisse le reste à l'initramfs (break=, rootdelay=) et à systemd (systemd.unit=rescue.target, systemd.mask=, systemd.debug_shell).
Sur Debian et Ubuntu, on ne l'écrit jamais dans /boot/grub/grub.cfg, régénéré à chaque mise à jour du noyau. On dépose un fichier dans /etc/default/grub.d/ qui définit GRUB_CMDLINE_LINUX (toutes les entrées, mode de secours compris) ou GRUB_CMDLINE_LINUX_DEFAULT (entrées normales seulement), puis on lance update-grub. Attention aux fichiers des images cloud, comme 50-cloudimg-settings.cfg, qui redéfinissent ces variables et sont lus après /etc/default/grub. La seule vérité est /proc/cmdline, ce que le noyau en cours a réellement reçu.
Pour un seul démarrage, la touche e dans le menu de GRUB permet d'ajouter des paramètres à la ligne linux, sans rien écrire sur le disque : c'est la porte de dépannage quand SSH est fermé. C'est aussi pourquoi l'accès à la console vaut un accès root. Pour une console Scaleway, console=ttyS0 doit venir en dernier : la dernière console citée devient /dev/console et reçoit les invites interactives.
Dans les cours
- Linux : administration système, leçon 2 : Le démarrage, du firmware à systemd
- Linux : administration système, leçon 5 : Dépanner un serveur qui ne démarre plus
- Linux : administration système, leçon 3 : Le noyau : modules et paramètres