Démarrez Ubuntu 16.04 en ligne de commande / ne démarrez pas l'interface graphique

30

Je veux que mon Ubuntu 16.04 ne démarre pas l'interface graphique au démarrage et affiche la console de ligne de commande uniquement. J'ai essayé les recettes suivantes mais aucune d'entre elles n'est pour la version 16.04 et donc elles ne semblent pas fonctionner - l'interface graphique démarre quand même:

  1. GRUB_CMDLINE_LINUX = "texte"

  2. Modification du niveau d'exécution par défaut

Idéalement, je veux également pouvoir démarrer l'interface graphique en tapant une commande.

Greendrake
la source

Réponses:

27

Vous pouvez désactiver le service de gestionnaire d'affichage avec systemctl. Par exemple, si votre gestionnaire d'affichage est lightdmensuite exécuté:

sudo systemctl disable lightdm.service

Cela empêchera le service de démarrer au démarrage.

Modifier :

J'ai oublié de mentionner comment démarrer l'interface graphique. C'est aussi simple que de démarrer le service systemd:

sudo systemctl start lightdm.service
Tristan Vigil
la source
1
Cela a fonctionné pour moi le 16.04 sur une planche de bras. Merci. :)
wojci
Cela n'a pas fonctionné sur mon système. (16.04 LTS sur un PC) Il affiche l'écran initial avec tous les messages [OK] au démarrage des services, puis se fige.
Paul Williams
BTW pour réactiver le service, la commande est en fait sudo systemctl enable lightdm.service
Paul Williams
16

Au lieu d' textutiliser le niveau d'exécution 3:

GRUB_CMDLINE_LINUX="3"

# To remove all the fancy graphics you need to get rid of `splash`.
GRUB_CMDLINE_LINUX_DEFAULT=”quiet”

# Uncomment to disable graphical terminal (grub-pc only) 
GRUB_TERMINAL=console

Ensuite update-grub, redémarrez.


Mais vous n'avez vraiment besoin que GRUB_CMDLINE_LINUX="3". Pour un test rapide, frappez ESCpendant le démarrage pour accéder au menu de démarrage de grub. Ensuite, appuyez sur eet trouvez la ligne qui spécifie le noyau et ajoutez 3à la fin:

 linux /vmlinuz root=/dev/mapper/ubuntu ro 3

Démarrez-le avec CTRL+x


Idéalement, je veux également pouvoir démarrer l'interface graphique en tapant une commande.

Un de ceux-là:

$ sudo telinit 5
$ sudo service lightdm restart
$ sudo systemctl start lightdm

Testé sur Ubuntu 16.04.1 LTS.

UN D
la source
2
Remplacer "texte" par "3", a fonctionné pour moi! Très efficace ! Merci
ThomasGuenet
salut. la réponse est jolie mais difficile à comprendre. Idéalement, j'ai juste besoin d'une commande pour démarrer en mode texte, faire ce dont j'ai besoin et revenir en mode bureau normal.
nyxee
1
@nyxee Ma réponse comporte 3 sections. Suivez la seconde: "Pour un test rapide ..."
AD
J'apprécie les informations contenues dans votre message. au moment où les gens recherchent ces informations, ils sont normalement épuisés par d'autres options. J'ai donné un exemple de réponse simple ci-dessous.
nyxee
1
Bonne réponse. J'ai l'habitude de publier des réponses plus longues avec beaucoup d'informations afin que nous puissions tous en savoir plus. Et je suis également familier avec les options de ligne grub cmd, il est donc plus rapide pour moi d'ajouter 3 et je suis prêt à partir + c'est une solution multi-distribution :)
AD
10
  • En mode GUI, cela vous amènera en mode texte (niveau d'exécution 2,3,4) au redémarrage. Vous pouvez obtenir un écran vide (sans IUG) qui rappelle qu'il n'y a pas d' interface graphique :-), entrez ctrlalt( F1, F2...) à utiliser les niveaux d' exécution.

systemctl set-default multi-user.target

  • Cela vous ramènera au démarrage de l'interface graphique lorsque vous êtes en mode texte.

systemctl set-default graphical.target

nyxee
la source
9

L'un des éléments suivants, dans le cadre de la ligne de commande du noyau (modifiable via GRUB), devrait fonctionner:

  • systemd.unit=multi-user.targetremplacera la valeur par défaut de "graphical.target" - ceci, avec systemctl set-default , est l'équivalent de "niveau d'exécution par défaut";
  • systemd.mask=lightdm.serviceinterdira le démarrage d'un service spécifique jusqu'à ce que systemctl démasque manuellement plus tard;
  • systemd.mask=display-manager.service - même;
  • rescueaka systemd.unit=rescue.targetest l'équivalent de "niveau d'exécution mono-utilisateur"; pas pour une utilisation quotidienne, mais utile pour réparer une interface graphique cassée.
grawity
la source
il serait utile de mentionner comment vous revenez à la normalité à partir de ce «contexte d'urgence».
nyxee
1
Pour le bénéfice des autres, la commande CLI réelle que vous souhaitez est systemctl set-default multi-user.target(et je pense que systemctl set-default graphical.targetcela la réinitialiserait)
Andrea
C'est seulement si vous le voulez semi-permanent et que vous pouvez atteindre un obus en premier lieu. Le message principal n'a rien à voir avec les commandes CLI.
grawity
3

pour ubuntu 18.04, activez l'utilisateur root

 sudo passwd

et alors

systemctl set-default multi-user.target
Mohannd
la source