LFCS Comment configurer et dépanner Grand Unified Bootloader (GRUB) - Partie 13

LFCS Comment configurer et dépanner Grand Unified Bootloader (GRUB) - Partie 13

En raison des changements récents dans les objectifs de l'examen de certification LFCS efficaces à partir de 2 février 2016, Nous ajoutons les sujets nécessaires à la série LFCS publiée ici. Pour vous préparer à cet examen, vous êtes également encouragé à suivre la série LFCE.

LFCS: Configurer et dépanner le chargeur de démarrage de grub - partie 13

Dans cet article, nous vous présenterons Grub et expliquerons pourquoi un chargeur de démarrage est nécessaire et comment il ajoute une polyvalence au système.

Le processus de démarrage Linux à partir du moment où vous appuyez sur le bouton d'alimentation de votre ordinateur jusqu'à ce que vous obteniez un système entièrement fonctionnel suit cette séquence de haut niveau:

  1. 1. Un processus appelé POSTE (Auto-test de puissance) effectue une vérification globale des composants matériels de votre ordinateur.
  2. 2. Quand POSTE Terminé, il passe le contrôle sur le chargeur de démarrage, qui à son tour charge le noyau Linux en mémoire (avec initramfs) et l'exécute. Le chargeur de démarrage le plus utilisé dans Linux est le Grand chargeur de démarrage unifié, ou VER pour faire court.
  3. 3. Le noyau vérifie et accède au matériel, puis exécute le processus initial (surtout connu sous son nom générique "init”) Qui à son tour complète le démarrage du système en démarrant les services.

Dans Partie 7 De cette série («Sysvinit, UpStart et Systemd») Nous avons introduit les systèmes de gestion des services et les outils utilisés par les distributions Linux modernes. Vous voudrez peut-être revoir cet article avant de poursuivre.

Présentation du chargeur de démarrage Grub

Deux majeures VER versions (v1 appelé quelques fois Héritage et v2) peut être trouvé dans les systèmes modernes, bien que la plupart des distributions utilisent v2 Par défaut dans leurs dernières versions. Seul Red Hat Enterprise Linux 6 Et ses dérivés utilisent toujours v1 aujourd'hui.

Ainsi, nous nous concentrerons principalement sur les caractéristiques de v2 dans ce guide.

Quel que soit le VER Version, un chargeur de démarrage permet à l'utilisateur de:

  1. 1). Modifiez la façon dont le système se comporte en spécifiant différents noyaux à utiliser,
  2. 2). Choisissez entre des systèmes d'exploitation alternatifs pour démarrer, et
  3. 3). Ajouter ou modifier les strophes de configuration pour modifier les options de démarrage, entre autres choses.

Aujourd'hui, VER est maintenu par le GNOU projet et est bien documenté sur leur site Web. Vous êtes encouragé à utiliser la documentation officielle du GNU tout en passant par ce guide.

