User Tools

Site Tools


Sidebar

Sidebar

Accueil

Menu Linux

Menu Windows

Menu Android

I. Partie LINUX

  • Préliminaire

Introduction Linux

LiveCD Linux

  • Installation

LiveCD Ubuntu

Installation Ubuntu

Ubuntu sur Netbook

Installation sur support USB

Installation sans CD-ROM

Installations, mise à jour

Réinstallation/Migration version Ubuntu

Applications Ubuntu

Documentation-Aides

* Aller plus loin

Arborescence Ubuntu

Recherche Ubuntu

Edition Linux

Terminal & Super Utilisateur

Commandes Linux (1)

Commandes Linux (2)

Utilisateurs, groupes, droits

Matériel

Imprimante Linux

Compression-Archivage

Déplacer le /home

Bureau-Gnome

  • Réseau

Connexion Linux

Réseau Linux

Paramétrage routeur

Analyse Réseau - Gestion parc

Partages,Transferts

Disque-Réseau

Contrôle à distance

Serveur Linux

OpenVPN

Sécurité Linux

Migration Linux Petite entreprise

  • Utiliser des applications Windows

Virtualisation

Wine: Applications Windows sous Linux

  • Téléphonie VOIP

Asterisk, TrixBox, Elastix

Routeur double Wan

  • Maintenance, dépannage

Sauvegarde Linux

Synchronisation Linux

Dépannage Ubuntu

Antivirus Linux

Grub

Grub2

Partitions Linux

Fichier fstab

Récupération de fichiers, partitions

  • BDD

BDD Linux

Access/MySQL

Talend Open Studio

II. Partie commune

Présentation

  • Internet

Navigation Internet

Thunderbird (1)

Thunderbird (2)

Thunderbird (3)

Courrier GMail

  • Création de site

Joomla

  • Bureautique

Open Office

  • Graphisme

Picasa

  • Photo

Photo: Théorie

Photo: Pratique

Diaporama, site photos

Retouche: Gimp

  • Multimedia

YouTube

Musique

  • BDD

Access/MySQL

III. Partie WINDOWS

  • Préliminaire

Logiciels Windows

Utilitaires Windows

  • Internet

Connexion Internet

Export OutlookExpress

Changement d'ordinateur

Agenda

Blog: Dotclear

Exploration/Dépannage Internet

  • Création de site

Joomla

Dreamweaver

  • Réseau

Partage Connexion

Partage Fichiers

Partage Imprimante

Transfert Fichiers

  • Dépannage

Prévention-dépannage Windows

  • Divers

Anti-virus

Gravure CD

Installation périphérique Windows

Partitions Windows

Organisation disque dur

Sauvegarde-Synchronisation Windows

Putty

Contrôle à distance

Bash Shell

IV. Partie Android

Sidebar

Smartphone

Messages pour le Web

grub2

Grub2

Avec Ubuntu 9.10, un nouveau Grub apparaît, le Grub2 qui correspond au paquet grub-pc. La configuration ne se fait plus par /boot/grub/menu.lst, elle est élaborée maintenant par /etc/default/grub et /boot/grub/grub.cfg.

