====== GRUB 2 : commandes ====== * Objet : GRUB 2, le chargeur d'amorçage version 2. * Niveau requis : {{tag>débutant avisé}} * Commentaires : //depuis Squeeze, GRUB 2 a remplacé GRUB Legacy. // * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) * Suivi : {{tag>à-tester}} * Créé par [[user>smolski]] le 23/03/2013 * Mise à jour par **...** le ... * Testé par **...** le ... * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=130659#p130659 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Préalable ===== Les commandes de ce tuto sont à faire en tant que [[:doc:systeme:superutilisateur | root]] sauf indication contraire. ===== grub-install ===== Installation de grub2 grub-install --recheck "(hd0)" update-grub * “**hd0**” désigne le premier disque, * ”--**recheck**” est facultative, elle vérifie la liste des périphériques et * affichera la table sur la console. == Nota : == Si votre système comporte un lecteur de disquette, et que celui-ci est listé dans le fichier **/boot/grub/device.map**, il vaut mieux ajouter l'option : "--no-floppy” à la commande d'installation pour éviter que le lecteur de disquette ne se retrouve positionné comme cible pour la racine (/). \\ On peut utiliser la notation ''/dev/sda'' (par exemple) au lieu de ''(hd0)''. ===== grub-mkconfig ===== La commande **grub-mkconfig** met à jour grub2((La commande **update-grub** fonctionne toujours avec grub2)). C'est la commande dont l'utilisation est la plus courante. Cette commande va : - //sourcer// tous les scripts dans **/etc/grub.d**, - eux même renvoyant les variables de **/etc/default/grub**, - et générer ou mettre à jour le fichier **grub.cfg**. Il faut __exécuter cette commande__ après chaque modification d'un script ou d'une variable de configuration de grub2. ==== Syntaxe : ==== La syntaxe est la suivante: grub-mkconfig -o /boot/grub/grub.cfg **ATTENTION !** \\ Bien ajouter l'option : -o((--output)) \\ * Sans cette option : Le résultat est écrit uniquement sur stdout((la [[:doc:systeme:console]])) et sera effacé dès la prochaine mise à jour de grub2. * Avec cette option : Le résultat __est bien écrit__ dans le fichier **grub.cfg**. Il reste intact jusquà une prochaine modification volontaire de votre part. == Nota : == **grub-mkconfig** est également invoqué //automatiquement// à l'installation d'un nouveau noyau. ===== grub-setup ===== Sert à créer une image de démarrage qui se lancera depuis la partition indiquée (de la forme **(hd0,1)**. Parmi les options, il y a : \\ --root-device= /une partition root/ --directory= /un autre répertoire/ que : /boot/grub pour implanter l'image. --device-map= /un fichier device.map/ différent de celui du système. Par exemple pour démarrer depuis **un système sur clé usb**. ===== grub-mkdevicemap ===== Cette commande ne s'utilise pas en usage normal. Cette commande crée un fichier /boot/grub/device.map À utiliser après : * un ajout/retrait de disque, * une modification dans l'agencement des disques dans le bios… ===== grub-mkrescue ===== Sert à créer un disque de démarrage qui peut servir de disque de secours. \\ Par défaut c'est un **cdrom** qui est proposé à être gravé. * On peut également créer une disquette avec l'option :--image-type=floppy * On peut aussi indiquer des modules à charger avec : --modules= * Et encore préciser le type d'émulation afin de l'adapter au media : **cdrom** (par défaut) ou **floppy**. **Exemple floppy :** grub-mkrescue --image-type=floppy --emulation=floppy --modules=lvm test.img L'image résultante pourra être copiée sur une disquette. ===== grub-probe ===== Les options spécifiques au système de fichier devraient être correctement détectées par grub2 grâce à la commande **grub-probe**. **Exemple UUID** : Taper : grub-probe -d /dev/sda1 --target=fs_uuid Puis en terminal user : ls -l /dev/disk/by-uuid/ | grep sda1 Et comparer les résultats pour voir si c'est le bon **UUID** qui est détecté. **Exemple raid** : Contrôlons que grub2 détecte correctement notre volume **raid** ///dev/md0//, sur lequel est installé la racine du système, et chargera les modules nécessaires : grub-probe -d /dev/md0 -tabstraction Ici on utilise la forme courte de **--target**((qui est **-t**)) pour vérifier la reconnaissance de la couche d'abstraction du système de fichier (le raid). \\ La réponse devrait être : raid mdraid Ce qui, dans ce cas, correspond aux modules à inclure dans le **core.img** à charger par grub2. \\ Les paramètres possibles sont : * fs * fs_uuid * drive * device * partmap * abstraction On peut indiquer à la commande ''grub-probe'' : **Exemple device.map** : - un fichier **device.map** spécifique à //un chemin vers les fichiers de configuration//. Par défaut c'est :/boot/grub/device.map - ou bien, à la place d'utiliser l'option **-d **((//ou//**--device)**)) / //Un chemin vers un volume// /. **Exemple tabstraction** : grub-probe /boot/grub/ -tabstraction ==== Nota : ==== Pour une liste //complète// des modules disponibles : - vous pouvez regarder dans /boot/grub - ou bien taper en terminal user :ls -l /boot/grub/ | grep .mod | less