Lorsque le système botte, vous êtes présenté avec ce qui suit VER écran dans la console principale. Initialement, vous êtes invité à choisir entre des noyaux alternatifs (par défaut, le système démarrera à l'aide du dernier noyau) et est autorisé à entrer un VER ligne de commande (avec c) ou modifier les options de démarrage (en appuyant sur le e clé).

Écran de démarrage

L'une des raisons pour lesquelles vous envisagez de démarrer avec un noyau plus ancien est un périphérique matériel qui travaillait correctement et a commencé «agir«Après une mise à niveau (reportez-vous à ce lien dans le Askubuntu Forums pour un exemple).

Le Grub v2 La configuration est lue sur le démarrage depuis / boot / grub / grub.CFG ou / boot / grub2 / grub.CFG, alors que / boot / grub / grub.confli ou / démarrage / grub / menu.qui sont utilisés dans v1. Ces fichiers ne doivent pas être modifiés à la main, mais sont modifiés en fonction du contenu de / etc / par défaut / grub et les fichiers trouvés à l'intérieur / etc / grub.d.

Dans un Centos 7, Voici le fichier de configuration créé lorsque le système est installé pour la première fois:

Grub_timeout = 5 grub_distributor = "$ (sed 's, release .* $ ,, g '/ etc / système système) "grub_default = enregistré grub_disable_submenu = true grub_terminal_output =" console "grub_cmdline_linux =" vConsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2 / swap crashkernel = auto vConsole.Font = LatarCyrheb-Sun16 Rd.LVM.lv = centos_centos7-2 / root rhgb calme "grub_disable_recovery =" true " 

En plus de la documentation en ligne, vous pouvez également trouver le manuel GNU Grub en utilisant les informations comme suit:

# info grub 

Si vous êtes spécifiquement intéressé par les options disponibles pour / etc / par défaut / grub, Vous pouvez invoquer directement la section de configuration:

# info -f grub -n 'configuration simple' 

En utilisant la commande ci-dessus, vous découvrirez que Grub_timeout Définit le temps entre le moment où l'écran initial apparaît et le démarrage automatique du système commence à moins d'être interrompu par l'utilisateur. Lorsque cette variable est définie sur -1, Le démarrage ne sera pas démarré avant que l'utilisateur ne fasse une sélection.

Lorsque plusieurs systèmes d'exploitation ou noyaux sont installés dans la même machine, Grub_default nécessite une valeur entière qui indique quelle entrée OS ou le noyau dans l'écran initial de Grub doit être sélectionnée pour démarrer par défaut. La liste des entrées peut être affichée non seulement dans l'écran Splash illustré ci-dessus, mais également en utilisant la commande suivante:

Dans Centos et OpenSuse:

# awk -f \ "$ 1 ==" menuEntry "print $ 2 '/ boot / grub2 / grub.CFG 

Dans Ubuntu:

# awk -f \ "$ 1 ==" menuEntry "print $ 2 '/ boot / grub / grub.CFG 

Dans l'exemple indiqué dans l'image ci-dessous, si nous souhaitons démarrer avec la version du noyau 3.dix.0-123.EL7.x86_64 (4e entrée), nous devons définir Grub_default pour 3 (Les entrées sont numérotées en interne à partir de zéro) comme suit:

Grub_default = 3 
Système de démarrage avec ancienne version du noyau

Une dernière variable de configuration de GRUB qui est d'un intérêt particulier est GRUB_CMDLINE_LINUX, qui est utilisé pour transmettre des options au noyau. Les options qui peuvent être transmises par Grub au noyau sont bien documentées dans le fichier des paramètres du noyau et dans Man 7 BootParam.

Options actuelles dans mon Centos 7 le serveur est:

Grub_cmdline_linux = "vConsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2 / swap crashkernel = auto vConsole.Font = LatarCyrheb-Sun16 Rd.LVM.lv = centos_centos7-2 / root rhgb calme " 

Pourquoi voudriez-vous modifier les paramètres du noyau par défaut ou passer des options supplémentaires? En termes simples, il peut y avoir des moments où vous devez dire au noyau certains paramètres matériels qu'il peut ne pas être en mesure de déterminer par lui-même, ou de remplacer les valeurs qu'elle détecterait.

Cela m'est arrivé il n'y a pas si longtemps quand j'ai essayé Vector Linux, un dérivé de Lâche, Sur mon ordinateur portable de 10 ans. Après l'installation, il n'a pas détecté les bons paramètres pour ma carte vidéo, j'ai donc dû modifier les options du noyau transmises par grub afin de le faire fonctionner.

Un autre exemple est lorsque vous devez amener le système en mode à utilisateur unique pour effectuer des tâches de maintenance. Vous pouvez le faire en ajoutant le mot single à GRUB_CMDLINE_LINUX et redémarrer:

Grub_cmdline_linux = "vConsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2 / swap crashkernel = auto vConsole.Font = LatarCyrheb-Sun16 Rd.LVM.lv = centos_centos7-2 / root rhgb calme seul" 

Après édition / etc / defalt / grub, Vous aurez besoin de courir mine de mise à jour (Ubuntu) ou grub2-mkconfig -o / boot / grub2 / grub.CFG (Centos et ouverte) ensuite pour mettre à jour ver.CFG (sinon, les modifications seront perdues au démarrage).

Cette commande traitera les fichiers de configuration de démarrage mentionnés précédemment pour mettre à jour ver.CFG. Cette méthode garantit que les modifications sont permanentes, tandis que les options passées par Grub au moment du démarrage ne dureront que pendant la session en cours.

Correction des problèmes de grub Linux

Si vous installez un deuxième système d'exploitation ou si votre fichier de configuration de Grub est corrompu en raison d'une erreur humaine, il existe des moyens de récupérer votre système sur pied et de pouvoir démarrer.

Dans l'écran initial, appuyez sur c Pour obtenir une ligne de commande Grub (n'oubliez pas que vous pouvez également appuyer sur e Pour modifier les options de démarrage par défaut) et utiliser l'aide pour apporter les commandes disponibles dans l'invite de grub:

