Ligne de commande du noyau

La ligne de commande du noyau permet de lancer l'installation du noyau depuis le chargeur de démarrage (grub). La ligne de commande accepte des paramètres à destination du noyau, des modules, du chargeur de démarrage ou du programme d'initialisation (systemd). Ce document fournit quelques exemples d'utilisation.

Références

1 - Ligne de commande du noyau

La ligne de commande du noyau est définie dans le fichier de configuration de grub et apparaît, lors du démarrage du système, dans le menu de grub. Elle se présent sous la forme :

$ cat /boot/grub/grub.cfg |grep vmlinuz
linux /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro quiet
....

Elle est composée

1.1 - En-tête

root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297
root=/dev/sda1
root=LABEL=debian8

1.2 - Paramètres

Les paramètres peuvent être regroupés en 3 groupes

module_blacklist=pcskr,fan i915.modeset=0

2 - Utilisation

2.1 - Modification

Pour ajouter / supprimer des paramètres,

$ cat /etc/default/grub |grep "GRUB_CMDLINE_LINUX_DEFAULT"
GRUB_CMDLINE_LINUX_DEFAULT="quiet"

puis mettre à jour le fichier grub.cfg avec la commande

# update-grub

Voir Personnalisation de Grub pour plus de détails.

2.2 - Vérification

Une fois démarré, il est toujours possible de vérifier quelle ligne de commande et quels paramètres ont été utilisés :

# dmesg |grep "Kernel command line"
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro quiet
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro quiet

3 - Applications

3.1 - Démarrage standard

La ligne de commande standard comprend les paramètres ro et quiet

Exemple :

linux    /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro  quiet

3.2 - Activation de l'animation graphique plymouth

Lorsque plymouth est installé et configuré, utiliser les paramètres quiet et splash pour utiliser plymouth

Exemple :

linux       /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro  quiet splash

3.3 - Blocage de modules

Pour lister des modules à ne pas charger, utiliser le paramètres module_blacklist :

Exemple : bloquer le chargement des modules bluetooth et webcam

linux     /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro  quiet module_blacklist=btusb,uvcvideo

3.4 - Passation de paramètres à un module

Pour spécifier la valeur du paramètre d'un module, utiliser le paramètre module.paramètre=valeur :

Exemple : passer le paramètre bt_coexactive du module iwlwifi à N

linux     /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro  quiet iwlwifi.bt_coex_active=N 

3.5 - Désactivation du modesetting

Pour désactiver le modesetting, activé par défaut avec les processeurs graphiques intel, radeon, et nvidia (module nouveau seulement), désactiver le paramètre modeset du module ou par défaut des trois modules :

linux  /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro  quiet i915.modeset=0 radeon.modeset=0 nouveau.modeset=0

3.6 - Sélection affichage VGA

L'activation d'un mode VGA donné nécessite

linux16        /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro  quiet i915.modeset=0 radeon.modeset=0 nouveau.modeset=0 vga=ask
initrd16 /boot/initrd.img-4.8.0-0.bpo.2-amd64

3.7 - Démarrage en mode rescue, multi-user ou graphique

Pour démarrer dans un mode spécifique (différent du mode par défaut), utiliser le paramètre

Les différents niveaux possibles sont :

Exemple : Démarrage en mode multi-utilisateur:

linux    /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro systemd.unit=multi-user.target

qui est équivalent à

linux    /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 ro systemd.unit=runlevel3.target

Le niveau 1 peut également être spécifié avec simplement la lettre s ou S (pour single).

.3.8 - Récupération du mot de passe administrateur

Le principe est de se loger sans avoir à entrer de mot de passe, puis de définir un nouveau mot de passe. Utiliser les paramètres S, init=/bin/bash et rw :

Exemple :

linux    /boot/vmlinuz-4.8.0-0.bpo.2-amd64 root=UUID=a42b8919-e6a8-49e0-845e-6feb76b02297 rw S init=/bin/bash

Au prompt, entrer la commande passwd (vérifier que le clavier est dans la bonne disposition, sinon en tenir compte pour taper la commande et entrer le mot de passe)

root@(none):/# passwd
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : password updated successfully

Redémarrer (avec le bouton secteur)