8 votes

Existe-t-il un moyen d'accéder au mode utilisateur unique sans redémarrage ?

Comme avec l'ancien UNIX, quand vous pouviez simplement envoyer une commande à init et vous regardez un écran de texte noir avec un shell pour votre propre usage ;)

5voto

Oskar Points 1242

En fonction de vos besoins, essayez de modifier la fenêtre de connexion pour demander un nom d'utilisateur, puis entrez >console en tant qu'utilisateur.

Cela a probablement été supprimé dans la 10.10. Vous devrez donc démarrer en mode de récupération, vous connecter par ssh ou utiliser une application de terminal si ce contournement de type init n'est pas ce que vous recherchez.

De plus, ce n'est pas vrai pour le mode utilisateur unique de Root, qui doit se produire au début du processus de démarrage sur les MacOS modernes.

3voto

poige Points 898

Théorie

En un mot, il y a un document en man launchctl moyen d'accomplir un tel passage en mode unique sans redémarrage du noyau. Il peut être déployé, par exemple, à partir d'une fenêtre de Terminal avec une commande SHELL :

sudo launchctl reboot userspace -s

Pratique

El Capitan

Je l'ai testé dans El Capitan sur un Macbook Air 2015 où il a fonctionné. Mais un utilisateur m'a également rapporté que ses tentatives sur El Capitan n'ont pas abouti. La seule différence à laquelle je pense est le Retina qui nécessite un mode graphique différent ou quelque chose comme ça. Je n'ai pas de Macbook avec Retina fonctionnant sur El Capitan, donc pour l'instant je ne peux rien dire de plus à l'appui d'une telle version.

High Sierra, Mojave

Mes essais avec High Sierra ont montré que cette fonctionnalité est ne fonctionne plus (par rapport à El Capitan). Encore une fois, c'est peut-être dû à Retina, ce n'est pas clair. Mojave ne fonctionne pas non plus.


Explication détaillée par un collaborateur¹

Il existe un moyen de revenir au mode mono-utilisateur à partir d'un système MacOS opérationnel sans faire un complet redémarrez en exécutant

sudo launchctl reboot userspace -s

Cela relancera uniquement la partie espace utilisateur de MacOS sans redémarrer le noyau Darwin et équivaut à changer le niveau d'exécution sur les anciens UNIX.

Pour plus de détails, voir man launchctl :

reboot [system|userspace|halt|logout|apps|reroot ]
    Instructs launchd to begin tearing down userspace. With no argu-
    ment given or with the system argument given, launchd will make
    the reboot(2) system call when userspace has been completely
    torn down. With the halt argument given, launchd will make the
    reboot(2) system call when userspace has been completely torn
    down and pass the RB_HALT flag, halting the system and not ini-
    tiating a reboot.

    With the userspace argument given, launchd will re-exec itself
    when userspace has been torn down and bring userspace back up.
    This is useful for rebooting the system quickly under conditions
    where kernel data structures or hardware do not need to be re-
    initialized.

    -s       When rebooting the machine (either a full reboot or
             userspace reboot), brings the subsequent boot session
             up in single-user mode.

Cela signifie qu'au niveau technique sudo launchctl reboot userspace -s n'appelle pas reboot(2) et fournit donc un moyen de passer en mode utilisateur unique sans redémarrage.

Voir aussi l'article de Wikipedia sur Mode utilisateur unique dit :

Dans OS X El Capitan et les versions ultérieures de MacOS, le mode peut être inversé en mode mono-utilisateur avec la commande sudo launchctl reboot userspace -s dans Terminal, et le système peut être entièrement redémarré en mode mono-utilisateur avec la commande sudo launchctl reboot system -s .


1 - Courtoisie de @ nohillside

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X