J'ai donc un bug dans un script dans mon répertoire init.d et ma ligne de fond ... Je ne peux pas démarrer complètement le pi.
Comment puis-je démarrer au niveau d'exécution 1 (mode mono-utilisateur) afin de pouvoir corriger le bogue?
J'ai donc un bug dans un script dans mon répertoire init.d et ma ligne de fond ... Je ne peux pas démarrer complètement le pi.
Comment puis-je démarrer au niveau d'exécution 1 (mode mono-utilisateur) afin de pouvoir corriger le bogue?
Réponses:
Ce n'est pas exactement un moyen d'entrer dans le niveau d'exécution 1, mais il existe une option de démarrage en "mode sans échec" dans le firmware du raspberry Pi. Pour l'activer, vous devez insérer un cavalier entre les broches 5 et 6 sur l'en-tête P1 (GPIO) lors du démarrage.
Si vous faites cela, le chargeur de démarrage ignorera le config.txt
fichier (sauf l' avoid_safe_mode
option qui peut être utilisée pour désactiver cette fonctionnalité) et essaiera de démarrer kernel_emergency.img
(si disponible) au lieu de kernel.img
.
La valeur par défaut kernel_emergency.img
a une initramfs
construction d' urgence spéciale et il démarrera sur ce système d'exploitation basé sur la boîte occupée afin que vous puissiez résoudre les problèmes dans votre système d'exploitation manuellement (ou modifier les paramètres de démarrage du noyau pour exécuter le niveau d'exécution 1 au prochain démarrage). N'oubliez pas d'exécuter sync
avant de mettre hors tension car les commandes reboot
ou shutdown
peuvent ne pas fonctionner.
ajouter à la fin de la ligne
init=/bin/sh
cliquez sur ok, puis sur Esc pour démarrer ... cela vous amènera sur une ligne de commande
# /etc/init.d/mountall.sh
(cela fera quelque chose)
# mount -n -o remount,rw /
(cela va remonter / donc vous pouvez faire des changements)
vous devriez maintenant pouvoir modifier la configuration init.d ......
Plusieurs des autres réponses ici sont maintenant incorrectes:
La méthode de broche de cavalier GPIO a été supprimée du système d'exploitation en amont, donc cela ne fonctionne maintenant que si vous utilisez une image NOOBS
Le passage de Raspbian Jessie à systemd brise le init=/bin/sh
hack. Lorsque vous faites cela, il se plaint,can't access tty: job control turned off
Heureusement, il existe une solution qui fonctionne, qui donne en fait un véritable accès à un seul utilisateur: ajoutez un espace et un 1
à la fin de cmdline.txt
, juste après le rootwait
paramètre.
Le menu de démarrage Hold-Shift n'existe pas avec l'image stock de Raspbian Jessie OS, vous devrez donc le faire en modifiant à /boot/cmdline.txt
partir d'un autre ordinateur si vous n'utilisez pas l'image NOOBS.
Je ne pouvais pas trouver un moyen de forcer le pi à démarrer au niveau d'exécution 1, j'ai donc lancé un disque Fedora en direct que j'avais posé et utilisé le terminal pour supprimer le script en question du répertoire /etc/init.d
Si vous souhaitez accéder et modifier les fichiers de partition Linux de la carte SD à partir de Windows, vous pouvez le faire avec l' un de ces utilitaires .
Démarrez au niveau d'exécution 1
$ sudo init 1
Après avoir démarré au niveau d'exécution 1
$ passwd
REMARQUE: au niveau d'exécution 1, remplacez le fichier /etc/inittab
par id:2:initdefault:
quelque chose de similaire comme:id:1:initdefault: