Wie starte ich update-grub von einer LiveCD?


62

Okay, also habe ich was Dummes gemacht. Ich habe versucht, meine Grub-Einträge zu bereinigen, und habe versehentlich alle meine Linux-Kernel aus Grub entfernt (sie befinden sich immer noch auf der Festplatte). Nun gibt mir Grub offensichtlich keine Möglichkeit, Ubuntu zu booten. Ich kann gut mit Windows booten, aber Ubuntu ist noch nicht einmal gelistet.

Also möchte ich einfach "sudo upgrade-grub" ausführen, um Ubuntu in der Liste wiederherzustellen. Ich kann von einer Live-CD booten, aber wie führe ich diesen Befehl aus? (Meine Ubuntu-Installation ist übrigens auf sda5.)


Dies funktioniert perfekt ... hat es gerade 2 Tage her- opensource-sidh.blogspot.in/2011/06/…
Nirmik

auf diesen thread möchte ich hinweisen - dass bei 12.10 befehl update-grub nicht mit grub <2.0 funktioniert ?! - Ich selbst hatte am vergangenen Wochenende meine Installation von 12.10 (Pear OS 7.0.1) mit grub-install verpfuscht und dann funktionierte update-grub nicht - musste mit supergrub-CD retten ...
dschinn1001

Antworten:


81

Da Sie sagen, Ihr grub-Bootloader wird angezeigt, aber das Menü ist leer. Ich glaube, Sie müssen grub nicht neu installieren, sondern, wie Sie möchten, update-grub ausführen. Um dies zu erreichen, können Sie eine Live-CD verwenden, die entsprechenden Partitionen von Ihrer Festplatte mounten, in das gemountete Verzeichnis chroot und update-grub ausführen, was so funktionieren sollte, als ob Sie auf der tatsächlichen Festplatte arbeiten würden.

Booten Sie mit Ihrer Live-CD und wählen Sie "Ubuntu ohne Installation testen".

Sobald es bootet, öffne ein Terminal (Strg-Alt-T) und mounte deine Ubuntu-Partition auf / mnt. Ich gehe davon aus, dass die Ubuntu-Partition / dev / sda5 ist, aber Sie sollten dies selbst bestimmen. Lassen Sie mich wissen, wenn Sie dazu Hilfe benötigen:

sudo mount /dev/sda5 /mnt

Hängen Sie dann ein paar weitere Verzeichnisse ein, die benötigt werden:

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

Auch, wenn Sie eine separate Ubuntu-Boot-Partition haben (heutzutage ziemlich ungewöhnlich, aber es kann der Fall sein):

sudo mount /dev/sdaX /mnt/boot

Wie können Sie feststellen, ob Sie eine Startpartition haben?

Sobald Sie Ihre Ubuntu-Partition gemountet haben, öffnen Sie /mnt/etc/fstab. Wenn Sie einen Eintrag für sehen /boot, notieren Sie sich, auf welches Gerät es zeigt ( /dev/sda4vielleicht?). Dies ist diejenige, die Sie montieren müssen.

Führen Sie nach dem Mounten chroot aus, um das gemountete Verzeichnis als Root-Partition zu verwenden:

sudo chroot /mnt

Sie erhalten eine #/Eingabeaufforderung. Stellen Sie zunächst sicher, dass Sie das richtige /bootVerzeichnis verwenden. Gehen Sie zu /boot/grubund schauen Sie sich die Dateien dort an. Es sollte eine Reihe von .mod-Dateien und eine grub.cfg-Datei geben. Wenn das Verzeichnis leer ist, fahren Sie nicht fort, da dies NICHT Ihr tatsächliches bootVerzeichnis ist. Schauen Sie oben nach, um festzustellen, ob Sie ein zusätzliches bootVerzeichnis bereitstellen müssen .

Sobald Sie bestätigt , dass /boot/die richtigen Dateien enthält, was bedeutet , dass es ist der richtige Ort, Art:

sudo update-grub

Dies sollte die Datei /boot/grub/grub.cfg mit den Menüeinträgen neu erstellen.

Dann verlassen Sie die Chroot:

exit

An dieser Stelle möchten Sie möglicherweise überprüfen, ob die Dinge korrekt aktualisiert wurden. Dazu cd /mnt/boot/grubund um zu überprüfen, ob die Dateien von grub vorhanden sind, sollten eine Reihe von .mod-Dateien und grub.cfg vorhanden sein. Letztere sollten Einträge für Ihre Ubuntu-Kernel enthalten. Wenn Sie nur grub.cfg und keine .mod-Dateien sehen, bedeutet dies, dass dies NICHT das richtige Startverzeichnis ist. Suchen Sie oben nach Informationen zum Mounten einer separaten Startpartition.

Hängen Sie die Dateisysteme aus:

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/

Und dann neu starten, hoffentlich wird Ihr Grub-Menü wiederhergestellt.


Wenn ich versuche, die drei Einhängebefehle auszuführen, erhalte ich "Einhängepunkt / mnt / dev existiert nicht" oder den entsprechenden für jeden.
Kelley

