it-swarm.com.de

Wie kann ich Maden reparieren? (Wie bekomme ich Ubuntu nach der Installation von Windows zurück?)

Ich habe Windows 7 installiert, das Ubuntus Boot-Datei aß. Wenn ich den Computer starte, wechselt er direkt zu Windows, ohne dass ich Ubuntu booten kann.

Wie kann ich Ubuntu zurückbekommen?

340
Salahuddin

Wenn Sie Windows installieren, geht Windows davon aus, dass es das einzige Betriebssystem auf dem Computer ist oder zumindest Linux nicht berücksichtigt. Daher ersetzt es GRUB durch einen eigenen Bootloader. Sie müssen lediglich den Windows-Bootloader durch GRUB ersetzen. Ich habe verschiedene Anweisungen zum Ersetzen von GRUB durch Herumspielen mit GRUB Befehlen oder ähnlichem gesehen, aber für mich ist es der einfachste Weg, chroot in Ihre Installation einzufügen und auszuführen update-grub. chroot ist großartig, da Sie damit an Ihrer eigentlichen Installation arbeiten können, anstatt hier und da Umleitungen vorzunehmen. Es ist sehr sauber.

Hier ist wie:

  1. Booten Sie von der Live-CD oder über USB im "Try Ubuntu" -Modus.
  2. Bestimmen Sie die Partitionsnummer Ihrer Hauptpartition. Sudo fdisk -l, Sudo blkid oder GParted (die standardmäßig in der Live-Sitzung bereits installiert sein sollten) können Ihnen hier helfen. Ich gehe in dieser Antwort davon aus, dass es /dev/sda2 ist, aber stellen Sie sicher, dass Sie die richtige Partitionsnummer für Ihr System verwenden!

    Wenn sich Ihre Hauptpartition in einer LVM befindet , befindet sich das Gerät stattdessen in /dev/mapper/, höchstwahrscheinlich /dev/mapper/{volume}--{os}-root wobei {volume} ist der Name des LVM-Volumes und {os} ist das Betriebssystem. Führen Sie ls /dev/mapper für den genauen Namen aus.

  3. Hängen Sie Ihre Partition ein:

    Sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    Wenn Sie über separate Partitionen /boot, /var oder /usr verfügen , wiederholen Sie die Schritte 2 und 3, um diese bereitzustellen Partitionen in /mnt/boot, /mnt/var und /mnt/usr. Zum Beispiel,

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

    ersetzen Sie sdXW, sdXY und sdXZ durch die entsprechenden Partitionsnummern.

  4. Binden Sie ein paar andere notwendige Dinge:

    for i in /sys /proc /run /dev; do Sudo mount --bind "$i" "/mnt$i"; done
    
  5. Wenn Ubuntu im EFI-Modus installiert ist ( sehen Sie diese Antwort, wenn Sie sich nicht sicher sind ), verwenden Sie Sudo fdisk -l | grep -i efi oder GParted, um Ihre EFI-Partition zu finden. Es wird eine Beschriftung von EFI haben. Hängen Sie diese Partition ein und ersetzen Sie sdXY durch die tatsächliche Partitionsnummer für Ihr System:

    Sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot in deine Ubuntu-Installation:

    Sudo chroot /mnt
    
  7. Zu diesem Zeitpunkt befinden Sie sich in Ihrer Installation und nicht in der Live-Sitzung und werden als Root ausgeführt. Update grub:

    update-grub
    

    Wenn Sie eine Fehlermeldung erhalten oder das Problem nicht mit Schritt 7 behoben wurde, fahren Sie mit Schritt 8 fort. (Andernfalls ist dies optional.)

  8. Abhängig von Ihrer Situation müssen Sie grub möglicherweise neu installieren:

    grub-install /dev/sda
    update-grub # In order to find and add windows to grub menu.
    
  9. Wenn Ubuntu im EFI-Modus installiert ist und die UUID der EFI-Partition geändert wurde, müssen Sie sie möglicherweise in /etc/fstab aktualisieren. Vergleich es:

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

    Wenn sich die aktuelle UUID der EFI-Partition (von blkid) von der in /etc/fstab unterscheidet, aktualisieren Sie /etc/fstab mit der aktuellen UUID.

  10. Wenn alles fehlerfrei funktioniert hat, dann sind Sie bereit:

    exit
    Sudo reboot
    
  11. Zu diesem Zeitpunkt sollten Sie in der Lage sein, normal zu booten.

Wenn Sie nicht normal booten können und Schritt 8 nicht ausgeführt haben, weil keine Fehlermeldungen aufgetreten sind, versuchen Sie es mit Schritt 8 erneut.

  • Manchmal reicht es nicht aus, GRUB2 die richtige Konfiguration für Ihre Partitionen zu geben, und Sie müssen sie tatsächlich im Master-Boot-Datensatz installieren (oder neu installieren), was in Schritt 8 der Fall ist. Die Erfahrung mit der Unterstützung von Benutzern im Chat hat gezeigt, dass Schritt 8 manchmal erforderlich ist, auch wenn keine Fehlermeldungen angezeigt werden.
344
Scott Severance

Das Windows-Installationsprogramm kümmert sich nicht um andere Betriebssysteme im System. Es schreibt also eigenen Code über den Master Boot Record. Zum Glück ist die Lösung auch einfach.

Sie müssen den MBR reparieren. Mach Folgendes

Booten Sie mit einer Live-USB/CD von Ubuntu. Verwenden Sie boot-repair, um das Problem zu beheben.

Führen Sie nach dem Booten mit Live-USB/CD den folgenden Befehl im Terminal aus:

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

Verwenden Sie Recomended Repair.

enter image description here

Weitere Informationen - https://help.ubuntu.com/community/Boot-Repair

112
Web-E

Booten Sie von einem Ubuntu USB-Stick oder einer CD und
Installieren Sie Boot-Repair auf Ubuntu, indem Sie die folgenden Schritte ausführen

Öffnen Sie das Terminal und führen Sie die folgenden Befehle aus

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

Nach Abschluss der Installation können Sie diese über das Menü System-> Administration-> Boot-Repair starten, wenn Sie Gnome verwenden. Wenn Sie Unity verwenden, können Sie im Dash nach "Boot-Repair" suchen. Dann folgen Sie den folgenden Screenshots:

Methode 1

  • Klicken Sie auf die erweiterten Optionen

Initial screen

  • Kreuzen Sie die unten gezeigten Optionen an

advanced option

  • Ändern Sie die Registerkarte in die Registerkarte "Grub Location" und aktivieren Sie die in der Abbildung gezeigten Optionen.

enter image description here

Drücke Apply und starte das System neu

Methode 2

  • Wählen Sie die empfohlenen Startreparaturoptionen aus, wie im ersten Screenshot gezeigt

Dokumentation:

25
Stormvirux

Einfach easyBCD in Windows 7 installieren und fertig

Neuen Eintrag hinzufügen> Linux/BSD> (auswählen) Grub2> (drücken) Eintrag hinzufügen

Dann können Sie auf dem Windows 7-Bootloader bunt auswählen, um zu Grub2 (vorheriger Bootloader) zu wechseln.

11
hamed

Auf EFI-basierten Systemen (wie den meisten Systemen, die mit Windows 8 oder höher ausgeliefert wurden) aktualisiert Windows manchmal den Bootloader oder setzt ihn auf den Standard-Bootloader zurück. Dies ist besonders häufig der Fall, wenn Sie das Betriebssystem neu installieren oder ein umfangreiches Systemupdate durchführen (z. B. ein Upgrade auf die neueste Windows-Version). Es ist unwahrscheinlich, dass Windows tatsächlich GRUB Dateien auf einem EFI-basierten Computer löscht. Alles, was zum Booten von Ubuntu benötigt wird, ist noch vorhanden. es wird nur umgangen. In diesen Fällen ist eine vollständige Neuinstallation von GRUB ein Overkill. Tatsächlich birgt dies eine (geringe) Chance, dass neue Probleme auftreten.

Anstatt GRUB in diesen Fällen erneut zu installieren, empfehle ich daher, GRUB (oder den von Ihnen bevorzugten Bootloader oder Bootmanager) als Standard zurückzusetzen. Es gibt verschiedene Möglichkeiten, dies zu tun:

  • EasyUEFI - Wenn das System direkt unter Windows startet, können Sie die Startreihenfolge am einfachsten mit EasyUEFI, anpassen = Dies ist ein kostenloses (für die Basisversion) GUI-Tool eines Drittanbieters zum Verwalten der EFI-Startreihenfolge. Es ist ziemlich selbsterklärend - suchen Sie den Eintrag ubuntu in der Liste der Startoptionen und verschieben Sie ihn an den Anfang der Liste. Beim nächsten Neustart sollte GRUB angezeigt werden. (Wenn Sie etwas anderes als GRUB verwenden, müssen Sie dessen Eintrag suchen.)
  • bcdedit - Mit dem Windows-Tool bcdedit kann GRUB auf die Standardstartreihenfolge festgelegt werden. Der Befehl bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi, der in einem Administrator Eingabeaufforderungsfenster eingegeben wurde, erledigt dies. Wenn Ihr Computer jedoch mit aktivem Secure Boot startet, ist stattdessen bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi erforderlich. Tatsächlich funktioniert der letztgenannte Befehl normalerweise , auch wenn Secure Boot nicht verwendet wird. Daher würde ich diesen Befehl zuerst verwenden. Beachten Sie, dass es ein erweitertes Windows Shell-Tool gibt, das eine etwas andere Syntax als die von mir vorgestellte erfordert, aber ich erinnere mich nicht an die Details.
  • Einmaliges Starten von Ubuntu - Die meisten EFIs bieten einen integrierten Start-Manager, auf den Sie zugreifen können, indem Sie eine Funktionstaste, Esc oder Enter zu einem frühen Zeitpunkt drücken Systemstartvorgang. Wahrscheinlich wird der Eintrag ubuntu zum Booten von Ubuntu in diesem Boot-Manager-Menü angezeigt, sodass Sie mit Ubuntu booten können. Alternativ können Sie auch von einem Ubuntu-Notfallmedium booten, beispielsweise vom Installationsprogramm, das im Modus "Vor der Installation versuchen" gestartet wurde. In beiden Fällen können Sie dann efibootmgr verwenden, um die Startreihenfolge anzupassen:
    1. Geben Sie Sudo efibootmgr ein, um die Starteinträge anzuzeigen.
    2. Beachten Sie die aktuelle Zeile BootOrder.
    3. Suchen Sie den Eintrag für ubuntu und notieren Sie sich die Boot#### -Nummer.
    4. Geben Sie Sudo efibootmgr -o xxxx[,yyyy,zzzz,....] ein, um die Startreihenfolge zu ändern und xxxx als Nummer für Ubuntu festzulegen. Was danach kommt, ist höchstwahrscheinlich nicht sehr wichtig, obwohl ich bemerkt habe, dass Windows sich wahrscheinlich wieder an den Start der Startreihenfolge anfügt, wenn es nicht in der Liste enthalten ist. Daher sollten Sie wahrscheinlich sicherstellen, dass Windows in der Liste enthalten ist, und es ist möglicherweise am sichersten, die Liste neu zu ordnen, damit alle ursprünglichen Einträge vorhanden sind. Dabei wird lediglich der Eintrag ubuntu an den Anfang der Liste verschoben.
  • Firmware-Setup-Dienstprogramm - Mit einigen EFIs-Setup-Dienstprogrammen können Sie die Startreihenfolge anpassen. Die Details sind von EFI zu EFI sehr unterschiedlich, daher werde ich nicht auf Einzelheiten eingehen, aber Sie können in Ihrem Setup-Dienstprogramm nach einer solchen Option suchen.

Es gibt andere Varianten dieser Prozeduren, beispielsweise die Verwendung von bcfg in einer EFI-Shell, die Verwendung von bless in macOS, die Verwendung von my rEFInd für einen einmaligen Start usw. Ich würde jedoch mit EasyUEFI beginnen ; Es ist wahrscheinlich die einfachste Lösung. Manchmal besteht Windows jedoch darauf, sich bei jedem Start selbst als Standard festzulegen, und Berichte weisen darauf hin, dass bcdedit dieses Problem möglicherweise besser löst.

Beachten Sie, dass keine der oben genannten Bedingungen für Installationen im BIOS-Modus gilt. Da die meisten Computer, die mit Windows 8 oder höher geliefert wurden, im EFI-Modus gestartet werden, werden BIOS-Installationen immer seltener. In vielen Fällen ist es daher besser, das Problem auf EFI-Weise zu lösen, als GRUB blind neu zu installieren.

6
Rod Smith

Es gibt jetzt eine einfachere Lösung:

  1. Starten Sie den Computer neu und geben Sie die BIOS-Optionen Ihres Computers ein (F2 oder manchmal F11).
  2. Gehen Sie zum Menü Boot und wählen Sie Boot Device Priority
  3. Überprüfen Sie, ob Windows Boot Manager über dem Hauptstartlaufwerk liegt (normalerweise SATA HDD… oder IDE HDD… ). Wenn dies der Fall ist, verschieben Sie die Startdatenträgerpriorität über die des Windows-Start-Managers.
  4. Speichern Sie Ihre BIOS-Optionen und beenden Sie das Programm (normalerweise F10).

Dies wurde auf einem Samsung Series 7 Chronos-Laptop getestet, der Windows 8 und Ubuntu 13.10 dual bootet, den sicheren Start deaktiviert, UEFI und den Legacy-Start aktiviert.

5
scruss

Boot-Repair hat bei mir funktioniert. Es ist sehr, sehr einfach, grafische Anwendung zu verwenden, Sie müssen nicht die Befehlszeile verwenden, Sie müssen nur auf eine Schaltfläche klicken :)

Alle verfügbaren Reparaturoptionen sind in der buntu-Dokumentation beschrieben, und es gibt eine separate Seite , die erklärt, wie Sie Boot-Repair starten (indem Sie eine bootfähige Diskette erstellen oder in einer vorhandenen installieren) Ubuntu Live Disk) und wie man es benutzt.

Booten Sie einfach eine Ubuntu Live-CD, installieren Sie Boot-Repair und führen Sie es aus.

3
lorenzo-s

Wenn GRUB beschädigt ist, hat der Benutzer im Allgemeinen keinen Zugriff auf Systeme, sodass die Reparatur über eine Live-Sitzung (Live-CD oder Live-USB) erfolgen muss.

Es gibt viele mögliche Ursachen für eine Unterbrechung von GRUB: Windows-Schreibzugriff auf den MBR, DRM, das die ordnungsgemäße Installation von GRUB verhindert, Installationsfehler, Hardwareänderungen ... Aktualisieren von GRUB wie ursprünglich von Scott vorgeschlagen, ist im Allgemeinen nicht ausreichend. Die Neuinstallation von GRUB wie von Marco vorgeschlagen ist effizienter. Es gibt jedoch verschiedene Situationen, in denen andere Optimierungen erforderlich sind (Hinzufügen von Optionen zum Kernel, Einblenden von GRUB Menü, Ändern der GRUB -Optionen, Auswählen der richtigen Host-Architektur ...). Andere Schwierigkeiten bei der Reparatur von GRUB sind die Verwendung von chroot und die Auswahl der richtigen Partitionen/Festplatten.

All dies wurde mit einem kleinen grafischen Tool vereinfacht: Boot-Repair . Es soll in die Ubuntu 12.04-CD integriert werden, um die Verwendung zu vereinfachen. Für Benutzer, die es jetzt benötigen, gibt es bereits einige Distributionen, die es integrieren: Ubuntu-Secured-Remix (Ubuntu-CD, die Boot-Repair integriert), Boot-Repair-Disk (CD, auf der Boot ausgeführt wird -Reparatur beim Start), ...

Hoffe das hilft.

2
LovinBuntu

Die Antworten von Scott und Web-E sind gut genug und haben schon oft geholfen. Aber oft kann das Boot-Repair-Tool grub nicht reparieren, weil Probleme mit der i386- und AMD64-Plattform vorliegen oder weil grub das Verzeichnis efi nicht findet.
Was mein Problem mehr als 10 Mal gelöst hat, ist, die alten Grub-Installationen manuell zu löschen und eine neue zu installieren.

Führen Sie also zuerst die ersten 6 Schritte von Scotts Antwort aus, wobei Sie den fünften Schritt überspringen können, wenn ein Fehler auftritt:

  1. Booten Sie von der Live-CD oder über USB im "Try Ubuntu" -Modus.
  2. Bestimmen Sie die Partitionsnummer Ihrer Hauptpartition. Sudo fdisk -l, Sudo blkid oder GParted (die standardmäßig in der Live-Sitzung bereits installiert sein sollten) können Ihnen hier helfen. Ich gehe in dieser Antwort davon aus, dass es /dev/sda2 ist, aber stellen Sie sicher, dass Sie die richtige Partitionsnummer für Ihr System verwenden!

    Wenn sich Ihre Hauptpartition in einer LVM befindet , befindet sich das Gerät stattdessen in /dev/mapper/, höchstwahrscheinlich /dev/mapper/{volume}--{os}-root wobei {volume} ist der Name des LVM-Volumes und {os} ist das Betriebssystem. Führen Sie ls /dev/mapper für den genauen Namen aus.

  3. Hängen Sie Ihre Partition ein:

    Sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    Wenn Sie über separate Partitionen /boot, /var oder /usr verfügen , wiederholen Sie die Schritte 2 und 3, um diese bereitzustellen Partitionen in /mnt/boot, /mnt/var und /mnt/usr. Zum Beispiel,

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

    ersetzen Sie sdXW, sdXY und sdXZ durch die entsprechenden Partitionsnummern.

  4. Binden Sie ein paar andere notwendige Dinge:

    for i in /sys /proc /run /dev; do Sudo mount --bind "$i" "/mnt$i"; done
    
  5. Wenn Ubuntu im EFI-Modus installiert ist ([Wenn Sie sich nicht sicher sind, sehen Sie diese Antwort] [efi]), verwenden Sie Sudo fdisk -l | grep -i efi oder GParted, um Ihre EFI-Partition zu finden. Es wird eine Beschriftung von EFI haben. Hängen Sie diese Partition ein und ersetzen Sie sdXY durch die tatsächliche Partitionsnummer für Ihr System:

    Sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot in deine Ubuntu-Installation:

    Sudo chroot /mnt
    

Führen Sie dann die folgenden Schritte aus:

  1. Konfigurieren Sie alle ausstehenden Pakete.
    Sudo dpkg --configure -a
  2. Repariere die kaputten Pakete.
    Sudo apt install -fy
  3. Entfernen Sie den aktuellen Maden.
    Sudo apt purge -y grub*-common grub-common:i386 shim-signed
    Dies gibt möglicherweise eine Warnung aus, dass Ihr Gerät keinen Bootloader hat und beim nächsten Mal möglicherweise nicht mehr booten kann. Mach weiter und akzeptiere es.
  4. Sudo apt install -y grub-pc
    Nachdem Sie diesen Befehl ausgeführt haben, werden Sie aufgefordert, auf das aktuelle sdXY zu zeigen, um den Bootloader zu installieren. Finden Sie mit dem Befehl Sudo fdisk -l heraus, wo Ihr aktuelles Betriebssystem installiert ist. Es wird als Linux gekennzeichnet. Navigieren Sie in diesem Fenster mit Tab drücken und mit eine Option auswählen Space Schlüssel.
  5. Wenn alles gut geht, wird grub korrekt installiert. Sie können auch Sudo grub-update für eine doppelte Überprüfung ausführen.

Wenn das Problem weiterhin besteht, lesen Sie Archs Wiki , um sich mit Grub vertraut zu machen und viele andere Arten von Problemen anzugehen. (Ja, hilft auch für Ubuntu!).

1
subtleseeker

Windows erkennt keine Linux-formatierten Partitionen. Sie müssen gparted von einer Live-CD verwenden und eine NTFS-formatierte Primärpartition mit dem Boot-Flag erstellen.

