it-swarm.com.de

Das Upgrade auf Windows 10 führte zur Rettung von Grubs

Ich habe Windows 7 und Linux Ubuntu auf meinem Desktop doppelt gebootet und heute haben sie kostenlose Windows 10-Upgrades herausgegeben. Wie aufregend! Ich habe das Update bekommen und es wurde installiert und bin gegangen, um ein 30-minütiges Nickerchen zu machen. Als ich jedoch zu meinem Computer zurückkehrte, kam ich zur Grub-Rettungsaufforderung.

error: no such partition.
Entering rescue mode...
grub rescue>

Wenn ich ls eingebe, wird Folgendes angezeigt:

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

Nach einem kurzen Blick durch die Leute, die auf die Grub Rescue Prompt gestoßen sind, habe ich set eingegeben und Folgendes erhalten

grub rescue> set
cmdpath=(hd0)
prefix=(hd0,msdos6)/boot/grub
root=hd0,msdos6

Ich war immer noch irgendwie verloren, nachdem ich festgestellt hatte, dass bestimmte Befehle wie normal nicht funktionierten, und dann fand ich ein Video-Tutorial, in dem Sie von einer Linux-Image-CD booten und einige Befehle auf dem Terminal ausführen. Zum Glück hatte ich meine CD dabei und bootete von dort. Als ich jedoch Sudo fdisk -l in das Terminal eingegeben habe, habe ich Folgendes erhalten:

[email protected]:~$ Sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc03ede74

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848  1547022335   773407744    7  HPFS/NTFS/exFAT
/dev/sda3      1547022336  1547943935      460800   27  Hidden NTFS WinRE
/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Sagt hier, keines meiner Geräte hat das Linux-System in sich! Und ich konnte dem Video-Tutorial nicht mehr folgen ...

Ich neckte mein Gehirn ein wenig und stellte fest, dass sda2 mein Windows-System enthielt (da ich mich erinnere, dass mein C: -Laufwerk ungefähr 700 GB Speicherplatz hat). Nachdem ich ein wenig nachgedacht habe, erinnere ich mich, dass ich bei der Installation von Ubuntu etwa 200 GB Festplattenspeicher für etwas reserviert habe, das mit Ubuntu zu tun hat. Ich erinnere mich nicht genau an welche, aber ich denke, es war im Grunde genommen Ubuntus "Festplattenspeicher" und es waren keine Boot-Dateien darin. Ich habe zwei andere Dinge für Linux zugewiesen, aber sie waren sehr klein (die 1-GB-Marke wurde noch nicht überschritten).

Kann mir hier jemand helfen, mein Upgrade wieder in Gang zu bringen? Es würde mir nichts ausmachen, wenn ich die Partitionen, auf denen Linux installiert ist, komplett entfernen müsste.

72
LChaos2

Auf meinem Computer war Windows 8 vorinstalliert, daher habe ich die Windows-Partition verkleinert, um Platz für Ubuntu zu schaffen. So hat es im letzten Jahr funktioniert. Nach dem zweiten Neustart in Windows 10 wurde der Computer nicht mehr gestartet. GRUB zeigte nur eine grub rescue Eingabeaufforderung an. Ich habe später herausgefunden, dass das Problem aufgetreten ist, weil Windows das Partitionsschema irgendwie geändert hat. Die Startpartition (die normale GRUB Daten enthielt) befand sich nicht mehr dort, wo GRUB es erwartet hatte. Ich weiß nicht wie und warum das passiert ist.

Als erstes können Sie im Rettungsmodus die Partitionen mit dem Befehl ls anzeigen. Meine waren:

  • (hd0, gpt1),
  • (hd0, gpt2),
  • usw.

Versuchen Sie herauszufinden, welche Partition Ihre Startpartition ist. Es gibt kein Tab Abschluss, müssen Sie es vollständig ausschreiben. Ich habe die folgenden Befehle ausprobiert, bis ich die richtige Partition gefunden habe:

ls (hd0,gpt1)/
ls (hd0,gpt1)/boot
ls (hd0,gpt2)/

usw.