Ist dein Ubuntu auf / dev / sda5 installiert? Wenn ja, sudo mount /dev/sda5 /mntsollten Sie in der Lage sein, cd /mntden Baum Ihrer Ubuntu-Installation dort zu sehen. Es sollte dev, sys und proc haben. Wenn nicht, mounten Sie möglicherweise die falsche Partition. Kannst du das überprüfen? Vielen Dank!
Roadmr

Ich habe die LiveCD neu gestartet und diesmal scheint sie zu funktionieren. Ich muss beim ersten Mal etwas falsch geschrieben haben, obwohl ich vorsichtig war. Wie auch immer, ich starte jetzt neu ... und nein, nichts hat sich geändert. Immer noch keine Wahl von Ubuntu im Grub-Menü.
Kelley

Um Ihre Frage zu beantworten: Nachdem Sie "sudo mount / dev / sda5 / mnt" und dann "cd / mnt" ausgeführt haben, sehe ich dev, sys und proc.
Kelley,

1
Sie, Sir, sind ein Lebensretter :) Vielen Dank dafür. Lief wie am Schnürchen.
ereOn

14

Booten Sie von einer Live-CD.

Drücken Sie Alt+ Ctrl+ T, um das Terminal zu öffnen und die folgenden Befehle auszuführen:

sudo mount / dev / sda5 / mnt

Installieren Sie den GRUB2-Bootloader:

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

Das ist /dev/sda- die Festplatte selbst, nicht die Ubuntu-Partition - /dev/sda5.

Hängen Sie die Ubuntu-Partition aus und starten Sie den Computer wie folgt neu:

sudo umount / dev / sda5; sudo neu starten

Wenn Sie mehr als ein Betriebssystem installiert haben, erkennen Sie Betriebssysteme wie folgt neu:

sudo update-grub

Das ist es!


1
meins zum Löschen vorgemerkt - zweimal kein Punkt in der gleichen Sache
23 93 26 35 19 57 3 89

Danke, aber das geht nicht. Es installiert Grub neu, aber wenn ich neu starte, wurde es immer noch nicht aktualisiert, so dass meine Ubuntu-Installation immer noch nicht in Grub angezeigt wird. Irgendwie muss ich Grub wie von der LiveCD aktualisieren, bevor ich neu starte.
Kelley,

@Kelley Bist du sicher, dass Ubuntu auf sda5 installiert ist? Sie können es überprüfen, indem Sie ausführen sudo fdisk -l. Die Ubuntu-Installation wird ein *after / dev / sdxx haben.
Basharat Sialvi,

Ja, es ist auf SDA5. Das * steht jedoch nach sda2, meiner Windows-Partition (und der letzten Partition, in die ich booten konnte, da dies die einzige Option in meinem Grub-Menü ist).
Kelley

Chroot. Bitte lesen Sie andere Antworten.
ish

1

Meine Lösung für dieses Problem war:

  1. Laden Sie supergrub2disk von http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/ herunter
  2. legt es auf dem USB - Stick http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. Starten Sie den Computer von pendrive mit supergrub2disk
  4. Melde dich bei deinem Ubuntu an
  5. Holen Sie sich Boot-Repair für Ubuntu von https://help.ubuntu.com/community/Boot-Repair

Vielleicht ist es nicht die schnellste Lösung, aber für mich war es die einfachste.


1

Diese Lösung entspricht genau der Antwort von roadmr, ist jedoch viel einfacher.

  1. Starten Sie die AntiX Live-CD.
  2. Menü> Programme> Systemprogramme> Boot Repair
  3. Wählen Sie 'Repair GRUB Configuration file' (diese Option führt update-grub aus)
  4. Wählen Sie das Laufwerk / die Partition aus, auf dem / boot gespeichert ist
  5. Starten Sie neu, wenn es fertig ist.

In meinem speziellen Fall hat 'GRUB Bootloader neu installieren' das Problem behoben. Ich habe ein Dual-Boot-Windows / Linux-Setup. Ich habe Macrium 7 verwendet, um einen Klon eines Laufwerks in eine Datei zu erstellen. Stellen Sie dann diese Datei auf einem neuen Laufwerk wieder her. Nachdem ich es auf dem neuen Laufwerk wiederhergestellt hatte, startete es auf einem schwarzen Bildschirm mit einem blinkenden Cursor oben links .



-1

Vielen Dank für die tolle Hilfe! Am Ende schien jedoch nichts zu funktionieren, und da ich eine separate / home-Partition hatte, konnte ich Ubuntu neu installieren, ohne Daten zu verlieren. Ich muss immer noch Programme neu installieren und etwas konfigurieren, aber an diesem Punkt scheint alles in Ordnung zu sein.


1
Ich bin froh zu wissen, dass du es irgendwie gelöst hast, aber das Chrooten hätte funktionieren sollen, und das halte ich für die beste Lösung.
Mahesh

Ja. Ich weiß nicht, warum es nicht funktioniert hat, aber die Antwort war großartig (und ich habe es positiv bewertet). Ihr habt viel Hilfe geleistet, und vielleicht helfen die Antworten jemandem, dieses Problem zu lösen.
Kelley
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.