Attention. La convention de numérotation des partitions dans grub-pc a changé: celle des disques durs physiques démarre toujours de 0, mais celle des partitions commence à 1, à la différence de grub-legacy (l'ancien grub). Par exemple :
  • /dev/sda1 sera nommé hd(0,1) par grub-pc au lieu de hd(0,0) dans grub-legacy.
  • /dev/sdc5 sera nommé hd(2,5) par grub-pc au lieu de hd(0,4) dans grub-legacy.

Configuration

La configuration de Grub2 dépend de plusieurs fichiers.

  • Fichier-mère utilisé par le système
    • /boot/grub/grub.cfg, créé par update-grub, il ne doit donc pas être modifié à la main. Il est lu au démarrage comme l'était menu.lst pour grub-legacy.
  • Fichiers utilisés pour la configuration automatique:
    • /boot/grub/device.map, donnant les disques sur lesquels update-grub cherchera une configuration d'amorçage (le disque principal et la clé USB ayant servi à l'installation d'Ubuntu par exemple)
    • /etc/default/grub gèrant les valeurs par défaut de grub (délai de lancement, résolution d'affichage, splash/quiet, options par défaut des nouveaux noyaux,..)
    • les fichiers du dossier /etc/grub.d/ qui sont des scripts dont les contenus se retrouvent dans l'ordre de numérotation dans le fichier /boot/grub/grub.cfg et qui sont éxécutés dans l'ordre croissant:
      • 00_header contient le script gérant les options définies dans /etc/default/grub
      • 05_debian_theme gère les couleurs du menu et le fond d'écran éventuel
      • 10_linux contient le script de lancement du système sur lequel on est
      • 20_memtest86+
      • 30_os-prober contient le script de recherche des autres systèmes installés
      • 40_custom configuration personnelle. C'est l'endroit où paramétrer à la main le lancement des systèmes d'exploitation.

Configuration automatique

la commande update-grub permet la mise à jour automatique du Grub.

sudo update-grub

Elle lit le contenu de ces fichiers un à un :

  1. /boot/grub/device.map
  2. /etc/default/grub
  3. l'ensemble des fichiers contenus à la racine du dossier /etc/grub.d/ pour générer automatiquement un nouveau grub.cfg.

Configuration à la main

Attention, prendre au préalable les précautions suivantes :
  • un fichier grub.cfg à jour en lançant un update-grub.
  • créer une sauvegarde
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.copy
sudo cp /etc/default/grub /etc/default/grub.copy 
sudo cp -R /etc/grub.d /etc/grub.d.copy 
  • ne pas chercher à modifier directement grub.cfg (cela ne sert à rien, il est auto-généré)

Avec Grub2, plusieurs fichiers peuvent néammoins être paramétrés:

  • /boot/grub/device.map

On peut avoir besoin d'un update-grub, si un périphérique est indiqué introuvable ou sa taille est impossible à définir. L'erreur est due aux supports déclarés dans /boot/grub/device.map. Deux possibilités:

- 1. éditer le fichier à la main

gksu gedit /boot/grub/device.map 

- 2. lancer la commande grub-mkdevicemap pour détecter les supports de stockage branchés:

sudo grub-mkdevicemap 
  • /etc/default/grub (options par défaut)

Modifier (en mode administrateur) le fichier des valeurs par défaut de grub. Par exemple, sous Gnome, saisir la commande suivante dans un terminal:

gksu gedit /etc/default/grub 
  • GRUB_DEFAULT=0 correspond au menu qui sera sélectionné par défaut (0 = le premier, 1 = le deuxième etc… On peut mettre aussi “saved” pour la dernière entrée enregistrée).
  • GRUB_DEFAULT=“xxxx” Entrée de menu exacte. Exemple: GRUB_DEFAULT=“Ubuntu, avec Linux 2.6.32-22-generic-pae”
  • #GRUB_HIDDEN_TIMEOUT=0, le commentaire “#” sera enlevé si on veut cacher l'affichage du menu (cas où l'on n'a qu'un seul système sur le disque ou lorsque ce grub est lancé via un chainloader). La durée en secondes permettra d'appuyer sur la touche ESCAPE pour voir le menu. Il semblerait que pour certains, ce soit la touche majuscule (shift) qui permette d'obtenir ce menu.
  • GRUB_TIMEOUT=10 est la durée en secondes de l'affichage du menu avant lancement du menu sélectionné par défaut.
  • GRUB_DISTRIBUTOR=“” est la ligne qui définit la syntaxe des titres du menu (voir exemple plus loin)
  • GRUB_CMDLINE_LINUX_DEFAULT=“” et GRUB_CMDLINE_LINUX=“” sont des comportements prédéfinis qui affecteront le lancement des systèmes d'exploitation détectés automatiquement.
A l'issue des changements, ne pas oublier de faire la mise à jour pour regénérer le fichier /boot/grub/grub.cfg:
sudo update-grub

Ajout d'une entrée

Pour rajouter une entrée manuellement dans le menu de démarrage, deux solutions.

Solution 1: Utiliser le fichier 40_custom

Ajouter les 3 lignes impérativement à la fin du fichier existant (exemple ici, Win XP):

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Windows XP" {
        set root=(hd0,1)
        chainloader +1
}

Après génération de grub.cfg, on retrouve alors:

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows XP" {
        set root=(hd0,1)
        chainloader +1
}
### END /etc/grub.d/40_custom ###
Solution 2: créer un autre script

