Ich habe Windows 7 installiert, das die Boot-Datei von Ubuntu gefressen hat. Beim Hochfahren des Computers geht es jetzt direkt zu Windows, ohne dass ich die Möglichkeit habe, Ubuntu zu booten.
Wie bekomme ich Ubuntu zurück?
Akzeptierte Antwort:
Wenn Sie Windows installieren, geht Windows davon aus, dass es das einzige Betriebssystem (OS) auf dem Computer ist, oder berücksichtigt zumindest Linux nicht. Es ersetzt also GRUB durch einen eigenen Bootloader. Was Sie tun müssen, ist den Windows-Bootloader durch GRUB zu ersetzen. Ich habe verschiedene Anweisungen zum Ersetzen von GRUB gesehen, indem ich mit GRUB-Befehlen herumgespielt habe, aber für mich ist der einfachste Weg einfach chroot
in Ihre Installation und führen Sie update-grub
aus . chroot
ist großartig, weil es Ihnen ermöglicht, an Ihrer eigentlichen Installation zu arbeiten, anstatt zu versuchen, Dinge hier und da umzuleiten. Es ist wirklich sauber.
So geht's:
- Starten Sie von der Live-CD oder dem Live-USB-Gerät im „Try Ubuntu“-Modus.
-
Ermitteln Sie die Partitionsnummer Ihrer Hauptpartition.
sudo fdisk -l
,sudo blkid
oder GParted (das standardmäßig bereits in der Live-Sitzung installiert sein sollte) kann Ihnen hier helfen. Ich gehe in dieser Antwort davon aus, dass es sich um/dev/sda2
handelt , aber vergewissern Sie sich, dass Sie die richtige Partitionsnummer für Ihr System verwenden!Wenn sich Ihre Hauptpartition in einem 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 Siels /dev/mapper
aus für den genauen Namen. -
Mounten Sie Ihre Partition:
sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
Wenn Sie einen separaten
/boot
haben ,/var
oder/usr
Partitionen , wiederholen Sie die Schritte 2 und 3, um diese Partitionen in/mnt/boot
einzuhängen ,/mnt/var
und/mnt/usr
bzw. Zum Beispielsudo mount /dev/sdXW /mnt/boot sudo mount /dev/sdXY /mnt/var sudo mount /dev/sdXZ /mnt/usr
ersetzt
sdXW
,sdXY
, undsdXZ
mit den jeweiligen Partitionsnummern. -
Binden Sie einige andere notwendige Sachen ein:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
-
Wenn Ubuntu im EFI-Modus installiert ist (siehe 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 hat die BezeichnungEFI
. Mounten Sie diese Partition, indem SiesdXY
ersetzen mit der tatsächlichen Partitionsnummer für Ihr System:sudo mount /dev/sdXY /mnt/boot/efi
-
chroot
in Ihre Ubuntu-Installation:sudo chroot /mnt
-
An diesem Punkt befinden Sie sich in Ihrer Installation, nicht in der Live-Sitzung, und werden als Root ausgeführt. Grub aktualisieren:
update-grub
Wenn Sie Fehler erhalten oder das Problem mit Schritt 7 nicht behoben wurde, fahren Sie mit Schritt 8 fort. (Andernfalls ist dies optional.)
-
Abhängig von Ihrer Situation müssen Sie möglicherweise grub neu installieren:
grub-install /dev/sda update-grub # In order to find and add windows to grub menu.
-
Wenn Ubuntu im EFI-Modus installiert ist und sich die UUID der EFI-Partition geändert hat, müssen Sie sie möglicherweise in
/etc/fstab
aktualisieren . Vergleichen Sie es:blkid | grep -i efi grep -i efi /etc/fstab
Wenn die UUID der aktuellen EFI-Partition (von
blkid
) unterscheidet sich von der in/etc/fstab
, aktualisieren Sie/etc/fstab
mit aktueller UUID. -
Wenn alles fehlerfrei funktioniert hat, sind Sie fertig:
exit sudo reboot
-
An diesem Punkt sollten Sie normal booten können.
Wenn Sie nicht normal booten können und Schritt 8 nicht ausgeführt haben, weil es keine Fehlermeldungen gab, versuchen Sie es erneut mit Schritt 8.
- Gibt GRUB2 manchmal die richtige Konfiguration für Ihre Partitionen ist nicht genug, und Sie müssen es tatsächlich im Master Boot Record installieren (oder neu installieren), was Schritt 8 tut. Die Erfahrung, Benutzern im Chat zu helfen, hat gezeigt, dass Schritt 8 manchmal notwendig ist, auch wenn keine Fehlermeldungen angezeigt werden.