Einige hatten Probleme, wenn die neue primäre Partition nach der erweiterten Partition liegt, da Windows die Partitionstabelle nicht immer korrekt zurücksetzt. Am besten haben Sie gute Backups und ein separates Backup der Partitionstabelle.

Partitionstabelle in Textdatei sichern und auf externem Gerät speichern.

Sudo sfdisk -d /dev/sda > PTsda.txt

Dies gilt nur für MBR-Systeme (MSDOS). Wenn sich Ihre Ubuntu-Installation auf einem GPT-Partitionslaufwerk befindet, können Sie Windows nur im UEFI-Modus installieren oder das Laufwerk zurück in MBR (MSDOS) konvertieren.

0
oldfred

Die Antwort von Scott Severance ist gültig und detailliert, aber es gibt eine Lösung, die kein externes Boot-Gerät erfordert und daher nicht alle Ubuntu-Partitionen identifizieren und manuell bereitstellen muss vor dem chroot.

In Windows 10 können Sie mit Advanced Recovery ein Gerät (Partition?) Zum Booten auswählen.

Gehe zu Settings und wähle Update & Security:

enter image description here

Gehe zu Recovery:

enter image description here

Wählen Sie aus Advanced StartupRestart Now

enter image description here

Wählen Sie dann Use a Device und alle Startoptionen sollten Ihnen angezeigt werden. Wählen Sie die "Ubuntu" -Partition und Ihr PC sollte dann von dieser Partition booten.

Nach dem Booten in meine übliche Ubuntu-Umgebung habe ich versucht, nur grub-update auszuführen, aber das hat sich nicht geändert.

Ich habe dann meine /boot/efi Partition gefunden, die /dev/nvme0n1p1 war, und habe Sudo grub-install /dev/nvme0n1p1 und dann Sudo update-grub ausgeführt.

Dadurch wurde mein Master-Boot-Datensatz mehrmals wiederhergestellt, da es anscheinend eine neue Windows 10-Richtlinie zum Überschreiben des MBR bei geringfügigen Updates gibt .

0
timbo

Ich hatte ein anderes Problem, das (wahrscheinlich) dadurch verursacht wurde, dass boot-repair meine /etc/grub.d/ -Vorlagen gelöscht hat, wie in meiner Frage hier beschrieben: buntu 18.04 bootet nach der Installation von Windows 10 nicht

Wie in @karels comment erwähnt, wird die Grub-Konfiguration mithilfe der Dateien in /etc/grub.d generiert. Mein Verzeichnis enthielt nur /etc/grub.d/25_custom, das seltsame Menüeinträge enthielt, die auf nicht vorhandene .efi-Bilder verweisen. Es sah so aus, als ob meine /etc/grub.d Vorlagen von boot-repair abgespritzt wurden.

Ich habe das behoben durch:

  1. Booten mit Live-CD (wahrscheinlich wichtig, um dieselbe Ubuntu-Version zu verwenden)
  2. Sudo mount /dev/sdxx /mnt
  3. Sudo cp /etc/grub.d/* /mnt/etc/grub.d/
  4. Sudo update-grub
  5. Nach 48 Stunden Schmerzen neu starten und entspannen
0
Adam Moore

Nur der Befehl fsck hat den Bildschirm grub-rescue für mich repariert.

Verwenden Sie Boot-Repair , um von der Live-CD zu booten, und öffnen Sie dann das Terminal

Holen Sie sich das richtige Gerät:

Sudo fdisk -l

Müssen Sie das Boot-Gerät finden, hat das Boot-Gerät * unter Boot-Kategorie wie hier:

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1          2048   2000895   1998848  976M 82 Linux swap / Solaris
/dev/sda2  *    2000896 943716351 941715456  449G 83 Linux

Reparieren Sie nun die Festplatte mit:

Sudo fsck /dev/sda2 -y

Hinweis: /dev/sda2 ist in diesem Beispiel das Startgerät .

Starten Sie nach Abschluss des Vorgangs neu. Getan.

0
Benny