Sachant que son emplacement dans le menu dépendra du préfixe numérique à deux chiffres attribué. Attention, le préfixe minimum est 06.

Par exemple, on veut rajouter une entrée Windows entre les entrées du système GNU/Linux et les entrées memtest. Les premières sont dans un script portant le préfixe 10 et les deuxièmes 20. On peut donc créer un script ayant pour nom 11_windows, par exemple (entre 11 à 19 inclus). Reste à régler la question du contenu. On peut entrer la même chose que dans l'exemple avec le fichier 40_custom, seulement, il faut que ce fichier soit un script et non pas un simple texte. Il suffit donc de s'inspirer du fichier 40_custom. Il faut absolument mettre dans l'en-tête du script, les lignes suivantes :

#!/bin/sh
exec tail -n +3 $0

Après, il reste à ajouter à la main les entrées, c'est à dire ici:

#!/bin/sh
exec tail -n +3 $0
menuentry "Windows 7" {
        set root=(hd0,1)
        chainloader +1
}

Ce qui génère dans le fichier grub.cfg :

### BEGIN /etc/grub.d/11_windows ###
menuentry "Windows 7" {
        set root=(hd0,1)
        chainloader +1
}
### END /etc/grub.d/11_windows ###

Après avoir créé ce script, ne pas oublier pas de lui donner la permission d'exécution avant de générer le fichier grub.cfg:

sudo chmod +x 11_windows
sudo update-grub

Sélection d'un OS par défaut

  • Saisir la commande suivante dans un terminal avec un chiffre à la place du x (0 = le premier, 1 = le deuxième etc…)
  sudo grub-set-default x 
  • Ou alors, éditer le fichier /etc/default/grub et choisir parmi les possibilités suivantes pour la variable GRUB_DEFAULT=
    • un chiffre (0 = le premier, 1 = le deuxième etc…),
    • “saved” (avec les guillemets) pour celui qui a été sélectionné lors du précédent lancement,
    • ou le titre exact d'un menu mis entre guillemets (par exemple : “Microsoft Windows XP (on /dev/sda1)”)
    • finir par
sudo update-grub 

Changer l'ordre du Grub

  • Éditer le fichier /boot/grub/grub.cfg.copy créé en sauvegarde et le fichier /etc/grub.d/40_custom:
gksu gedit /boot/grub/grub.cfg.copy /etc/grub.d/40_custom 

Copier à partir du grub.cfg.copy toutes les lignes entre

### BEGIN /etc/grub.d/30_os-prober ###
et
### END /etc/grub.d/30_os-prober ###
  • Coller le tout dans le fichier 40_custom.
    • Modifier ensuite les paramètres selon le but recherché
    • Enregistrer sous le nom grub.d/07_custom.
  • Après son enregistrement, on le rend exécutable par:
sudo chmod +x /etc/grub.d/07_custom 
  • Pour rendre effective la modification du Grub, lancer ensuite la commande:
sudo update-grub 
  • En finale, le nouveau Grub entrera en vigueur au prochain démarrage.

Nombre de noyaux affichés

Grub2 Erreur 15

Pour réparer le Grub2 suite à erreur 15, suivre la procédure suivante:

  • démarrer en LiveCD
  • lancer les commandes suivantes en terminal:
sudo fdisk -l                      # pour identifier la partition-racine (si besoin, ouvrir Gparted)
sudo mount /dev/sdaX /mnt          # monter la bonne partition (remplacer le X par le bon numéro)
sudo mount --bind /dev /mnt/dev    # lien symbolique du dossier /dev en cours d'utilisation vers le disque monté
sudo mount -t proc /proc /mnt/proc # lien pour que Grub2 trouve /proc/mounts
sudo chroot /mnt                   # mise à la racine du disque monté
apt-get install grub-pc            # installation du logiciel Grub2 (sur le disque chrooté à la racine)
update-grub                        # crée un nouveau fichier de configuration : grub.cfg
grub-install /dev/sda              # installation de grub sur le MBR

Ensuiteà, sortir du disque monté par Ctl+D. Puis, démonter ce disque :

sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt

Redémarrer, la réparation est faite.

StartupManager

StartupManager apporte une solution graphique à ces problèmes. Trés simple d'emploi et compatible grub-legacy et grub2. Pour l'installer, cliquer sur le lien apt://startupmanager. Pour le lancer, faire Système/Administration/Gestionnaire d'Amorçage StartupManager.

StartupManager permet de changer des paramétres suivants: choix de l'OS, délai de lancement et affichage.

Si on change la priorité au démarrage, le menu du grub ne change pas, mais la sélection par défaut se met sur l'OS par défaut.

Réinstallation Grub2

En cas de besoin, on peut avoir à réinstaller le Grub2 (après déplacement de la partition-racine, par exemple).

Méthode 1

Le plus simple est de restaurer les fichiers Grub2 à partir d'un LiveCD.

  • Démarrer en LiveCD (Ubuntu 9.10 minimum)
  • Ouvrir un terminal
  • Repérer les partitions avec l'une des deux commandes :
sudo fdisk -l 
sudo blkid 
  • Si les partitions sont trop nombreuses et difficiles à identifier, utiliser Gparted
  • Monter la partition-racine Ubuntu installée en /mnt
sudo mount /dev/sdXY /mnt  # exemple /dev/sda5 si la racine est en sda5

Cas particulier: pour une partition /boot séparée, changer le point de montage pour /mnt/boot.

  • Lancer la commande grub-install pour réinstaller les fichiers Grub2 sur la racine montée et sur le MBR du disque désigné.
sudo grub-install --root-directory=/mnt/ /dev/sdX  # exemple /dev/sda pour le disque sda
  • Redémarrer en normal.
  • Mettre à jour le menu Grub2 par update-grub :
sudo update-grub
[sudo] password for xxx: 
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-16-generic-pae
Found initrd image: /boot/initrd.img-2.6.31-16-generic-pae
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professionnel on /dev/sda1
done 

Méthode 2.

Copie des fichiers Grub2 à partir de la partition-racine.

  • Démarrer en LiveCD
  • Monter la partition-racine à partir du menu Raccourcis/Poste de travail. On peut s'aider de Gparted pour l'identifier
  • Déterminer le chemin UUID du point de montage grâce à Gparted.
  • Sélectionner la partition, clic droit/Information information, on obtient le point de montage et l'UUID des partitions.

  • Ouvrir un Terminal pour utiliser ensuite la commande “grub-setup -d” pour réinstaller les fichiers Grub2 au bon endroit de la partition-racine et sur le MBR
  • Faire un copier-coller de l'UUID pour entrer la commande suivante:
sudo grub-setup -d /media/XXXX/boot/grub /dev/sda  # où XXXX est l'UUID  et sda est le disque

Exemple:

sudo grub-setup -d /media/bcfb36ef-5ec4-4108-9c3f-ef15cc4f1039/boot/grub /dev/sda

En cas de message “error: Cannot open /boot/grub/device.map”, ajouter l'option -m avec le chemin du device.map

sudo grub-setup -d /media/XXXXX/boot/grub -m /media/XXXXX/boot/grub/device.map /dev/sda 

Exemple:

sudo grub-setup -d /media/bcfb36ef-5ec4-4108-9c3f-ef15cc4f1039/boot/grub -m /media/bcfb36ef-5ec4-4108-9c3f-ef15cc4f1039/boot/grub/device.map /dev/sda 
  • Redémarrer
  • Mettre à jour le menu Grub2 par sudo update-grub

Méthode 3

S'il n'y a plus Grub2 suite à l'installation d'un autre système d'exploitation, suivre les étapes ci-après :

  • Démarrer en LiveCD (Ubuntu 9.10 minimum)
  • Monter la partition qui contenait GRUB 2 auparavant. Cette partition est généralement la même qui contient tout le système Ubuntu. Dans une session d'essai d'Ubuntu, aller dans le menu Raccourcis et sélectionner la partition à monter dans la liste des partitions existantes.
sudo mount /dev/sdXY /mnt  # exemple /dev/sda5 si la racine est en sda5
  • Aller dans Système/Administration/Utilitaire de disques, noter les identifiants suivants:
    • noter l'identifiant de périphérique du disque dur primaire - « Périphérique », en haut à droite - (généralement /dev/sda),
    • après avoir cliqué sur la partition Linux principale, qui contenait GRUB 2 et qui a été montée, noter le nom de montage de la partition - « Point de montage », en bas à droite - (par exemple /mnt/sda6).

  • Dans un terminal, lancer la commande suivante en remplaçant “/mnt/” et /dev/sda par le point de montage et le périphérique notés précédemment :
sudo grub-install --root-directory=/mnt/ /dev/sda 
  • Redémarrer en normal

Vérification

Pour vérifier le fichier grub.cfg tel qu'il existe suite à des modifications diverses, sans redémarrer Ubuntu, entrer la commande

sudo grub-mkconfig 

OS présents

Pour rechercher les autres OS présents sur la machine et les rajouter au GRUB automatiquement, on peut utiliser le logiciel OS-prober.

Pour cela,

  • cliquer ici: apt://os-prober pour l'installer
  • entrer les commandes suivantes:
sudo os-prober
[sudo] password for guy: 
/dev/sda1:Microsoft Windows XP Professionnel:Windows:chain
/dev/sda2:Microsoft Windows XP Professionnel:Windows1:chain
/dev/sda6:Ubuntu 9.04 (9.04):Ubuntu:linux
/dev/sda7:Ubuntu 9.10 (9.10):Ubuntu1:linux
/dev/sda8:Ubuntu 9.10 (9.10):Ubuntu2:linux
sudo update-grub 

Mode Rescue

On peut, en cas de problème Grub, se retrouver en mode Rescue. On le reconnaît avec le prompt suivant:

grub rescue>  
Le clavier se trouve alors en QWERTY

Les commandes supplémentaires suivantes sont disponibles:

Commande Action
dump Nettoyage de la mémoire
exit Sortie de GRUB 2
normal Retour au mode normal “grub>” si possible

Les commandes suivantes sont disponibles en mode rescue du grub:
boot, cat, chainloader, dump, exit, freebsd, freebsd_loadenv, freebsd_module, help, initrd, insmod, linux, lsmod, multiboot, normal, rmmod, set, unset

Au prompt grub rescue, suivre les indications suivantes pour essayer de redémarrer sur le dernier kernel.

Commande/Réponse Action
ls Affiche les disques et partitions connues. L'utilisateur doit déterminer où est installé le système pour la suite. Mieux vaut l'avoir noté auparavant
set root=(hdX,Y) où X est le n° du disque (commençant à 0) et Y la partition (commençant à 1). Exemple: (hd3,5) correspond à sdc5)
set Normalement, récupère tout seul la désignation de la racine, sinon, entrer la commande suivante:
set prefix=(hdX,Y)/boot/grub En cas d'erreur, des erreurs “no such disk” ou “not found” apparaitront plus tard
ls /boot Inspecter le contenu. On y trouve les différents kernels, images initrd et répertoire grub. Si ce n'est pas le cas, utiliser la commande ls pour chercher sur le disque. Si nécessaire, désigner un autre disque comme racine
insmod /boot/grub/linux.mod Charge le module Linux. Sans lui, le message “Unknown command linux” apparaîtra au chargement du kernel
linux /vmlinuz root=/dev/sdXY ro Charge le noyau kernel. Mettre les bonnes désignations pour mettre “X” and “Y”. Il y aura ensuite une annonce du chargement correct
initrd /initrd.img Charge l'image initrd. Un message peut apparaître dans le terminal
boot Charge l'image initrd. Un message peut apparaître dans le terminal