Correction des problèmes de configuration de Grub dans Linux

Nous nous concentrerons sur LS, qui répertoriera les appareils et systèmes de fichiers installés, et nous examinerons ce qu'il trouve. Dans l'image ci-dessous, nous pouvons voir qu'il y a 4 disques durs (HD0 à travers HD3).

Seul HD0 semble avoir été partitionné (comme en témoigne MSDOS1 et MSDOS2, où 1 et 2 Les numéros de partition sont-ils et MSDOS est le schéma de partitionnement).

Examinons maintenant la première partition sur HD0 (MSDOS1) pour voir si nous pouvons y trouver de la planche. Cette approche nous permettra de démarrer Linux et utilisent d'autres outils de haut niveau pour réparer le fichier de configuration ou réinstaller complètement Grub si cela est nécessaire:

# LS (HD0, MSDOS1) / 

Comme nous pouvons le voir dans la zone mise en évidence, nous avons trouvé le grub2 Répertoire dans cette partition:

Trouver la configuration de Grub

Une fois que nous sommes sûrs que Grub réside dans (HD0, MSDOS1), Disons à Grub où trouver son fichier de configuration, puis lui demander de tenter de lancer son menu:

Définir Prefix = (HD0, MSDOS1) / GRUB2 SET ROOT = (HD0, MSDOS1) INSMOD NORMAL NORMAL 
Trouver et lancer le menu de grub

Ensuite, dans le menu Grub, choisissez une entrée et appuyez sur Entrer Pour démarrer en utilisant. Une fois le système démarré, vous pouvez émettre le grub2-install / dev / sdx commande (changer sdx avec l'appareil sur lequel vous souhaitez installer Grub). Les informations de démarrage seront ensuite mises à jour et tous les fichiers connexes seront restaurés.

# grub2-install / dev / sdx 

D'autres scénarios plus complexes sont documentés, ainsi que leurs correctifs suggérés, dans le guide de dépannage d'Ubuntu Grub2. Les concepts ont expliqué qu'il y a également une valeur valable pour d'autres distributions.

Résumé

Dans cet article, nous vous avons présenté Grub, indiqué où vous pouvez trouver la documentation en ligne et hors ligne, et expliqué comment aborder un scénario où un système a cessé de démarrer correctement en raison d'un problème lié au chargeur de démarrage.

Heureusement, Grub est l'un des outils qui est le mieux documenté et vous pouvez facilement trouver de l'aide dans les documents installés ou en ligne en utilisant les ressources que nous avons partagées dans cet article.

Avez-vous des questions ou des commentaires? N'hésitez pas à nous faire savoir en utilisant le formulaire de commentaire ci-dessous. Nous avons hâte d'avoir de tes nouvelles!

Devenir un administrateur système certifié Linux