Un moyen simple de résoudre des problèmes comme celui-ci consiste souvent à démarrer à partir d'un système en direct, à monter la partition racine /mnt
, puis à renommer le fichier.
Si vous n'avez pas de système actif ou un moyen de le créer, ou si vous n'avez pas d'accès physique au système mais vous pouvez redémarrer et obtenir le menu GRUB, vous pouvez utiliser l'éditeur GRUB pour obtenir un shell racine et le renommer. le fichier.
Redémarrez ou éteignez, allumez et, si vous ne voyez pas normalement le menu GRUB au démarrage, appuyez sur Shiftou Escpour accéder au menu GRUB.
Déplacez le curseur vers le bas sur Options avancées pour Ubuntu et appuyez sur enter, puis appuyez sur epour modifier les options de démarrage (une seule fois - les modifications apportées ici ne seront pas permanentes, nous ne devrons donc pas nettoyer plus tard).
Vous verrez un écran qui ressemble à ceci 1 :
Déplacez le curseur vers le bas sur la ligne commençant par linux
, puis déplacez le curseur jusqu'à la fin de cette ligne ou n'importe où parmi les paramètres de démarrage du noyau. Assurez-vous que vous êtes sur la bonne ligne et tapez soigneusement ici, car le système peut ne pas démarrer sans être /etc
en place.
Ajoutez le texte init=/bin/bash
et appuyez sur F10pour démarrer.
Cela démarrera le système avec un shell Bash comme init. Vous obtiendrez un shell root et le système de fichiers sera monté en lecture seule. 2 Pour rendre le système de fichiers accessible en écriture, entrez la commande
mount -o remount,rw /
Maintenant, vous pouvez renommer /etc
(vous voudrez peut-être d' ls
abord)
mv /apache2 /etc
Maintenant, vous pouvez redémarrer ou terminer le démarrage normalement à partir d’ici en demandant au shell root de se remplacer par le système init 3 normal :
exec systemd
J'ai testé cette procédure sur Ubuntu MATE 18.04.
1 Merci beaucoup à Kulfy d'avoir obtenu une capture d'écran de bonne qualité de l'éditeur GRUB de VirtualBox!
2 Bien que PATH ne puisse pas être défini à partir des fichiers de configuration /etc
de ce scénario, Bash en définira automatiquement un .
3 Si exec systemd
cela ne fonctionne pas pour vous, exec /sbin/init
devrait faire l'affaire. Si ce n'est pas le cas, readlink -e /sbin/init
devrait donner le chemin d'accès au programme init en cours d'exécution, que vous pouvez ensuite utiliser exec
avec son chemin d'accès complet. Si vous ne pouvez pas procéder de cette façon, entrez simplement reboot
.
/mnt
, renommez, renommez.