Comment exécuter update-grub à partir d'un LiveCD?


62

Ok, alors j'ai fait quelque chose de stupide. J'essayais de nettoyer mes entrées Grub et j'ai accidentellement supprimé tous mes noyaux Linux de Grub (ils sont toujours sur le disque dur). Alors maintenant, évidemment, Grub ne me donne aucun moyen de démarrer Ubuntu; Je peux très bien démarrer Windows, mais Ubuntu n’est même pas répertorié.

Donc, je veux juste lancer "sudo upgrade-grub" en quelque sorte pour restaurer Ubuntu à la liste. Je peux démarrer à partir d'un LiveCD, mais une fois sur cette page, comment exécuter cette commande? (En passant, mon installation Ubuntu est sur sda5.)


Cela fonctionne à merveille ... cela ne fait-il que 2 jours
Nirmik

à ce fil veulent pointer vers - que, à 12h10, la commande update-grub ne fonctionne pas avec grub <2.0?! - J'avais moi-même bâclé le week-end dernier mon installation de 12.10 (pear OS 7.0.1) avec grub-install, puis update-grub ne fonctionnait plus - je devais faire un sauvetage avec supergrub-CD ...
dschinn1001

Réponses:


81

Puisque vous dites que votre chargeur de démarrage Grub apparaît, mais que le menu est vide, je pense que vous n'avez pas besoin de réinstaller grub, mais plutôt, comme vous le demandez, exécutez update-grub. Pour ce faire, vous pouvez utiliser un Live CD, monter les partitions appropriées à partir de votre disque dur, chrooter dans le répertoire monté et exécuter update-grub, qui devrait fonctionner comme si vous utilisiez le disque dur.

Démarrez avec votre Live CD en sélectionnant "Essayez Ubuntu sans l’installer".

Une fois qu'il démarre, ouvrez un terminal (ctrl-alt-t) et montez votre partition Ubuntu sur / mnt. Je suppose que la partition Ubuntu est / dev / sda5, mais vous devriez le déterminer vous-même. Faites-moi savoir si vous avez besoin d'aide pour ce faire:

sudo mount /dev/sda5 /mnt

Montez ensuite quelques répertoires supplémentaires:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

De plus, si vous avez une partition de démarrage Ubuntu distincte (assez rare de nos jours, mais ce peut être le cas):

sudo mount /dev/sdaX /mnt/boot

Comment pouvez-vous savoir si vous avez une partition de démarrage?

Une fois votre partition Ubuntu montée, ouvrez-la /mnt/etc/fstab. Si vous voyez une entrée pour /boot, notez le périphérique sur lequel il pointe ( /dev/sda4peut-être?). C'est celui que vous devez monter.

Une fois ceux-ci montés, faites chroot pour commencer à utiliser le répertoire monté comme partition racine:

sudo chroot /mnt

Vous recevrez une #/invite. La première chose à faire est de confirmer que vous utilisez le bon /bootrépertoire. Allez sur /boot/grubet regardez les fichiers là-bas. Il devrait y avoir un tas de fichiers .mod et un fichier grub.cfg. Si le répertoire est vide, ne continuez pas car cela signifie que ce n'est PAS votre bootrépertoire actuel . Regardez ci-dessus pour savoir comment déterminer si vous devez monter un bootrépertoire supplémentaire .

Une fois que vous avez confirmé qu’il /boot/contient les bons fichiers, c’est-à-dire qu’il s’agit du bon emplacement, tapez:

sudo update-grub

Cela devrait reconstruire votre fichier /boot/grub/grub.cfg avec les entrées de menu.

Puis quittez le chroot:

exit

À ce stade, vous voudrez peut-être vérifier que les éléments ont été correctement mis à jour. Pour cela, cd /mnt/boot/grubet vérifiez que les fichiers grub sont là, il devrait y avoir un tas de fichiers .mod et grub.cfg, ce dernier devrait avoir des entrées pour vos noyaux Ubuntu. Si vous ne voyez que grub.cfg et aucun fichier .mod, cela signifie que ce n'est pas le bon répertoire de démarrage, regardez ci-dessus pour savoir comment monter une partition de démarrage distincte.

Démontez les systèmes de fichiers:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

Et puis redémarrez, espérons que votre menu Grub sera restauré.


Lorsque j'essaie d'exécuter les trois commandes de montage, j'obtiens "Le point de montage / mnt / dev n'existe pas" ou le correspondant correspondant.
Kelley

