web-dev-qa-db-fra.com

Ubuntu ne démarre pas: run-init: / sbin / init: autorisation refusée et / bin / sh: 0: impossible d'ouvrir le splash

Hier soir, tout allait bien avec mon Ubuntu 16.04. Aujourd'hui, j'ai essayé de l'allumer et il ne veut tout simplement pas démarrer, en lançant ces erreurs:

run-init: /sbin/init: Permission denied
Target filesystem doesn't have requested /sbin/init.
run-init: /sbin/init: Permission denied
run-init: /etc/init: Permission denied
run-init: /bin/init: No such file or directory
/bin/sh: 0: Can't open splash
  • Cela ne me donne aucune sorte de coquille
  • J'ai essayé l'élément de récupération dans le menu GRUB, mais la même erreur apparaît.
  • J'ai également essayé d'ajouter systemd.unit=rescue.target en tant que paramètre du noyau; cela n'a pas fonctionné non plus.

Comment puis-je résoudre ce problème?

1
Ravexina

Comme nous pouvons le constater dans les messages que vous recevez, la cause la plus probable est un problème d’autorisation. De plus, il semble que /sbin/init et /etc/init existent, mais /bin/init n'existe pas.


Débarrassez-vous de/bin/sh: 0: Impossible d'ouvrir le splash

Nous devrions d’abord faire appel à un Shell pour résoudre le problème. Pour vous débarrasser de /bin/sh: 0: Can't open splash et obtenir un shell: Si vous n’avez qu’une Ubuntu installée (GRUB n’apparaîtra pas par défaut), pendant le démarrage du système, maintenez la touche enfoncée. shift touche pour faire apparaître GRUB. Ensuite, dans le menu par défaut, appuyez sur E.

Vous trouverez une ligne commençant par Linux. Sur cette ligne, supprimez le paramètre splash puis appuyez sur Ctrl+x, maintenant, vous serez déposé dans un shell sh. Exécutez /bin/bash pour obtenir un shell bash si vous le souhaitez. Je préfère bash à sh parce qu'il a une fonctionnalité de complétion automatique.

Sinon, au lieu de supprimer le paramètre splash, vous pouvez ajouter init=/bin/bash à la fin de cette ligne, puis appuyer sur Ctrl+x; cette fois, nous allons nous retrouver dans bash au lieu de sh.


Résoudre le run-init:/sbin/init: autorisation refusée

Courir:

ls -lH /sbin/init

Il devrait produire quelque chose comme:

-rw-r--r-- 1 root root 1577000 Feb 15 12:20 /sbin/init

Comme nous pouvons le voir, les autorisations sont gâchées. De nos jours, dans presque tous les systèmes, /sbin/init est un lien vers systemd, juste pour vous assurer que:

# ls -l /sbin/init
-rw-r--r-- 1 root root 1577000 Feb 15 12:20 /sbin/init -> /lib/systemd/systemd

Bien sûr, votre système de fichiers / (racine) est monté dans l’état ro (lecture seule) et permet de le modifier en rw (lecture et écriture):

# mount -o remount,rw /

Puis corrigez les permissions:

# chmod u=rwx,g=rx,o=rx /lib/systemd/systemd

Redémarrez le système.

1
Ravexina