Wie kann ich verhindern, dass mein Bootloader verschwindet?

Wie kann ich verhindern, dass mein Bootloader verschwindet?

Ich starte Manjaro und Windows im Dual-Boot-Modus über Grub und UEFI auf einem Lenovo Yoga C930, das Bitlocker und Secure Boot verwendet. Ich kann Manjaro erfolgreich starten, wenn ich Secure Boot im BIOS deaktiviere, und ich kann auch Windows starten, wenn ich Secure Boot im BIOS wieder aktiviere. Aus unbekannten und scheinbar zufälligen Gründen verliere ich einfach meinen Linux-Bootloader. Ich weiß nicht, ob er gelöscht wird, plötzlich nicht mehr erkannt wird oder was, aber ich kann nicht davon booten und er wird im BIOS nicht als Option angezeigt.

Ich kann Grub neu installieren, indem ich den Anweisungen im Wiki folge, aber irgendwann verschwindet es einfach. Was ist los und wie kann ich das verhindern?

Antwort1

Ich gehe davon aus, dass Windows Ihr System „krebsfrei“ hält.

[BEARBEITEN] Abhängig von der von Ihnen verwendeten Startmethode stehen Ihnen zwei Lösungen zur Verfügung: Legacy und UEFI.

Vermächtnis:

bcdSie können es als Boot-Manager zum Starten von Windows oder Linux verwenden .

Vorausgesetzt, Sie haben Grub installiert /dev/sdaund /dev/sda1es handelt sich um die Windows EFI-Partition

Unter Linux:

mount /dev/sda1 /mnt
dd if=/dev/sda of=/mnt/linux.bin bs=512 count=1

Unter Windows:

bcdedit /create /d "Linux" /application bootsector

BCDEdit gibt für diesen Eintrag eine alphanumerische Kennung zurück, die ich in den folgenden Schritten als {ID} bezeichnen werde. Sie müssen {ID} durch die tatsächlich zurückgegebene Kennung ersetzen. Ein Beispiel für {ID} ist {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. Als Nächstes geben wir an, welche Partition eine Kopie der Datei linux.bin hostet:

bcdedit /set {ID} device partition=c:

Der Pfad zu unserer linux.bin-Datei:

bcdedit /set {ID}  path \linux.bin

Ein Eintrag im angezeigten Menü beim Booten:

bcdedit /displayorder {ID} /addlast

und schließlich legen wir fest, wie lange die Menüoptionen angezeigt werden:

bcdedit /timeout 30

Das ist es! Starten Sie jetzt neu und Ihnen wird ein Menü angezeigt, in dem Sie auswählen können, ob Sie Windows oder Linux starten möchten. Wenn Sie Linux auswählen, werden Sie zum Bootloader-Menü weitergeleitet, in dem Sie Linux starten können.

https://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/

[BEARBEITEN] UEFI

Ihr Windows-System verfügt über eine EFI-Partition, von der es bootet. Unter Linux mounten Sie diese in /boot. Stellen Sie dann sicher, dass Ihr grub.cfgdie Root-Partition mithilfe der UUID sucht (standardmäßig tut es das): wie zum Beispiel: linux /vmlinuz-4.4.0-1-default root=UUID=6159e15d-f224-499d-88e0-437b5538f0f1 quiet splash=silent, wenn das nicht der Fall ist, verwenden Sie , blkidum die UUID Ihrer Root-Partition aufzulisten und passen die Grub-Konfiguration in an /etc/grub.d.

Sie schreiben Ihre Grub-Konfiguration in/boot/boot/efi/EFI/manjaro/grub.cfg

grub2-mkconfig -o /boot/boot/efi/EFI/manjaro/grub.cfg

Führen Sie einen Neustart durch. Dann sollte alles bereit sein.

Antwort2

Ich hatte vor fast zwei Jahren ein ähnliches Problem mit einem Dual-Boot von Trisquel Linux und Windows 8. Ich habe eine Frage/Antwort gepostetHierauf Super User (mir wurde damals gesagt, dass Dual-Boot-Fragen bei U&L aus irgendeinem Grund nicht zum Thema gehören).

Wie Sie in diesen Beiträgen sehen werden, bestand das Problem nicht darin, dass Windows GRUB löschte oder überschrieb, sondern darin, dass es regelmäßig die UEFI-Einstellungen änderte, um es anzuweisen, den Windows-Bootloader anstelle von GRUB zu verwenden. Die Lösung bestand darin, bcdedit in Windows zu verwenden, um den Standard-Bootloaderpfad auf GRUB festzulegen, was mein Problem löste.

Ich weiß nicht, ob die gleiche Lösung bei Ihnen funktioniert, aber vielleicht ist es einen Versuch wert?

(außerdem glaube ich nicht, dass Secure Boot aktiviert sein muss, um Windows zu starten. Ich starte Windows 8 problemlos, wenn Secure Boot deaktiviert ist.)

Antwort3

Ich habe das tatsächlich selbst herausgefunden. Es stellte sich heraus, dass ich efibootmgrmanuell einen neuen Starteintrag erstellen und ihm eine hohe Priorität zuweisen musste. So weit, so gut.

verwandte Informationen