votre installation Ubuntu est-elle sur / dev / sda5? Si tel est le cas, sudo mount /dev/sda5 /mntvous devriez pouvoir y cd /mntvoir l’arborescence de votre installation Ubuntu. Il devrait avoir dev, sys et proc. Sinon, vous montez peut-être la mauvaise partition. Pouvez-vous vérifier cela? Merci!
roadmr

J'ai redémarré le LiveCD et cette fois, il semble fonctionner. J'ai dû taper quelque chose de mal la première fois, même si j'étais prudent. Quoi qu'il en soit, je redémarre maintenant ... et non, rien n'a changé. Toujours pas le choix d'Ubuntu dans le menu Grub.
Kelley

Donc, pour répondre à votre question, après avoir exécuté "sudo mount / dev / sda5 / mnt", puis "cd / mnt", je vois dev, sys et proc.
Kelley

1
Monsieur, vous sauvez la vie :) Merci pour cela. Travaillé comme un charme.
ereOn

14

Démarrez à partir d'un Live CD.

Appuyez sur Alt+ Ctrl+ Tpour ouvrir le terminal et exécuter les commandes suivantes:

sudo mount / dev / sda5 / mnt

Installez le chargeur de démarrage GRUB2:

sudo grub-install --root-directory = / mnt / dev / sda

C’est /dev/sda- le disque dur lui-même, pas la partition Ubuntu - /dev/sda5.

Démontez la partition Ubuntu et redémarrez l'ordinateur comme suit:

sudo umount / dev / sda5; redémarrage sudo

Si vous avez plus d'un système d'exploitation installé, re-détectez les systèmes d'exploitation de la manière suivante:

sudo update-grub

C'est ça!


1
le mien signalé pour suppression - aucun point dans la même chose deux fois
23 93 26 35 19 57 3 89

Merci, mais ça ne marche pas. Il réinstalle Grub, mais lorsque je redémarre, il n’a toujours pas été mis à jour et mon installation Ubuntu n’apparaît toujours pas dans Grub. D'une manière ou d'une autre, je dois mettre à jour Grub avant de redémarrer, comme depuis le LiveCD.
Kelley

@Kelley Etes-vous sûr que l'installation d'Ubuntu est sur sda5? Vous pouvez le vérifier en courant sudo fdisk -l. L'installation d'Ubuntu aura un *après / dev / sdxx.
Basharat Sialvi

Oui, c'est sur sda5. Cependant, le * est après sda2, qui est ma partition Windows (et la dernière partition sur laquelle j'ai pu démarrer, car c'est le seul choix dans mon menu Grub).
Kelley

Chroot. S'il vous plaît lire d'autres réponses.
Ish

1

Ma solution à ce problème était la suivante:

  1. téléchargez supergrub2disk depuis http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
  2. mettez-le sur la clé http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. ordinateur de démarrage à partir de la clé USB avec supergrub2disk dessus
  4. connectez-vous à votre Ubuntu
  5. Obtenez Boot-Repair pour Ubuntu à l' adresse https://help.ubuntu.com/community/Boot-Repair

Ce n’est peut-être pas la solution la plus rapide, mais pour moi c’était la plus simple.


1

Cette solution est exactement la même que la réponse de roadmr, sauf que c'est beaucoup plus facile.

  1. Démarrez dans AntiX Live CD.
  2. Menu> Applications> Outils système> Réparation du démarrage
  3. Sélectionnez 'Réparer le fichier de configuration GRUB' (cette option exécute update-grub)
  4. Sélectionnez le lecteur / partition où / boot réside
  5. Redémarrez quand c'est fini.

Dans mon cas particulier, 'Réinstaller GRUB Bootloader' a résolu le problème pour moi .. J'ai une configuration Windows / Linux à double démarrage. J'ai utilisé Macrium 7 pour créer un clone d'un lecteur dans un fichier. Puis restaurez ce fichier sur un nouveau lecteur. Une fois que je l'ai restauré sur le nouveau lecteur, un écran noir apparaît avec un curseur clignotant en haut à gauche .



-1

Merci pour votre aide! Cependant, au final, rien ne semblait fonctionner, et comme j'avais une partition / home distincte, j'ai pu réinstaller Ubuntu sans perdre de données. Je dois encore réinstaller des programmes et faire de la configuration, mais tout semble bien pour le moment.


1
Heureux de savoir que vous l'avez résolu, mais le chrootage aurait dû fonctionner, et c'est ce que je considère comme la meilleure solution.
Mahesh

Oui. Je ne sais pas pourquoi cela n'a pas fonctionné, mais la réponse a été excellente (et je l'ai votée). Vous avez beaucoup aidé, et peut-être que les réponses aideront quelqu'un d'autre à résoudre ce problème.
Kelley
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.