Geben Sie dann set in dieselbe Eingabeaufforderung ein. Es wird angezeigt, wo GRUB nach seinen Dateien sucht. In meinem Fall ist (hd0, gpt6) auf (hd0, gpt7) umgezogen. Der gesetzte Befehl wird angezeigt:

prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6

Um wieder zu normalem GRUB zurückzukehren, ändern Sie zunächst die Einstellung prefix so, dass sie auf die richtige Partition zeigt. In meinem Fall lautete der Befehl:

set prefix=(hd0,gpt7)/boot/grub

Dann können Sie vom Rettungsmodus in den normalen Modus wechseln:

insmod normal
normal

Man hätte auch die root Einstellung korrigieren können mit:

set root=(hd0,gpt7)

Dies ist jedoch nicht unbedingt erforderlich, da es für Windows-Kettenladeeinträge keine Rolle spielt. Sobald Sie sich im normalen Menü GRUB befinden, können Sie Windows starten und das Windows-Upgrade abschließen. Das Problem ist, dass Sie grub rescue bei jedem Neustart über die richtigen Partitionen informieren müssen. So habe ich es gemacht. Ich habe das Problem von GRUB für später zurückgelassen, da ich nicht sicher war, ob Windows weitere Änderungen an den Partitionen vornehmen oder booten würde.

Als Windows fertig war, fing ich an, GRUB Probleme zu lösen. Drücken Sie e, um die Startoptionen für Ubuntu zu bearbeiten. Ich habe alle (hd0,gpt6) in (hd0,gpt7) geändert und Ubuntu gebootet.

Ich verwende jedoch verschlüsselte Partitionen und Cryptswap. Beim Booten fragte mich Ubuntu nach der Passphrase. Zum Glück habe ich es bei der Installation von Ubuntu gespeichert und beim Booten eingegeben. Ubuntu bootete ohne Probleme.

Ich habe dann die /boot/grub/grub.cfg -Datei korrigiert, in der ich (hd0,gpt6) durch (hd0,gpt7) ersetzt habe, und Folgendes ausgeführt:

Sudo grub-install

Zu diesem Zeitpunkt war das einzige verbleibende Problem die Verschlüsselung. Da die Root-Ubuntu-Partitionsnummer um eins erhöht wurde (7 statt 6), wurde die Swap-Partition ähnlich geändert. Ich musste die /etc/crypttab -Datei so ändern, dass sie auf /dev/sda8 anstelle von /dev/sda7 zeigt.

Ich benutze nur zwei Partitionen für Ubuntu (root und swap). Wenn andere mit Windows koexistierende Betriebssysteme mehr Partitionen verwenden, sind möglicherweise weitere Änderungen erforderlich. Insbesondere, wenn Partitionen nach ihrer Anzahl und nicht nach ihren UUIDs gemountet werden. Schauen Sie sich Ihren /etc/fstab an. Wenn die Partitionen durch die UUID identifiziert werden, sollte es keine Probleme geben. Wenn es jedoch /dev/... Zeilen gibt, sollte die Nummer korrigiert werden, wenn diese Partitionen neu nummeriert wurden.

62
nobody

Das Installieren (oder Aktualisieren) von Windows neben Linux kann problematisch sein.

Versuchen Sie Folgendes: https://help.ubuntu.com/community/Boot-Repair



