399 votes

Comment puis-je réparer grub? (Comment récupérer Ubuntu après avoir installé Windows?)

J'ai installé Windows 7, qui a mangé le fichier de démarrage d'Ubuntu. Lorsque je démarre l'ordinateur, il va directement sur Windows, sans me donner la possibilité de démarrer Ubuntu.

Comment puis-je récupérer Ubuntu?

420voto

Scott Severance Points 13166

Lorsque vous installez Windows, Windows suppose qu'il est le seul système d'exploitation (OS) sur la machine, ou du moins il ne tient pas compte de Linux. Il remplace donc GRUB par son propre chargeur de démarrage. Ce que vous devez faire, c'est remplacer le chargeur de démarrage de Windows par GRUB. J'ai vu diverses instructions pour remplacer GRUB en manipulant des commandes GRUB ou quelque chose comme ça, mais pour moi, la manière la plus simple est simplement de chroot dans votre installation et d'exécuter update-grub. Chroot est génial car il vous permet de travailler sur votre installation réelle, au lieu d'essayer de rediriger des choses ici et là. C'est vraiment propre.

Voici comment faire :

  1. Boot depuis le CD live ou la clé USB live, en mode "Essayer Ubuntu".

  2. Déterminez le numéro de partition de votre partition principale. sudo fdisk -l, sudo blkid ou GParted (qui devrait déjà être installé par défaut sur la session live) peuvent vous aider ici. Je vais supposer dans cette réponse que c'est /dev/sda2, mais assurez-vous d'utiliser le bon numéro de partition pour votre système !

    Si votre partition principale est dans un LVM, le périphérique sera plutôt situé dans /dev/mapper/, très probablement, /dev/mapper/{volume}--{os}-root{volume} est le nom du volume LVM et {os} est le système d'exploitation. Exécutez ls /dev/mapper pour obtenir le nom exact.

  3. Montez votre partition :

    sudo mount /dev/sda2 /mnt  #Remplacez sda2 par la partition de l'étape 2

    Si vous avez des partitions /boot, /var ou /usr séparées, répétez les étapes 2 et 3 pour monter ces partitions sur /mnt/boot, /mnt/var et /mnt/usr respectivement. Par exemple,

    sudo mount /dev/sdXW /mnt/boot
    sudo mount /dev/sdXY /mnt/var
    sudo mount /dev/sdXZ /mnt/usr

    en remplaçant sdXW, sdXY et sdXZ par les numéros de partition respectifs.

  4. Montez d'autres éléments nécessaires en liant les montages :

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
  5. Si Ubuntu est installé en mode EFI (consultez cette réponse si vous n'êtes pas sûr), utilisez sudo fdisk -l | grep -i efi ou GParted pour trouver votre partition EFI. Elle aura pour étiquette EFI. Montez cette partition, en remplaçant sdXY par le numéro de partition réel de votre système :

    sudo mount /dev/sdXY /mnt/boot/efi
  6. chroot dans votre installation Ubuntu :

    sudo chroot /mnt
  7. À ce stade, vous êtes dans votre installation, pas dans la session en direct, et vous exécutez en tant que root. Mettez à jour GRUB :

    update-grub

    Si vous obtenez des erreurs ou si l'étape 7 n'a pas résolu votre problème, passez à l'étape 8. (Sinon, c'est facultatif.)

  8. En fonction de votre situation, vous pourriez devoir réinstaller GRUB :

    grub-install /dev/sda
    update-grub # Pour trouver et ajouter Windows au menu GRUB.
  9. Si Ubuntu est installé en mode EFI et que l'UUID de la partition EFI a changé, vous devrez peut-être le mettre à jour dans /etc/fstab. Comparez-le :

    blkid | grep -i efi
    grep -i efi /etc/fstab

    Si l'UUID actuel de la partition EFI (depuis blkid) diffère de celui dans /etc/fstab, mettez à jour /etc/fstab avec l'UUID actuel.

  10. Si tout s'est bien passé sans erreurs, alors vous êtes prêt :

    exit
    sudo reboot
  11. À ce stade, vous devriez pouvoir démarrer normalement.

Si vous ne pouvez pas démarrer normalement et n'avez pas effectué l'étape 8 parce qu'il n'y avait pas de messages d'erreur, réessayez avec l'étape 8.

  • Parfois, donner à GRUB2 la configuration correcte pour vos partitions ne suffit pas, et vous devez effectivement l'installer (ou le réinstaller) sur le Master Boot Record, ce que fait l'étape 8. L'expérience d'aide aux utilisateurs en chat a montré que l'étape 8 est parfois nécessaire même lorsque aucun message d'erreur n'est affiché.

140voto

Web-E Points 20948

L'installateur Windows ne se soucie pas des autres systèmes d'exploitation dans le système. Il écrit donc son propre code sur l'enregistrement d'amorçage principal. Heureusement, la solution est aussi simple.

Vous devez réparer le MBR. Faites ce qui suit

Démarrer en utilisant un live usb/cd d'ubuntu. Utilisez boot-repair pour résoudre le problème.

Après le démarrage avec un live usb/cd, exécutez la commande suivante dans le terminal:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Utilisez Réparation recommandée.

description de l'image

Plus d'informations - https://help.ubuntu.com/community/Boot-Repair

32voto

Stormvirux Points 4366

Boot à partir d'un lecteur USB Ubuntu live ou d'un CD et
Installer Boot-Repair sur Ubuntu en suivant les étapes

Ouvrez le terminal et exécutez les commandes suivantes

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair

Après avoir terminé l'installation, vous pouvez le lancer à partir du menu Système->Administration->Boot-Repair si vous utilisez Gnome, ou chercher "boot-repair" dans le tableau de bord si vous utilisez Unity. Ensuite, suivez les captures d'écran suivantes:

Méthode 1

  • Cliquez sur les options avancées

Écran initial

  • Cochez les options affichées ci-dessous

option avancée

  • Changez l'onglet pour l'onglet Lieu de Grub et cochez les options indiquées dans l'image

entrer la description de l'image ici

Appuyez sur Appliquer et redémarrez le système

Méthode 2

  • Sélectionnez les options de réparation de démarrage recommandées comme le montre la première capture d'écran

Documentation :

14voto

Graham Points 123

Il suffit d'installer easyBCD dans Windows 7 et de faire

Ajouter une nouvelle entrée > Linux/BSD > (sélectionner) Grub2 > (appuyer sur) Ajouter une entrée

Ensuite, vous pourrez choisir Ubuntu dans le chargeur de démarrage de Windows 7 pour accéder à Grub2 (chargeur de démarrage précédent).

14voto

Rod Smith Points 41849

Sur les systèmes basés sur l'EFI (comme la plupart des systèmes livrés avec Windows 8 ou ultérieur), Windows met parfois à jour son chargeur de démarrage ou le réinitialise pour le rendre par défaut. Cela est particulièrement courant lors de la réinstallation du système d'exploitation ou de la réalisation d'une mise à jour majeure du système (par exemple, passer à la dernière version de Windows). Notez que Windows est peu susceptible d'effacer réellement des fichiers GRUB sur un ordinateur basé sur l'EFI. Tout ce dont vous avez besoin pour démarrer Ubuntu est toujours en place ; il est simplement contourné. Dans ces cas, une réinstallation complète de GRUB est excessive et en fait, cela comporte un (petit) risque de créer de nouveaux problèmes.

Ainsi, au lieu de réinstaller GRUB dans ces cas, je recommande de réinitialiser GRUB (ou tout autre chargeur de démarrage ou gestionnaire de démarrage que vous préférez) pour le rendre par défaut. Il existe plusieurs façons de le faire, notamment :

  • EasyUEFI -- La manière la plus simple d'ajuster l'ordre de démarrage, si le système démarre directement sous Windows, est d'utiliser EasyUEFI, qui est un outil GUI tiers gratuit (pour la version de base) pour gérer l'ordre de démarrage EFI. C'est assez intuitif -- localisez l'entrée ubuntu dans la liste des options de démarrage et déplacez-la en tête de liste. La prochaine fois que vous redémarrez, GRUB devrait s'afficher. (Si vous utilisez autre chose que GRUB, vous devrez localiser son entrée.)
  • bcdedit -- L'outil bcdedit de Windows peut être utilisé pour définir GRUB comme ordre de démarrage par défaut. La commande bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi, saisie dans une fenêtre d'invite de commandes Administrateur, fera cela ; cependant, si votre ordinateur démarre avec Secure Boot activé, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi sera requis à la place. En fait, cette dernière commande fonctionnera généralement même si Secure Boot n'est pas utilisé, donc je recommanderais d'utiliser cette commande en premier. Notez qu'il existe un outil de shell Windows plus avancé qui nécessite une syntaxe légèrement différente de celle que j'ai présentée, mais je ne me souviens pas des détails.
  • Démarrage unique vers Ubuntu -- La plupart des EFI fournissent un gestionnaire de démarrage intégré, accessible en appuyant sur une touche de fonction, Esc ou Entrée tôt dans le processus de démarrage du système. Il est probable que l'entrée ubuntu pour démarrer Ubuntu apparaîtra dans ce menu du gestionnaire de démarrage, vous permettant de démarrer Ubuntu. Alternativement, vous pourriez démarrer avec un support d'urgence Ubuntu, comme l'installateur démarré en mode "essayer avant d'installer". De toute façon, vous pourrez ensuite utiliser efibootmgr pour ajuster l'ordre de démarrage :
  1. Tapez sudo efibootmgr pour voir les entrées de démarrage.
  2. Notez la ligne BootOrder actuelle.
  3. Localisez l'entrée pour ubuntu et notez son numéro Boot####.
  4. Tapez sudo efibootmgr -o xxxx[,yyyy,zzzz,....] pour modifier l'ordre de démarrage, en faisant de xxxx le numéro pour Ubuntu. Ce qui vient après n'est probablement pas très important, bien que j'ai remarqué que Windows semble susceptible de se réajouter en tête de l'ordre de démarrage s'il n'est pas dans la liste. Ainsi, vous devriez probablement vous assurer que Windows est dans la liste, et il peut être plus sûr de réorganiser la liste pour que toutes les entrées originales soient là, juste avec l'entrée ubuntu déplacée en tête de liste.
  • Utilitaire de configuration du firmware -- Certains utilitaires de configuration des EFI vous permettent d'ajuster l'ordre de démarrage. Les détails varient grandement d'un EFI à un autre, donc je ne rentrerai pas dans les spécificités, mais vous pourriez chercher une telle option dans votre utilitaire de configuration.

Il existe d'autres variantes de ces procédures, comme utiliser bcfg dans un shell EFI, utiliser bless dans macOS, utiliser mon rEFInd pour un démarrage unique, etc. Je commencerais par EasyUEFI, cependant ; il est probablement la solution la plus simple. Parfois, Windows insiste pour se mettre par défaut à chaque démarrage, cependant, et des rapports indiquent que bcdedit pourrait mieux gérer ce problème.

Notez que rien de ce qui précède ne s'applique aux installations en mode BIOS ; cependant, comme la plupart des ordinateurs livrés avec Windows 8 ou ultérieur démarrent en mode EFI, les installations en mode BIOS deviennent de plus en plus rares, il est donc souvent préférable de résoudre le problème de la manière EFI plutôt que de réinstaller GRUB aveuglément.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X