Pour changer de runlevel au boot, il faut ajouter utiliser l’option du kernel : systemd.unit=rescue.target. Il est également possible d’utiliser la cible emergency.target.
Pour changer de runlevel après le démarrage, il faut utiliser la commande systemctl isolate multi-user.target.
Cette option peut être passé au démarrage via le kernel en ajoutant : systemd.debug-shell. Il peut aussi être activé une fois le système démarré en utilisant la commande systemctl enable debug-shell.service. Ce mode démarre un shell sur tty9 accessible via la combinaison de touche CTRL+ALT+F9.
Note : penser à désactiver le shell après avoir fait ces opérations de maintenance.
L’option rd.break force initramfs à nous rendre la main avant qu’il rende le contrôle au kernel. Cela nous permet d’avoir un accès root dans l’initramfs. On peut ensuite re-monter le disque dur en R/W. L’option est à passer au kernel :
rd.break enforcing=0
Il est préférable de retirer l’option quiet. L’option enforcing=0 permet d’éviter de perdre du temps avec le relabeling de SELinux. La procédure 24.5 de l’Administrator Guide de RedHat montre comment changer le mot de passe root sur un système avec SELinux d’activé.
Note : l’option fonctionne sur les distributions de type Fedora/CentOS/RedHat.
Une autre méthode pour accéder en root sur la machine est d’utiliser l’option init du kernel pour spécifier un processus d’init. On peut ainsi faire démarrer un shell bash : init=/bin/bash. L’autre possibilité pour atteindre un shell est de passer en valeur d’init un chemin qui n’existe pas sur le système de fichier. Le système rend alors la main à l’utilisateur.
Il est possible de changer le mot de passe root via le CD d’installtion. Il faut, pour cela, un accès physique au serveur.
Booter sur le CD est choisir l’option Rescue a Linux system. Taper ensuite 1 pour accèder au shell.
Le system du serveur est monté sous /mnt/sysimage. Si ce n’est pas le cas, il faut alors le monter soi-même via les commandes suivantes :
mkdir /mnt/sysimage
mount /dev/sda1 /mnt/sysimage
Il faut ensuite effectuer un chroot dans ce répertoire :
chroot /mnt/sysimage/
On peut alors changer le mot de pass root avec la commande passwd. Il suffit juste de rebooter le serveur.