Ich habe es verwendet, um ein Problem zu beheben, nachdem ich die technische Vorschau von Windows 10 installiert hatte, und es hat funktioniert. Grundsätzlich wird grub neu installiert, um mit allen derzeit installierten Betriebssystemen zu funktionieren. Stellen Sie sicher, dass Sie grub auf Ihrer Linux-Partition installieren (sd #).

Viel Glück!

13
Patrick

Erstellen Sie vor dem Ändern von Partitionen ein Backup und speichern Sie es auf einem anderen Gerät. Wenn nicht, wechseln Sie zum korrekten Laufwerk. Dann können Sie von vorne beginnen, wenn Sie einen falschen Satz mit testdisk wiederherstellen. Sie möchten nur, dass beim Wiederherstellen mit testdisk alle aktuellen und fehlenden logischen Elemente vorhanden sind.

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

Ihre fehlende Partition ist hier oder zwischen dem Start der erweiterten Partition um 1547 ... und der ersten Partition um 1915 ...:

/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Sie können testdisk verwenden, es wird jedoch CHS verwendet. Sie müssen alle vorhandenen Partitionen und die fehlende Partition als logisch auswählen. Es werden möglicherweise viele Versionen angezeigt, je nachdem, wie oft Sie die Partitionen gewechselt haben. Wählen Sie also die Größe, die der fehlenden entspricht, ohne andere aktuelle Partitionen zu überlappen. Einige, die korrekt wiederhergestellt wurden, konnten nur booten, andere müssen grub neu installieren. Und einige konnten die Wiederherstellungspartition nicht korrigieren.

http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step

Ein weiteres Wiederherstellungstool ist die getrennte Rettung. Es werden Sektoren verwendet, aber der von Ihnen angegebene Bereich muss sich nur außerhalb der fehlenden Partition befinden und darf sich nicht mit den aktuellen Partitionen überschneiden. Am besten, wenn Sie Start und Ende genau kennen. Siehe Mann getrennt

http://www.gnu.org/software/parted/manual/html_node/rescue.html

Benutzer, der die Teilrettung verwendet hat:

http://ubuntuforums.org/showthread.php?t=1775331&p=10905969#post10905969

10
oldfred

Es ist ein böser Fehler im Windows-Partitionierer und nicht Linux-spezifisch. Es löschte ironischerweise eine NTFS-Partition in meinem Fall.

Das Windows 10-Installationsprogramm erstellt eine neue Partition (Ihren /dev/sda3), die am Ende der Windows-Hauptpartition sda2 erstellt wurde, wenn die Windows-Startpartition sda1 zu klein ist, um die Windows 10-Wiederherstellungsumgebung aufzunehmen .

Wenn die Partitionstabelle dazu neu geschrieben wird, gibt sie für jede logische Partition in der erweiterten Partitionstabelle sda4 auf, wenn sie sich vor der vorherigen Partitionsnummer auf dem Datenträger befindet.

In Ihrem Fall befanden sich Ihre Linux-Partitionen auf Ihrer Festplatte vor Ihrem neuen sda5, hatten jedoch höhere Partitionsnummern als sda5 vor der Neupartitionierung.

Wenn Sie die umfangreichen Windows 10-Aktualisierungsprotokolle durchsehen, sehen Sie eine Meldung wie "6 vor 5, nichts zu tun" sowie die alte und die neue Partitionstabelle.

Windows überschreibt nicht den Inhalt der Partitionen, die es löscht. Sie können diese also wiederherstellen, wenn Sie feststellen, wo sie sich befinden. In meinem Fall hatte ich Sicherungen der Partitionstabelle, aber die Verwendung von testdisk , wie in oldfred's answer erläutert, hat eine hervorragende Chance, sie alle zu finden. Parted Rescue ist schwierig zu verwenden, da in Ihrem Fall mehr als eine Partition gelöscht wurde.

Um testdisk von Ihrer Ubuntu Live-CD zu verwenden, geben Sie Sudo apt-get install testdisk ein, um es zu installieren, und Sudo testdisk, um es auszuführen.

Nach dem Reparieren der Partitionstabelle hat die Linux-Partition, die GRUB enthält, möglicherweise eine andere Nummer als zuvor, sodass Sie möglicherweise immer noch bei der Rettungsaufforderung GRUB landen. In diesem Fall kann Boot Repair nun GRUB reparieren.

Geben Sie unter Verwendung Ihrer Ubuntu Live-CD Folgendes ein:

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

zu installieren und auszuführen.

Jetzt kann Windows das Upgrade abschließen.

7
Martin Thornton

Um Boot-Repair zu verwenden, müssen Sie im BIOS Folgendes einstellen:

  • Aktivieren Sie UEFI (in meinem BIOS ist es :)

    Legacy-Unterstützung deaktiviert

  • Deaktivieren Sie Secure Boot

Wahrscheinlich ist Secure Boot aktiviert, sodass der Fehler "Falsch signierte Datei" angezeigt wird.

1
iacobus