Après un redémarrage réussi, il faut,

  • soit, réinstaller Grub2 (sudo grub-install /dev/sdX)
  • soit, éditer les fichiers de configurations Grub2 et y faire les changements nécessaires.
Si le grub rescue ne marche pas, faire une réinstallation Gub2 (Méthode 1 ou 2)

Boot Info Script

On peut parfois avoir besoin de plus d'informations sur les partitions ou Grub, installer Boot Info Script à télécharger sur http://bootinfoscript.sourceforge.net/. Lancer le script, les résultats sont dans le fichier /home/<login>/Téléchargements/RESULTStxt.

              Boot Info Script 0.55    dated February 15th, 2010                    

============================= Boot Info Summary: ==============================

 => Grub 2 is installed in the MBR of /dev/sda and looks on the same drive in 
    partition #7 for /boot/grub.
 => Grub 2 is installed in the MBR of /dev/sdb and looks on the same drive in 
    partition #5 for /boot/grub.

sda1: _________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Grub 2
    Boot sector info:  Grub 2 is installed in the boot sector of sda1 and 
                       looks at sector 202082064 of the same hard drive for 
                       core.img, but core.img can not be found at this 
                       location. No errors found in the Boot Parameter Block.
    Operating System:  Windows XP
    Boot files/dirs:   /boot.ini /ntldr /NTDETECT.COM

sda2: _________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info:  

sda3: _________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  -
    Boot sector info:  

...

Suppression Grub2

Grub2, arrivé avec Ubuntu 9.10, totalement différent de la version précèdente, peut surprendre, il nécessite de s'y adapter (voir § Configuration plus haut). Si on préfère le supprimer pour prendre un peu de recul, il faut désinstaller les 2 paquets grub2 et grub-pc en suivant la procèdure suivante traduite de l'Anglais (voir plus bas Documentation).

Pour retourner à l'ancien Grub, dit GRUB-legacy (0.97), il faut donc supprimer le GRUB 2 et installer GRUB.

La ligne de commande est recommandée, bien que cette procèdure pourrait être réalisée avec Synaptic. Mais de toute façon, certaines opếrations ne peuvent se faire qu'en ligne de commande.

  • Ouvrir un terminal: Applications/Accessories/Terminal.
  • Faire une copie des principaux dossiers et fichiers de Grub2 (optionnel).
sudo cp /etc/default/grub /etc/default/grub.old
sudo cp -R /etc/grub.d /etc/grub.d.old
sudo cp -R /boot/grub /boot/grub.old
  • Supprimer Grub 2
sudo apt-get purge grub2 grub-pc
Le système devient unbootable provisoirement jusqu'à remplacement par un autre grub
  • Bien que les paquets soient supprimés, il restera encore nombre de fichiers dans /boot/grub.
  • Installer le Grub.
sudo apt-get install grub  

Après l'installation du paquet grub, l'utilisateur doit encore créer le menu.lst et stage1/stage2 avec les deux commandes suivantes:

sudo update-grub  # qui génère menu.lst. Taper "Yes" en réponse à la demande
sudo grub-install /dev/sdX  # choisir le bon disque (sda, sdb, etc), celui où il y a Ubuntu 

Ce qui crée les fichiers stage1 et stage2 dans /boot/grub et écrit sur le MBR.

  • Redémarrer.

Documentation

grub2.txt · Last modified: 2020/06/24 15:19 by guy